diff options
| -rw-r--r-- | bootmain.c | 2 | ||||
| -rw-r--r-- | entry.S | 13 | 
2 files changed, 8 insertions, 7 deletions
@@ -43,7 +43,7 @@ bootmain(void)    // Call the entry point from the ELF header.    // Does not return! -  entry = (void(*)(void))(elf->entry - KERNBASE); +  entry = (void(*)(void))(elf->entry);    entry();  } @@ -25,15 +25,16 @@  .globl multiboot_header  multiboot_header:    #define magic 0x1badb002 -  #define flags (1<<16 | 1<<0) +  #define flags 0    .long magic    .long flags    .long (-magic-flags) -  .long multiboot_header  # beginning of image -  .long multiboot_header -  .long edata -  .long end -  .long entry + +# By convention, the _start symbol specifies the ELF entry point. +# Since we haven't set up virtual memory yet, our entry point is +# the physical address of 'entry'. +.globl _start +_start = V2P_WO(entry)  # Entering xv6 on boot processor.  Machine is mostly set up.  .globl entry  | 
