1 /* Will have been included from boot.lds */
3 OUTPUT_FORMAT(elf32-littlearm)
5 STARTUP(target/arm/crt0-pp502x-bl-usb.o)
7 #define DRAMORIG 0x01000000 /* Load at 16 MB */
8 #define DRAMSIZE 0x00100000 /* 1MB for bootloader */
9 #define MEMEND (MEMORYSIZE*0x100000) /* From virtual mapping at 0 */
10 #define NOCACHE_BASE 0x10000000
12 #define IRAMORIG 0x40000000
14 #define IRAMSIZE 0x20000
15 #define FLASHORIG 0x001f0000
18 #define CACHEALIGN_SIZE 16
22 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
23 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
29 _loadaddress = . + NOCACHE_BASE;
42 *(.rodata) /* problems without this, dunno why */
55 /* .ncdata section is placed at uncached physical alias address and is
56 * loaded at the proper cached virtual address - no copying is
57 * performed in the init code */
58 .ncdata . + NOCACHE_BASE :
60 . = ALIGN(CACHEALIGN_SIZE);
62 . = ALIGN(CACHEALIGN_SIZE);
65 /DISCARD/ . - NOCACHE_BASE :
72 .ibss IRAMORIG (NOLOAD) :
90 _iramcopy = LOADADDR(.iram);
94 _loadaddressend = . + NOCACHE_BASE;
106 /* .bss and .ncbss are treated as a single section to use one init loop
107 * to zero them - note "_edata" and "_end" */
108 .bss _noloaddram (NOLOAD) :
115 .ncbss . + NOCACHE_BASE (NOLOAD) :
117 . = ALIGN(CACHEALIGN_SIZE);
119 . = ALIGN(CACHEALIGN_SIZE);
122 /* This will be aligned by preceding alignments */
123 .endaddr . - NOCACHE_BASE (NOLOAD) :
128 /* Reference to all DRAM after loaded bootloader image */
129 .freebuffer _end (NOLOAD) :