aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arc/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-01-18 04:42:25 -0500
committerVineet Gupta <vgupta@synopsys.com>2013-02-15 12:46:10 -0500
commit8b5850f8ac8d9b809db4588b80b568faca5aaaaf (patch)
tree9cb026d610787ba2177e3543d44c7f94fdfd6bfe /arch/arc/kernel/vmlinux.lds.S
parent9c57564e26c5392ac7f0e08cc0ad8d29e225a3a3 (diff)
ARC: Support for single cycle Close Coupled Mem (CCM)
* Includes mapping of CCMs in address space * Annotations to move arbitrary code/data into CCM * Moving some of the critical code/data into CCM * Runtime detection/reporting Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel/vmlinux.lds.S')
-rw-r--r--arch/arc/kernel/vmlinux.lds.S21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
index 303ea01c85c8..8d3b0d447498 100644
--- a/arch/arc/kernel/vmlinux.lds.S
+++ b/arch/arc/kernel/vmlinux.lds.S
@@ -23,6 +23,12 @@ jiffies = jiffies_64;
23 23
24SECTIONS 24SECTIONS
25{ 25{
26 /*
27 * ICCM starts at 0x8000_0000. So if kernel is relocated to some other
28 * address, make sure peripheral at 0x8z doesn't clash with ICCM
29 * Essentially vector is also in ICCM.
30 */
31
26 . = CONFIG_LINUX_LINK_BASE; 32 . = CONFIG_LINUX_LINK_BASE;
27 33
28 _int_vec_base_lds = .; 34 _int_vec_base_lds = .;
@@ -31,6 +37,13 @@ SECTIONS
31 . = ALIGN(PAGE_SIZE); 37 . = ALIGN(PAGE_SIZE);
32 } 38 }
33 39
40#ifdef CONFIG_ARC_HAS_ICCM
41 .text.arcfp : {
42 *(.text.arcfp)
43 . = ALIGN(CONFIG_ARC_ICCM_SZ * 1024);
44 }
45#endif
46
34 /* 47 /*
35 * The reason for having a seperate subsection .init.ramfs is to 48 * The reason for having a seperate subsection .init.ramfs is to
36 * prevent objump from including it in kernel dumps 49 * prevent objump from including it in kernel dumps
@@ -134,4 +147,12 @@ SECTIONS
134 .debug_loc 0 : { *(.debug_loc) } 147 .debug_loc 0 : { *(.debug_loc) }
135 .debug_macinfo 0 : { *(.debug_macinfo) } 148 .debug_macinfo 0 : { *(.debug_macinfo) }
136 149
150#ifdef CONFIG_ARC_HAS_DCCM
151 . = CONFIG_ARC_DCCM_BASE;
152 __arc_dccm_base = .;
153 .data.arcfp : {
154 *(.data.arcfp)
155 }
156 . = ALIGN(CONFIG_ARC_DCCM_SZ * 1024);
157#endif
137} 158}