Title: [8981] trunk/arch/blackfin: [#5559] Implment workaround for silicon anomaly 05000481 - which is
Revision
8981
Author
rgetz
Date
2010-07-09 13:29:26 -0400 (Fri, 09 Jul 2010)

Log Message

[#5559] Implment workaround for silicon anomaly 05000481 - which is
don't allow anything to read this register.

Modified Paths

Diff

Modified: trunk/arch/blackfin/include/asm/cdef_LPBlackfin.h (8980 => 8981)


--- trunk/arch/blackfin/include/asm/cdef_LPBlackfin.h	2010-07-09 14:57:43 UTC (rev 8980)
+++ trunk/arch/blackfin/include/asm/cdef_LPBlackfin.h	2010-07-09 17:29:26 UTC (rev 8981)
@@ -172,16 +172,19 @@
 #define bfin_write_ICPLB_DATA14(val)         bfin_write32(ICPLB_DATA14,val)
 #define bfin_read_ICPLB_DATA15()             bfin_read32(ICPLB_DATA15)
 #define bfin_write_ICPLB_DATA15(val)         bfin_write32(ICPLB_DATA15,val)
-#define bfin_read_ITEST_COMMAND()            bfin_read32(ITEST_COMMAND)
 #define bfin_write_ITEST_COMMAND(val)        bfin_write32(ITEST_COMMAND,val)
 #if 0
 #define ITEST_INDEX            0xFFE01304   /* Instruction Test Index Register */
 #endif
-#define bfin_read_ITEST_DATA0()              bfin_read32(ITEST_DATA0)
 #define bfin_write_ITEST_DATA0(val)          bfin_write32(ITEST_DATA0,val)
-#define bfin_read_ITEST_DATA1()              bfin_read32(ITEST_DATA1)
 #define bfin_write_ITEST_DATA1(val)          bfin_write32(ITEST_DATA1,val)
 
+#ifdef ANOMALY_05000481
+#define bfin_read_ITEST_COMMAND()            bfin_read32(ITEST_COMMAND)
+#define bfin_read_ITEST_DATA0()              bfin_read32(ITEST_DATA0)
+#define bfin_read_ITEST_DATA1()              bfin_read32(ITEST_DATA1)
+#endif
+
 /* Event/Interrupt Registers*/
 
 #define bfin_read_EVT0()                     bfin_read32(EVT0)

Modified: trunk/arch/blackfin/kernel/debug-mmrs.c (8980 => 8981)


--- trunk/arch/blackfin/kernel/debug-mmrs.c	2010-07-09 14:57:43 UTC (rev 8980)
+++ trunk/arch/blackfin/kernel/debug-mmrs.c	2010-07-09 17:29:26 UTC (rev 8981)
@@ -420,9 +420,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -1123,9 +1125,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -1937,9 +1941,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -2774,9 +2780,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -3502,9 +3510,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -4216,9 +4226,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -4930,9 +4942,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -5815,9 +5829,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -6781,9 +6797,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -7747,9 +7765,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -8642,9 +8662,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_FAULT_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -9277,9 +9299,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_FAULT_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -9912,9 +9936,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_FAULT_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -10621,9 +10647,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -11711,9 +11739,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -12801,9 +12831,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -14239,9 +14271,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -15490,9 +15524,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -16947,9 +16983,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -18635,9 +18673,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -20675,9 +20715,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -21862,9 +21904,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -24036,9 +24080,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -26204,9 +26250,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
@@ -27774,9 +27822,11 @@
 		D("ICPLB_FAULT_ADDR", 32, 0xFFE0100C);
 		D("ICPLB_STATUS", 32, 0xFFE01008);
 		D("IMEM_CONTROL", 32, 0xFFE01004);
-		D("ITEST_COMMAND", 32, 0xFFE01300);
-		D("ITEST_DATA0", 32, 0xFFE01400);
-		D("ITEST_DATA1", 32, 0xFFE01404);
+		if (!ANOMALY_05000481) {
+			D("ITEST_COMMAND", 32, 0xFFE01300);
+			D("ITEST_DATA0", 32, 0xFFE01400);
+			D("ITEST_DATA1", 32, 0xFFE01404);
+		}
 
 		parent = debugfs_create_dir("L1 Data Memory Registers", top);
 		D("DCPLB_ADDR0", 32, 0xFFE00100);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to