diff options
Diffstat (limited to 'arch/arc/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/arc/kernel/vmlinux.lds.S | 21 |
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 | ||
24 | SECTIONS | 24 | SECTIONS |
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 | } |