summaryrefslogtreecommitdiff
path: root/kernel/multiboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/multiboot.c')
-rw-r--r--kernel/multiboot.c68
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;