aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <michael.frysinger@analog.com>2007-06-11 03:31:30 -0400
committerBryan Wu <bryan.wu@analog.com>2007-06-11 03:31:30 -0400
commit52a078120c33b06a9abb721357adaafc3b55b7c1 (patch)
tree5a17d6b1c5c0beb639507d9c54b3c26bd99aa8fc
parent83a5c3e3218f138b1a99f787c76e380d6a6ecec9 (diff)
Blackfin arch: move more of our startup code to .init so it can be freed once we are up and running
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
-rw-r--r--arch/blackfin/kernel/setup.c10
-rw-r--r--arch/blackfin/mach-bf533/head.S13
-rw-r--r--arch/blackfin/mach-bf537/head.S13
-rw-r--r--arch/blackfin/mach-bf561/head.S13
4 files changed, 29 insertions, 20 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 02dc74301920..d9517e7c792b 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -90,7 +90,7 @@ void __init bf53x_cache_init(void)
90#endif 90#endif
91} 91}
92 92
93void bf53x_relocate_l1_mem(void) 93void __init bf53x_relocate_l1_mem(void)
94{ 94{
95 unsigned long l1_code_length; 95 unsigned long l1_code_length;
96 unsigned long l1_data_a_length; 96 unsigned long l1_data_a_length;
@@ -411,7 +411,7 @@ static int __init topology_init(void)
411subsys_initcall(topology_init); 411subsys_initcall(topology_init);
412 412
413#if defined(CONFIG_BLKFIN_DCACHE) || defined(CONFIG_BLKFIN_CACHE) 413#if defined(CONFIG_BLKFIN_DCACHE) || defined(CONFIG_BLKFIN_CACHE)
414u16 lock_kernel_check(u32 start, u32 end) 414static u16 __init lock_kernel_check(u32 start, u32 end)
415{ 415{
416 if ((start <= (u32) _stext && end >= (u32) _end) 416 if ((start <= (u32) _stext && end >= (u32) _end)
417 || (start >= (u32) _stext && end <= (u32) _end)) 417 || (start >= (u32) _stext && end <= (u32) _end))
@@ -681,7 +681,7 @@ static void __init generate_cpl_tables(void)
681 681
682#endif 682#endif
683 683
684static inline u_long get_vco(void) 684static u_long get_vco(void)
685{ 685{
686 u_long msel; 686 u_long msel;
687 u_long vco; 687 u_long vco;
@@ -889,8 +889,8 @@ struct seq_operations cpuinfo_op = {
889 .show = show_cpuinfo, 889 .show = show_cpuinfo,
890}; 890};
891 891
892void cmdline_init(unsigned long r0) 892void __init cmdline_init(char *r0)
893{ 893{
894 if (r0) 894 if (r0)
895 strncpy(command_line, (char *)r0, COMMAND_LINE_SIZE); 895 strncpy(command_line, r0, COMMAND_LINE_SIZE);
896} 896}
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index 33d1f623fe4e..7e2aa8d0f44f 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -28,6 +28,7 @@
28 */ 28 */
29 29
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <linux/init.h>
31#include <asm/blackfin.h> 32#include <asm/blackfin.h>
32#if CONFIG_BFIN_KERNEL_CLOCK 33#if CONFIG_BFIN_KERNEL_CLOCK
33#include <asm/mach/mem_init.h> 34#include <asm/mach/mem_init.h>
@@ -45,10 +46,9 @@
45 46
46#define INITIAL_STACK 0xFFB01000 47#define INITIAL_STACK 0xFFB01000
47 48
48.text 49__INIT
49 50
50ENTRY(__start) 51ENTRY(__start)
51ENTRY(__stext)
52 /* R0: argument of command line string, passed from uboot, save it */ 52 /* R0: argument of command line string, passed from uboot, save it */
53 R7 = R0; 53 R7 = R0;
54 /* Set the SYSCFG register: 54 /* Set the SYSCFG register:
@@ -266,6 +266,7 @@ ENTRY(__stext)
266 266
267.LWAIT_HERE: 267.LWAIT_HERE:
268 jump .LWAIT_HERE; 268 jump .LWAIT_HERE;
269ENDPROC(__start)
269 270
270ENTRY(_real_start) 271ENTRY(_real_start)
271 [ -- sp ] = reti; 272 [ -- sp ] = reti;
@@ -334,9 +335,10 @@ ENTRY(_real_start)
334 sp = r1; 335 sp = r1;
335 usp = sp; 336 usp = sp;
336 fp = sp; 337 fp = sp;
337 call _start_kernel; 338 jump.l _start_kernel;
338.L_exit: 339ENDPROC(_real_start)
339 jump.s .L_exit; 340
341__FINIT
340 342
341.section .l1.text 343.section .l1.text
342#if CONFIG_BFIN_KERNEL_CLOCK 344#if CONFIG_BFIN_KERNEL_CLOCK
@@ -446,6 +448,7 @@ ENTRY(_start_dma_code)
446 SSYNC; 448 SSYNC;
447 449
448 RTS; 450 RTS;
451ENDPROC(_start_dma_code)
449#endif /* CONFIG_BFIN_KERNEL_CLOCK */ 452#endif /* CONFIG_BFIN_KERNEL_CLOCK */
450 453
451ENTRY(_bfin_reset) 454ENTRY(_bfin_reset)
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index 3f490bfb73fa..7d902bbd860f 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -28,6 +28,7 @@
28 */ 28 */
29 29
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <linux/init.h>
31#include <asm/blackfin.h> 32#include <asm/blackfin.h>
32#if CONFIG_BFIN_KERNEL_CLOCK 33#if CONFIG_BFIN_KERNEL_CLOCK
33#include <asm/mach/mem_init.h> 34#include <asm/mach/mem_init.h>
@@ -42,10 +43,9 @@
42 43
43#define INITIAL_STACK 0xFFB01000 44#define INITIAL_STACK 0xFFB01000
44 45
45.text 46__INIT
46 47
47ENTRY(__start) 48ENTRY(__start)
48ENTRY(__stext)
49 /* R0: argument of command line string, passed from uboot, save it */ 49 /* R0: argument of command line string, passed from uboot, save it */
50 R7 = R0; 50 R7 = R0;
51 /* Set the SYSCFG register: 51 /* Set the SYSCFG register:
@@ -275,6 +275,7 @@ ENTRY(__stext)
275 275
276.LWAIT_HERE: 276.LWAIT_HERE:
277 jump .LWAIT_HERE; 277 jump .LWAIT_HERE;
278ENDPROC(__start)
278 279
279ENTRY(_real_start) 280ENTRY(_real_start)
280 [ -- sp ] = reti; 281 [ -- sp ] = reti;
@@ -343,9 +344,10 @@ ENTRY(_real_start)
343 sp = r1; 344 sp = r1;
344 usp = sp; 345 usp = sp;
345 fp = sp; 346 fp = sp;
346 call _start_kernel; 347 jump.l _start_kernel;
347.L_exit: 348ENDPROC(_real_start)
348 jump.s .L_exit; 349
350__FINIT
349 351
350.section .l1.text 352.section .l1.text
351#if CONFIG_BFIN_KERNEL_CLOCK 353#if CONFIG_BFIN_KERNEL_CLOCK
@@ -464,6 +466,7 @@ ENTRY(_start_dma_code)
464 SSYNC; 466 SSYNC;
465 467
466 RTS; 468 RTS;
469ENDPROC(_start_dma_code)
467#endif /* CONFIG_BFIN_KERNEL_CLOCK */ 470#endif /* CONFIG_BFIN_KERNEL_CLOCK */
468 471
469ENTRY(_bfin_reset) 472ENTRY(_bfin_reset)
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index 3029e940ddcd..31cbc75c85cf 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -28,6 +28,7 @@
28 */ 28 */
29 29
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <linux/init.h>
31#include <asm/blackfin.h> 32#include <asm/blackfin.h>
32#if CONFIG_BFIN_KERNEL_CLOCK 33#if CONFIG_BFIN_KERNEL_CLOCK
33#include <asm/mach/mem_init.h> 34#include <asm/mach/mem_init.h>
@@ -42,10 +43,9 @@
42 43
43#define INITIAL_STACK 0xFFB01000 44#define INITIAL_STACK 0xFFB01000
44 45
45.text 46__INIT
46 47
47ENTRY(__start) 48ENTRY(__start)
48ENTRY(__stext)
49 /* R0: argument of command line string, passed from uboot, save it */ 49 /* R0: argument of command line string, passed from uboot, save it */
50 R7 = R0; 50 R7 = R0;
51 /* Set the SYSCFG register: 51 /* Set the SYSCFG register:
@@ -221,6 +221,7 @@ ENTRY(__stext)
221 221
222.LWAIT_HERE: 222.LWAIT_HERE:
223 jump .LWAIT_HERE; 223 jump .LWAIT_HERE;
224ENDPROC(__start)
224 225
225ENTRY(_real_start) 226ENTRY(_real_start)
226 [ -- sp ] = reti; 227 [ -- sp ] = reti;
@@ -289,9 +290,10 @@ ENTRY(_real_start)
289 sp = r1; 290 sp = r1;
290 usp = sp; 291 usp = sp;
291 fp = sp; 292 fp = sp;
292 call _start_kernel; 293 jump.l _start_kernel;
293.L_exit: 294ENDPROC(_real_start)
294 jump.s .L_exit; 295
296__FINIT
295 297
296.section .l1.text 298.section .l1.text
297#if CONFIG_BFIN_KERNEL_CLOCK 299#if CONFIG_BFIN_KERNEL_CLOCK
@@ -393,6 +395,7 @@ ENTRY(_start_dma_code)
393 SSYNC; 395 SSYNC;
394 396
395 RTS; 397 RTS;
398ENDPROC(_start_dma_code)
396#endif /* CONFIG_BFIN_KERNEL_CLOCK */ 399#endif /* CONFIG_BFIN_KERNEL_CLOCK */
397 400
398ENTRY(_bfin_reset) 401ENTRY(_bfin_reset)