/* This sesond stage of the kernel is run from address 0x0 */ TRANSLATION_TABLE_SIZE = 4096 * 4; SECTIONS_LIST_SIZE = 4096 * 8; 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 = .; } .sections_list (NOLOAD) : { _sections_list_start = .; . = . + SECTIONS_LIST_SIZE; _sections_list_end = .; } . = ALIGN(1 << 20); . = . + MMU_SECTION_SIZE; .stack (NOLOAD) : { _stack_start = .; _fiq_stack_start = .; . = . + (1 << 18); _fiq_stack_top = .; _irq_stack_start = .; . = . + (1 << 18); _irq_stack_top = .; _supervisor_stack_start = .; . = . + (1 << 19); _supervisor_stack_top = .; _stack_end = .; } }