// Call the entry point from the ELF header.
// Does not return!
- entry = (void(*)(void))(elf->entry & 0xFFFFFF);
+ entry = (void(*)(void))(elf->entry - KERNBASE);
entry();
}
SECTIONS
{
/* Load the kernel at this address: "." means the current address */
- . = 0xF0100000;
+ /* Must be equal to KERNLINK */
+ . = 0x80100000;
.text : AT(0x100000) {
*(.text .stub .text.* .gnu.linkonce.t.*)
#define DEVSPACE 0xFE000000 // Other devices are at high addresses
// Key addresses for address space layout (see kmap in vm.c for the layout)
-#define KERNBASE 0xF0000000 // First kernel virtual address
+#define KERNBASE 0x80000000 // First kernel virtual address
#define KERNLINK (KERNBASE+EXTMEM) // Address where kernel is linked
#ifndef __ASSEMBLER__