/* This sesond stage of the kernel is run from address 0x0 */ TRANSLATION_TABLE_SIZE = 4096 * 4; MMU_SECTION_SIZE = 1 << 20; SECTIONS { . = 0x0; __start = .; .interrupt_vector : { KEEP(interrupt_vector.o) } . = ALIGN(4); .embedded_ramfs : { ramfs_embeddable.o } .rest_of_kernel : { *(.text) *(.data) *(.rodata) *(.bss) *(/COMMON/) } __end = .; . = ALIGN(1 << 14); .translation_table (NOLOAD) : { _translation_table_start = .; . = . + TRANSLATION_TABLE_SIZE; _translation_table_end = .; } . = ALIGN(1 << 20); . = . + MMU_SECTION_SIZE; .stack (NOLOAD) : { _stack_start = .; . = . + MMU_SECTION_SIZE; _stack_top = .; } .unprivileged_memory (NOLOAD) : { _unprivileged_memory_start = .; . = . + MMU_SECTION_SIZE; _unprivileged_memory_end = .; } }