Skip to content
Snippets Groups Projects
Commit 2fc6c35b authored by Austin Clements's avatar Austin Clements
Browse files

Make the ELF entry point a physical address

This way, the bootloader doesn't have to translate the entry point.
This also makes xv6 multiboot-compliant and follows the convention
used by Linux.
parent 68b58727
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment