ENTRY(_main)
OUTPUT_FORMAT(elf64-x86-64)

mmio        = 0xfffffffff8000000;              /* these are configurable for level 2 loaders */
fb          = 0xfffffffffc000000;
bootboot    = 0xffffffffffe00000;
environment = 0xffffffffffe01000;
/* initstack = 1024; */
PHDRS
{
  boot PT_LOAD;                                /* one single loadable segment */
}
SECTIONS
{
    . = 0xffffffffffe02000;
	kernel_start = .;
    .text : {
        KEEP(*(.text.boot)) *(.text .text.*)   /* code */

        . = ALIGN(0x1000);
        start_of_kernel_rodata = .;
        *(.rodata .rodata.*)                   /* read-only data */
        end_of_kernel_rodata = .;

        . = ALIGN(0x1000);
        start_of_kernel_data = .;              /* data */
        *(.data .data.*)

    } :boot
    .bss (NOLOAD) : {                          /* bss */
        *(.bss .bss.*)
        *(COMMON)
    } :boot
    end_of_kernel_data = .;
	kernel_end = .;

    /DISCARD/ : { *(.eh_frame) *(.comment) }
}