Blackfin arch: move more of our startup code to .init so it can be freed once we...
[linux-2.6.git] / arch / blackfin / kernel / setup.c
index c456ee5..d9517e7 100644 (file)
@@ -43,6 +43,8 @@
 #include <asm/blackfin.h>
 #include <asm/cplbinit.h>
 
+u16 _bfin_swrst;
+
 unsigned long memory_start, memory_end, physical_mem_end;
 unsigned long reserved_mem_dcache_on;
 unsigned long reserved_mem_icache_on;
@@ -88,7 +90,7 @@ void __init bf53x_cache_init(void)
 #endif
 }
 
-void bf53x_relocate_l1_mem(void)
+void __init bf53x_relocate_l1_mem(void)
 {
        unsigned long l1_code_length;
        unsigned long l1_data_a_length;
@@ -381,37 +383,27 @@ void __init setup_arch(char **cmdline_p)
        if (l1_length > L1_DATA_A_LENGTH)
                panic("L1 memory overflow\n");
 
-       bf53x_cache_init();
-
-#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
-# if defined(CONFIG_BFIN_SHARED_FLASH_ENET) && defined(CONFIG_BFIN533_STAMP)
-       /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
-       bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN));
-       bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN);
-       SSYNC();
-# endif
-# if defined (CONFIG_BFIN561_EZKIT)
-       bfin_write_FIO0_DIR(bfin_read_FIO0_DIR() | (1 << 12));
-       SSYNC();
-# endif /* defined (CONFIG_BFIN561_EZKIT) */
+#ifdef BF561_FAMILY
+       _bfin_swrst = bfin_read_SICA_SWRST();
+#else
+       _bfin_swrst = bfin_read_SWRST();
 #endif
 
+       bf53x_cache_init();
+
        printk(KERN_INFO "Hardware Trace Enabled\n");
        bfin_write_TBUFCTL(0x03);
 }
 
-#if defined(CONFIG_BF561)
-static struct cpu cpu[2];
-#else
-static struct cpu cpu[1];
-#endif
 static int __init topology_init(void)
 {
 #if defined (CONFIG_BF561)
+       static struct cpu cpu[2];
        register_cpu(&cpu[0], 0);
        register_cpu(&cpu[1], 1);
        return 0;
 #else
+       static struct cpu cpu[1];
        return register_cpu(cpu, 0);
 #endif
 }
@@ -419,7 +411,7 @@ static int __init topology_init(void)
 subsys_initcall(topology_init);
 
 #if defined(CONFIG_BLKFIN_DCACHE) || defined(CONFIG_BLKFIN_CACHE)
-u16 lock_kernel_check(u32 start, u32 end)
+static u16 __init lock_kernel_check(u32 start, u32 end)
 {
        if ((start <= (u32) _stext && end >= (u32) _end)
            || (start >= (u32) _stext && end <= (u32) _end))
@@ -689,7 +681,7 @@ static void __init generate_cpl_tables(void)
 
 #endif
 
-static inline u_long get_vco(void)
+static u_long get_vco(void)
 {
        u_long msel;
        u_long vco;
@@ -897,8 +889,8 @@ struct seq_operations cpuinfo_op = {
        .show = show_cpuinfo,
 };
 
-void cmdline_init(unsigned long r0)
+void __init cmdline_init(char *r0)
 {
        if (r0)
-               strncpy(command_line, (char *)r0, COMMAND_LINE_SIZE);
+               strncpy(command_line, r0, COMMAND_LINE_SIZE);
 }