From: John Hodge Date: Sat, 7 Sep 2013 11:07:10 +0000 (+0800) Subject: Kernel - More extensive multiboot fields X-Git-Tag: rel0.15~266 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=14852edafde643ebc07078152455d1cacf485ecd;p=tpg%2Facess2.git Kernel - More extensive multiboot fields --- diff --git a/KernelLand/Kernel/arch/x86/start.asm b/KernelLand/Kernel/arch/x86/start.asm index 7602b9b6..649c2217 100644 --- a/KernelLand/Kernel/arch/x86/start.asm +++ b/KernelLand/Kernel/arch/x86/start.asm @@ -14,15 +14,26 @@ mboot: ; Multiboot macros to make a few lines later more readable MULTIBOOT_PAGE_ALIGN equ 1<<0 MULTIBOOT_MEMORY_INFO equ 1<<1 + MULTIBOOT_REQVIDMODE equ 1<<2 MULTIBOOT_HEADER_MAGIC equ 0x1BADB002 - MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO + MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_REQVIDMODE MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) ; This is the GRUB Multiboot header. A boot signature dd MULTIBOOT_HEADER_MAGIC dd MULTIBOOT_HEADER_FLAGS dd MULTIBOOT_CHECKSUM + dd mboot; - KERNEL_BASE ;Location of Multiboot Header + dd 0 ; load_addr + dd 0 ; load_end_addr + dd 0 ; bss_end_addr + dd 0 ; entry_addr + +; dd 0 ; Mode type (0: LFB) +; dd 1024 ; Width +; dd 768 ; Height +; dd 0 ; Depth (no preference) ; Multiboot 2 Header ;mboot2: diff --git a/KernelLand/Kernel/include/mboot.h b/KernelLand/Kernel/include/mboot.h index 61c689bd..ad936559 100644 --- a/KernelLand/Kernel/include/mboot.h +++ b/KernelLand/Kernel/include/mboot.h @@ -14,15 +14,37 @@ // === TYPES === typedef struct { Uint32 Flags; + // flags[0] Uint32 LowMem; Uint32 HighMem; + // flags[1] Uint32 BootDevice; + // flags[2] Uint32 CommandLine; + // flags[3] Uint32 ModuleCount; Uint32 Modules; + // flags[4] or flags[5] Uint32 SymbolInfo[4]; // #32 UNUSED + // flags[6] Uint32 MMapLength; Uint32 MMapAddr; // #40 + // flags[7] + Uint32 drives_length; + Uint32 drives_addr; + // flags[8] + Uint32 config_table; + // flags[9] + Uint32 boot_loader_name; + // flags[10] + Uint32 apm_table; + // flags[11] + Uint32 vbe_control_info; + Uint32 vbe_mode_info; + Uint32 vbe_mode; + Uint32 vbe_interface_seg; + Uint32 vbe_interface_off; + Uint32 vbe_interface_len; } tMBoot_Info; typedef struct {