aboutsummaryrefslogtreecommitdiffstats
path: root/arch/cris/arch-v32
diff options
context:
space:
mode:
Diffstat (limited to 'arch/cris/arch-v32')
-rw-r--r--arch/cris/arch-v32/boot/compressed/head.S16
-rw-r--r--arch/cris/arch-v32/kernel/head.S20
-rw-r--r--arch/cris/arch-v32/vmlinux.lds.S133
3 files changed, 31 insertions, 138 deletions
diff --git a/arch/cris/arch-v32/boot/compressed/head.S b/arch/cris/arch-v32/boot/compressed/head.S
index ea3012993b07..a4a65c5c669e 100644
--- a/arch/cris/arch-v32/boot/compressed/head.S
+++ b/arch/cris/arch-v32/boot/compressed/head.S
@@ -28,7 +28,13 @@ _start:
28 beq dram_init_finished 28 beq dram_init_finished
29 nop 29 nop
30 30
31#include "../../mach/dram_init.S" 31#if defined CONFIG_ETRAXFS
32#include "../../mach-fs/dram_init.S"
33#elif defined CONFIG_CRIS_MACH_ARTPEC3
34#include "../../mach-a3/dram_init.S"
35#else
36#error Only ETRAXFS and ARTPEC-3 supported!
37#endif
32 38
33dram_init_finished: 39dram_init_finished:
34 40
@@ -130,4 +136,10 @@ _cmd_line_addr:
130_boot_source: 136_boot_source:
131 .dword 0 137 .dword 0
132 138
133#include "../../mach/hw_settings.S" 139#if defined CONFIG_ETRAXFS
140#include "../../mach-fs/hw_settings.S"
141#elif defined CONFIG_CRIS_MACH_ARTPEC3
142#include "../../mach-a3/hw_settings.S"
143#else
144#error Only ETRAXFS and ARTPEC-3 supported!
145#endif
diff --git a/arch/cris/arch-v32/kernel/head.S b/arch/cris/arch-v32/kernel/head.S
index f902d87fb5de..3db478eb5155 100644
--- a/arch/cris/arch-v32/kernel/head.S
+++ b/arch/cris/arch-v32/kernel/head.S
@@ -10,8 +10,9 @@
10 * The macros found in mmu_defs_asm.h uses the ## concatenation operator, so 10 * The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
11 * -traditional must not be used when assembling this file. 11 * -traditional must not be used when assembling this file.
12 */ 12 */
13#include <hwregs/reg_rdwr.h> 13#include <linux/autoconf.h>
14#include <arch/memmap.h> 14#include <arch/memmap.h>
15#include <hwregs/reg_rdwr.h>
15#include <hwregs/intr_vect.h> 16#include <hwregs/intr_vect.h>
16#include <hwregs/asm/mmu_defs_asm.h> 17#include <hwregs/asm/mmu_defs_asm.h>
17#include <hwregs/asm/reg_map_asm.h> 18#include <hwregs/asm/reg_map_asm.h>
@@ -217,7 +218,14 @@ _inflash:
217 beq _dram_initialized 218 beq _dram_initialized
218 nop 219 nop
219 220
220#include "../mach/dram_init.S" 221#if defined CONFIG_ETRAXFS
222#include "../mach-fs/dram_init.S"
223#elif defined CONFIG_CRIS_MACH_ARTPEC3
224#include "../mach-a3/dram_init.S"
225#else
226#error Only ETRAXFS and ARTPEC-3 supported!
227#endif
228
221 229
222_dram_initialized: 230_dram_initialized:
223 ;; Copy the text and data section to DRAM. This depends on that the 231 ;; Copy the text and data section to DRAM. This depends on that the
@@ -472,4 +480,10 @@ swapper_pg_dir = 0xc0002000
472 480
473 .section ".init.data", "aw" 481 .section ".init.data", "aw"
474 482
475#include "../mach/hw_settings.S" 483#if defined CONFIG_ETRAXFS
484#include "../mach-fs/hw_settings.S"
485#elif defined CONFIG_CRIS_MACH_ARTPEC3
486#include "../mach-a3/hw_settings.S"
487#else
488#error Only ETRAXFS and ARTPEC-3 supported!
489#endif
diff --git a/arch/cris/arch-v32/vmlinux.lds.S b/arch/cris/arch-v32/vmlinux.lds.S
deleted file mode 100644
index d5f28e40717c..000000000000
--- a/arch/cris/arch-v32/vmlinux.lds.S
+++ /dev/null
@@ -1,133 +0,0 @@
1/* ld script to make the Linux/CRIS kernel
2 * Authors: Bjorn Wesen (bjornw@axis.com)
3 *
4 * It is VERY DANGEROUS to fiddle around with the symbols in this
5 * script. It is for example quite vital that all generated sections
6 * that are used are actually named here, otherwise the linker will
7 * put them at the end, where the init stuff is which is FREED after
8 * the kernel has booted.
9 */
10
11#include <asm-generic/vmlinux.lds.h>
12#include <asm/page.h>
13
14#ifdef CONFIG_ETRAX_VMEM_SIZE
15#define __CONFIG_ETRAX_VMEM_SIZE CONFIG_ETRAX_VMEM_SIZE
16#else
17#define __CONFIG_ETRAX_VMEM_SIZE 0
18#endif
19
20jiffies = jiffies_64;
21SECTIONS
22{
23 . = DRAM_VIRTUAL_BASE;
24 dram_start = .;
25 ebp_start = .;
26
27 /* The boot section is only necessary until the VCS top */
28 /* level testbench includes both flash and DRAM. */
29 .boot : { *(.boot) }
30
31 /* See head.S and pages reserved at the start. */
32 . = DRAM_VIRTUAL_BASE + 0x4000;
33
34 _text = .; /* Text and read-only data. */
35 text_start = .; /* Lots of aliases. */
36 _stext = .;
37 __stext = .;
38 .text : {
39 TEXT_TEXT
40 SCHED_TEXT
41 LOCK_TEXT
42 *(.fixup)
43 *(.text.__*)
44 }
45
46 _etext = . ; /* End of text section. */
47 __etext = .;
48
49 . = ALIGN(4); /* Exception table. */
50 __start___ex_table = .;
51 __ex_table : { *(__ex_table) }
52 __stop___ex_table = .;
53
54 RODATA
55
56 . = ALIGN (4);
57 ___data_start = . ;
58 __Sdata = . ;
59 .data : { /* Data */
60 DATA_DATA
61 }
62 __edata = . ; /* End of data section. */
63 _edata = . ;
64
65 . = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */
66 .data.init_task : { *(.data.init_task) }
67
68 . = ALIGN(PAGE_SIZE); /* Init code and data. */
69 __init_begin = .;
70 .init.text : {
71 _sinittext = .;
72 INIT_TEXT
73 _einittext = .;
74 }
75 .init.data : { INIT_DATA }
76 . = ALIGN(16);
77 __setup_start = .;
78 .init.setup : { *(.init.setup) }
79 __setup_end = .;
80 __start___param = .;
81 __param : { *(__param) }
82 __stop___param = .;
83 .initcall.init : {
84 __initcall_start = .;
85 INITCALLS
86 __initcall_end = .;
87 }
88
89 .con_initcall.init : {
90 __con_initcall_start = .;
91 *(.con_initcall.init)
92 __con_initcall_end = .;
93 }
94 SECURITY_INIT
95
96 __vmlinux_end = .; /* Last address of the physical file. */
97 PERCPU(PAGE_SIZE)
98
99 .init.ramfs : {
100 __initramfs_start = .;
101 *(.init.ramfs)
102 __initramfs_end = .;
103 }
104
105 /*
106 * We fill to the next page, so we can discard all init
107 * pages without needing to consider what payload might be
108 * appended to the kernel image.
109 */
110 . = ALIGN (PAGE_SIZE);
111
112 __init_end = .;
113
114 __data_end = . ; /* Move to _edata? */
115 __bss_start = .; /* BSS. */
116 .bss : {
117 *(COMMON)
118 *(.bss)
119 }
120
121 . = ALIGN (0x20);
122 _end = .;
123 __end = .;
124
125 /* Sections to be discarded */
126 /DISCARD/ : {
127 EXIT_TEXT
128 EXIT_DATA
129 *(.exitcall.exit)
130 }
131
132 dram_end = dram_start + (CONFIG_ETRAX_DRAM_SIZE - __CONFIG_ETRAX_VMEM_SIZE)*1024*1024;
133}