summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/nds/startup/linkcmds
blob: 5d38b6571f704711450b7e0fbbeffe542c1e5fe0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
MEMORY {
	ROM : ORIGIN = 0x08000000, LENGTH = 32M
	EWRAM : ORIGIN = 0x02000000, LENGTH = 4M - 4k
	DTCM : ORIGIN = 0x0b000000, LENGTH = 16k
	ITCM : ORIGIN = 0x01000000, LENGTH = 32k
}

REGION_ALIAS ("REGION_START", EWRAM);
REGION_ALIAS ("REGION_VECTOR", DTCM);
REGION_ALIAS ("REGION_TEXT", EWRAM);
REGION_ALIAS ("REGION_TEXT_LOAD", EWRAM);
REGION_ALIAS ("REGION_RODATA", EWRAM);
REGION_ALIAS ("REGION_RODATA_LOAD", EWRAM);
REGION_ALIAS ("REGION_DATA", EWRAM);
REGION_ALIAS ("REGION_DATA_LOAD", EWRAM);
REGION_ALIAS ("REGION_FAST_TEXT", ITCM);
REGION_ALIAS ("REGION_FAST_TEXT_LOAD", EWRAM);
REGION_ALIAS ("REGION_FAST_DATA", DTCM);
REGION_ALIAS ("REGION_FAST_DATA_LOAD", EWRAM);
REGION_ALIAS ("REGION_BSS", EWRAM);
REGION_ALIAS ("REGION_WORK", EWRAM);
REGION_ALIAS ("REGION_STACK", EWRAM);
REGION_ALIAS ("REGION_NOCACHE", EWRAM);
REGION_ALIAS ("REGION_NOCACHE_LOAD", EWRAM);

__dtcm_top = ORIGIN (DTCM) + LENGTH (DTCM);
__irq_flags = __dtcm_top - 0x08;
__irq_vector = __dtcm_top - 0x04;

SECTIONS {
        .sbss : {
                __sbss_start = ABSOLUTE(.);
                __sbss_start__ = ABSOLUTE(.);
                *(.sbss)
                . = ALIGN(4);    /* REQUIRED. LD is flaky without it. */
                __sbss_end = ABSOLUTE(.);
        } > DTCM
}

INCLUDE linkcmds.armv4