[PATCH v3 2/8] ARM: mvebu: armada-370-xp: disable MBUS error propagation

Sebastian Hesselbarth sebastian.hesselbarth at gmail.com
Wed Jul 30 01:39:34 PDT 2014


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: Sebastian Hesselbarth <sebastian.hesselbarth at gmail.com>
---
Changelog:
v2->v3:
- new patch

Cc: barebox at lists.infradead.org
Cc: Antony Pavlov <antonynpavlov at gmail.com>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
Cc: Lucas Stach <l.stach at pengutronix.de>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
---
 arch/arm/mach-mvebu/armada-370-xp.c                   | 6 ++++++
 arch/arm/mach-mvebu/include/mach/armada-370-xp-regs.h | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
index e416a3876539..4eda6d539aab 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.c
+++ b/arch/arm/mach-mvebu/armada-370-xp.c
@@ -46,10 +46,16 @@ static inline void armada_370_xp_memory_find(unsigned long *phys_base,
 static int armada_370_xp_init_soc(void)
 {
 	unsigned long phys_base, phys_size;
+	u32 reg;
 
 	barebox_set_model("Marvell Armada 370/XP");
 	barebox_set_hostname("armada");
 
+	/* Disable MBUS error propagation */
+	reg = readl(ARMADA_370_XP_FABRIC_BASE);
+	reg &= ~BIT(8);
+	writel(reg, ARMADA_370_XP_FABRIC_BASE);
+
 	armada_370_xp_memory_find(&phys_base, &phys_size);
 	arm_add_mem_device("ram0", phys_base, phys_size);
 
diff --git a/arch/arm/mach-mvebu/include/mach/armada-370-xp-regs.h b/arch/arm/mach-mvebu/include/mach/armada-370-xp-regs.h
index 5fd16e5733bb..ccc687c03b6e 100644
--- a/arch/arm/mach-mvebu/include/mach/armada-370-xp-regs.h
+++ b/arch/arm/mach-mvebu/include/mach/armada-370-xp-regs.h
@@ -42,6 +42,8 @@
 #define  DDR_SIZE_CS_SHIFT		2
 #define  DDR_SIZE_MASK			0xff000000
 
+#define ARMADA_370_XP_FABRIC_BASE	(ARMADA_370_XP_INT_REGS_BASE + 0x20200)
+
 #define ARMADA_370_XP_TIMER_BASE	(ARMADA_370_XP_INT_REGS_BASE + 0x20300)
 
 #endif /* __MACH_MVEBU_DOVE_REGS_H */
-- 
2.0.0




More information about the barebox mailing list