diff options
Diffstat (limited to 'kernel/arch')
| -rw-r--r-- | kernel/arch/i386/boot.asm | 31 | ||||
| -rw-r--r-- | kernel/arch/i386/multiboot.cpp | 1 | 
2 files changed, 21 insertions, 11 deletions
| diff --git a/kernel/arch/i386/boot.asm b/kernel/arch/i386/boot.asm index 494d3ba..084bffb 100644 --- a/kernel/arch/i386/boot.asm +++ b/kernel/arch/i386/boot.asm @@ -22,6 +22,13 @@ stack_bottom:  resb 16384 ; 16 KiB
  stack_top:
 +; temporary paging tables
 +align 4
 +boot_page_directory:
 +    resb 4096
 +boot_page_table:
 +    resb 4096
 +
  section .text
  global _start:function (_start.end - _start)
 @@ -34,19 +41,12 @@ _start:      push eax
      push ebx
 -    ; setup paging (to map kernel to the higher half)
 -    ;mov eax, 0
 -    ;mov cr3, eax
 -    ;mov eax, cr0
 -    ;or eax, 0x80000001
 -    ;mov cr0, eax
 -
      ; get multiboot header data (for memory map)
 -    extern multiboot_main
 -    call multiboot_main
 +    ;extern multiboot_main
 +    ;call multiboot_main
 -    extern _init
 -    call _init
 +    ;extern _init
 +    ;Scall _init
      lgdt [gdt_descriptor]
      jmp 0x08:.gdt_jmp
 @@ -62,6 +62,15 @@ _start:  .gdt_jmp2:
 +    
 +
 +    ; setup paging (to map kernel to the higher half)
 +    ;mov eax, 0
 +    ;mov cr3, eax
 +    ;mov eax, cr0
 +    ;or eax, 0x80000001
 +    ;mov cr0, eax
 +
      ; setup idt
      extern idt_setup
      call idt_setup
 diff --git a/kernel/arch/i386/multiboot.cpp b/kernel/arch/i386/multiboot.cpp index 4ce94df..9f3eedb 100644 --- a/kernel/arch/i386/multiboot.cpp +++ b/kernel/arch/i386/multiboot.cpp @@ -7,6 +7,7 @@  // gets the memory map and stuff
  extern "C" void multiboot_main(multiboot_info_t* mbd, uint32_t magic) {
      terminal_initialize();
 +    //printf("multiboot struc addr: %x\n", mbd);
      if (magic != MULTIBOOT_BOOTLOADER_MAGIC) {
          printf("Invalid multiboot magic number\n");
          abort();
 | 
