diff options
Diffstat (limited to 'src/link.ld')
-rw-r--r-- | src/link.ld | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/link.ld b/src/link.ld index 529d43f..9d707b4 100644 --- a/src/link.ld +++ b/src/link.ld @@ -11,23 +11,23 @@ SECTIONS bootloader.o(.text) } smp_bootloader 0x8000 : - AT(SIZEOF(bootloader)) + AT(0 + SIZEOF(bootloader)) { smp_trampoline.o(.text) } kernel _kernel_s1_loc : - AT (SIZEOF(bootloader)) + AT (0 + SIZEOF(smp_bootloader) + SIZEOF(bootloader)) { - EXCLUDE_FILE (*bootloader.o) *(.text .data .bss .rodata .comment .eh_frame) + EXCLUDE_FILE (*bootloader.o *smp_trampoline.o) *(.text .data .bss .rodata .comment .eh_frame) } } -_kernel_sector_size = ((SIZEOF(kernel) + SIZEOF(smp_bootloader) + 511) / 512); -_kernel_page_size = ((SIZEOF(kernel) + SIZEOF(smp_bootloader) + 0xfff) / 0x1000); -_bootloader_stage1_size = (SIZEOF(bootloader) + 511) / 512; +_kernel_sector_size = ((SIZEOF(kernel) + 511) / 512); +_kernel_page_size = ((SIZEOF(kernel) + 0xfff) / 0x1000); +_bootloader_stage1_size = (SIZEOF(bootloader) + SIZEOF(smp_bootloader) + 511) / 512; -__load_start_smp_bootloader = LOADADDR(smp_bootloader); -__load_stop_smp_bootloader = LOADADDR(smp_bootloader) + SIZEOF(smp_bootloader); +__load_start_smp_bootloader = LOADADDR(smp_bootloader) + 0x7c00; +__load_stop_smp_bootloader = LOADADDR(smp_bootloader) + SIZEOF(smp_bootloader) + 0x7c00; _kernel_stack_loc = (0x100000 + (_kernel_page_size * 0x1000) + 0x2000) - 8; _kernel_shared_zone_begin = 0x100000 + (_kernel_page_size * 0x1000) + 0x2000; |