Kernel - More extensive multiboot fields
authorJohn Hodge <[email protected]>
Sat, 7 Sep 2013 11:07:10 +0000 (19:07 +0800)
committerJohn Hodge <[email protected]>
Sat, 7 Sep 2013 11:07:10 +0000 (19:07 +0800)
KernelLand/Kernel/arch/x86/start.asm
KernelLand/Kernel/include/mboot.h

index 7602b9b..649c221 100644 (file)
@@ -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:
index 61c689b..ad93655 100644 (file)
 // === 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 {

UCC git Repository :: git.ucc.asn.au