summaryrefslogtreecommitdiff
path: root/src/link.ld
blob: 9d707b443dab75b1f0de9e4e5d6d8ee0a998e3bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
SEARCH_DIR(objects)

_kernel_s1_loc = 0xffffffff80000000; 
_meminfo = 0x7000;
_vbe_infoblock = 0x500; 

SECTIONS
{
  bootloader 0x7c00 : AT(0)
  {
    bootloader.o(.text)
  }
  smp_bootloader 0x8000 : 
  AT(0 + SIZEOF(bootloader))
  {
    smp_trampoline.o(.text)
  }
  kernel _kernel_s1_loc :
  AT (0 + SIZEOF(smp_bootloader) + SIZEOF(bootloader))
  {
    EXCLUDE_FILE (*bootloader.o *smp_trampoline.o) *(.text .data .bss .rodata .comment .eh_frame)
  } 
}

_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) + 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;