diff options
author | Brett Weiland <brett_weiland@bpcspace.com> | 2021-08-24 14:09:29 -0500 |
---|---|---|
committer | Brett Weiland <brett_weiland@bpcspace.com> | 2021-08-24 14:09:29 -0500 |
commit | 9b22a6965579ea1867aea291d910c96f386b518b (patch) | |
tree | d06dbb9c4708f1cc713bcb115b32ff9bce4cf9b9 /src/link.ld | |
parent | bad4b0e9bdfee336bfc1c23761408279eaec1558 (diff) |
major backup 8.24.21
Diffstat (limited to 'src/link.ld')
-rw-r--r-- | src/link.ld | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/src/link.ld b/src/link.ld index f45ddec..529d43f 100644 --- a/src/link.ld +++ b/src/link.ld @@ -1,38 +1,34 @@ SEARCH_DIR(objects) -INPUT( -bootloader.o -libc.o -serial.o -video.o -printf.o -page.o -acpi.o -kernel.o -panic.o -) - -_kernel_stack_loc = 0x200000 - 8; -_kernel_loc = 0x100000; -_meminfo_loc = 0x7000; +_kernel_s1_loc = 0xffffffff80000000; +_meminfo = 0x7000; _vbe_infoblock = 0x500; -_stage2_pagetable = 0x200000; -_stage1_pagetable = 0x4000; SECTIONS { - . = 0x0; - bootloader 0x7c00 : + bootloader 0x7c00 : AT(0) { - bootloader.o(.text) + bootloader.o(.text) } - kernel _kernel_loc : - AT (ADDR(bootloader) + SIZEOF(bootloader)) - /*ALIGN(4096)*/ + smp_bootloader 0x8000 : + AT(SIZEOF(bootloader)) { - EXCLUDE_FILE (*bootloader.o) *(.text .data .bss .rodata .comment .eh_frame) + smp_trampoline.o(.text) } + kernel _kernel_s1_loc : + AT (SIZEOF(bootloader)) + { + EXCLUDE_FILE (*bootloader.o) *(.text .data .bss .rodata .comment .eh_frame) + } } -_kernel_size = ((SIZEOF(kernel) / 512) + (SIZEOF(bootloader) / 512)); /* there's a bug here I think!*/ -_bootloader_stage1_size = (SIZEOF(bootloader) / 512); +_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; + +__load_start_smp_bootloader = LOADADDR(smp_bootloader); +__load_stop_smp_bootloader = LOADADDR(smp_bootloader) + SIZEOF(smp_bootloader); + +_kernel_stack_loc = (0x100000 + (_kernel_page_size * 0x1000) + 0x2000) - 8; +_kernel_shared_zone_begin = 0x100000 + (_kernel_page_size * 0x1000) + 0x2000; + |