arm: mvebu: Disable MBUS error propagation
authorStefan Roese <sr@denx.de>
Wed, 1 Jul 2015 11:28:39 +0000 (13:28 +0200)
committerLuka Perkov <luka.perkov@sartura.hr>
Mon, 17 Aug 2015 16:48:57 +0000 (18:48 +0200)
Accessing MBUS windows not backed-up by e.g. PCIe devices will
hang the SoC. Disable MBUS error propagation back to CPU allows
to read 0xffffffff instead of hanging the SoC.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
arch/arm/mach-mvebu/cpu.c
arch/arm/mach-mvebu/include/mach/soc.h

index 23c2a9782f5ce4a5a55ebb60840d6c116d6ada4f..fa82067ba8f8b29b0efea0d8ce8fdf7424a24b75 100644 (file)
@@ -241,6 +241,9 @@ int arch_cpu_init(void)
         */
        mvebu_mbus_probe(windows, ARRAY_SIZE(windows));
 
+       /* Disable MBUS error propagation */
+       clrsetbits_le32(SOC_COHERENCY_FABRIC_CTRL_REG, MBUS_ERR_PROP_EN, 0);
+
        return 0;
 }
 #endif /* CONFIG_ARCH_CPU_INIT */
index 71254c5d4673941242c12dcbf1e7a826005e37e0..a29e5dcedca751cda21d01fe15a361ce257dfec3 100644 (file)
@@ -66,6 +66,9 @@
 #define MVEBU_SATA0_BASE       (MVEBU_REGISTER(0xa8000))
 #define MVEBU_SDIO_BASE                (MVEBU_REGISTER(0xd8000))
 
+#define SOC_COHERENCY_FABRIC_CTRL_REG  (MVEBU_REGISTER(0x20200))
+#define MBUS_ERR_PROP_EN       (1 << 8)
+
 #define MBUS_BRIDGE_WIN_CTRL_REG (MVEBU_REGISTER(0x20250))
 #define MBUS_BRIDGE_WIN_BASE_REG (MVEBU_REGISTER(0x20254))