MEMORY { reg : ORIGIN = 0xA0000000, LENGTH = 0x04000000 /* 64M */ flash_io : ORIGIN = 0xA4000000, LENGTH = 0x00800000 /* 8M */ ssram_io : ORIGIN = 0xA8000000, LENGTH = 0x00800000 /* 8M */ sdram : ORIGIN = 0x40000000, LENGTH = 0x04000000 /* 64M */ } stack_ptr = 0x7FFFEFF0; baudrate = 0x0D; sys_led_port = 0xA0000000; sys_uart_data = 0xA0010000; sys_uart_stat = 0xA0010004; sys_uart_baud = 0xA0010008; sys_timer_usec = 0xA000008; sys_timer_sec = 0xA000000C; SECTIONS { .etext ORIGIN(sdram) : { start = ALIGN(2); entry = ALIGN(2); _entry = ALIGN(2); __entry = ALIGN(2); *(.etext) } > sdram .ktext ORIGIN(sdram) + 0x180 : { *(.ktext) } > sdram .text . : ALIGN(2) { *(.text*) } > sdram .data . : ALIGN(2) { *(.rodata*) *(.data*) *(.kdata) *(.sdata*) *(COMMON) *(.gcc*) } > sdram .ctors . : ALIGN(2) { *(.ctor*) } > sdram .eh_frame . : ALIGN(2) { *(.eh_frame) } > sdram .bss . : ALIGN(2) { __bss_start = ALIGN(2); *(.*bss*) __bss_end = ALIGN(2); end = ALIGN(2); _end = ALIGN(2); } > sdram }