diff options
Diffstat (limited to 'kernel/multiboot.c')
| -rw-r--r-- | kernel/multiboot.c | 68 |
1 files changed, 61 insertions, 7 deletions
diff --git a/kernel/multiboot.c b/kernel/multiboot.c index 3132717..0440b8e 100644 --- a/kernel/multiboot.c +++ b/kernel/multiboot.c @@ -1,5 +1,7 @@ +//https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Boot-information-format #define FOOLOS_MODULE_NAME "multiboot" #include "multiboot.h" +#include "driver/vesa.h" #include "lib/logger/log.h" multiboot_information* get_multiboot(uint32_t eax, uint32_t ebx) @@ -9,22 +11,74 @@ multiboot_information* get_multiboot(uint32_t eax, uint32_t ebx) multiboot_information *info; info=ebx; + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"multiboot flags: 0x%08X",info->flags); + + if(info->flags&&1<<0) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[0] mem_lower: %d KB",info->mem_lower); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[0] mem_upper: %d KB",info->mem_upper); + } + + if(info->flags&&1<<1) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[1] boot-device 0x%08X",info->boot_device); + } + + if(info->flags&&1<<2) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[2] cmdline: \"%s\"",info->cmdline); + } + + if(info->flags&&1<<3) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[3] loaded modules count: %d",info->mods_count); + } + + if(info->flags&&1<<4) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[4/5] a.out kernel image symbols found"); + } + + if(info->flags&&1<<5) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[4/5] ELF table: %d entries (sized %d) at 0x%08X",info->syms[0],info->syms[1],info->syms[2]); + } + + if(info->flags&&1<<6) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[6] Found memory map"); + } + + if(info->flags&&1<<7) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[7] Found Drives map"); + } + + if(info->flags&&1<<8) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[8] ROM Configuration Table at: 0x%08X",info->config_table); + } + if(info->flags&&1<<9) { - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Loaded by: \"%s\"",info->boot_loader_name); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[9] Loaded by: \"%s\"",info->boot_loader_name); } - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"multiboot flags: 0x%08X",info->flags); + if(info->flags&&1<<10) + { + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[10] APM Table present."); + } - if(info->flags&&1<<0) + if(info->flags&&1<<11) { - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"mem_lower: %d KB",info->mem_lower); - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"mem_upper: %d KB",info->mem_upper); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[11] VBE control info: 0x%08X",info->vbe_control_info); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[11] VBE mode info: 0x%08X",info->vbe_mode_info); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[11] VBE current mode (spec V3.0): 0x%08X",info->vbe_mode); } - if(info->flags&&1<<2) + if(info->flags&&1<<12) { - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"cmdline: \"%s\"",info->cmdline); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"[12] Framebuffer (w:%d h:%d bpp:%d) at addr=0x%08X",info->framebuffer_width,info->framebuffer_height,info->framebuffer_bpp,info->framebuffer_addr); } return info; |
