Blackfin arch: cache SWRST value at bootup so other things like watchdog can non...
authorMike Frysinger <michael.frysinger@analog.com>
Mon, 21 May 2007 10:09:32 +0000 (18:09 +0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 21 May 2007 16:50:23 +0000 (09:50 -0700)
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/blackfin/kernel/setup.c
include/asm-blackfin/bfin-global.h

index b6ac6f8067b82eda1691864273f668046a8c6c4e..02dc74301920ea36f34daa7198e55d8cfa586723 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;
@@ -381,6 +383,12 @@ void __init setup_arch(char **cmdline_p)
        if (l1_length > L1_DATA_A_LENGTH)
                panic("L1 memory overflow\n");
 
+#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");
index e37f81609fc3d9c38c055b3c25e708fed046550a..57f37ccdcdf1db421f25921c8db7bbdc34274671 100644 (file)
@@ -104,6 +104,7 @@ extern unsigned long dpdt_swapcount_table[];
 
 extern unsigned long table_start, table_end;
 
+extern u16 _bfin_swrst; /* shadow for Software Reset Register (SWRST) */
 extern struct file_operations dpmc_fops;
 extern char _start;
 extern unsigned long _ramstart, _ramend, _rambase;