[U-Boot] [PATCH] PowerPC MPC85xx: don't hang on read exception
Andrew Klossner
andrew at cesa.opbu.xerox.com
Wed Mar 11 19:36:18 CET 2009
Set HID1[RFXE] = 1 in cpu/mpc85xx/start.S. When this bit is 0, any
condition that asserts the internal core_fault_in* signal will result
in a processor hang, recoverable only with reset. When this bit is 1,
such a condition will cause a machine check exception and software
will have a chance to print an error message.
Conditions that can assert core_fault_in* include ECM local access
error (read an unmapped target address), multi-bit ECC error in L2
cache or DDR RAM, localbus parity error, and a variety of PCI errors.
A long discussion of why this bit must be set can be found in, among
other places, the "MPC8548E PowerQUICC III Integrated Processor Family
Reference Manual" section 6.10.2, table 6-19 "HID1 Field
Descriptions." It says that leaving the bit 0 "is not a recommended
configuration. The processor may stall indefinitely due to an
unreported error."
We have tested the use of this bit for two years, both in u-boot/Linux
and in a proprietary operating system, in systems using MPC8541,
MPC8545/8, and MPC8536.
Signed-off-by: Andrew Klossner <andrew at cesa.opbu.xerox.com>
---
cpu/mpc85xx/start.S | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/cpu/mpc85xx/start.S b/cpu/mpc85xx/start.S
index 80f9677..8dfbc81 100644
--- a/cpu/mpc85xx/start.S
+++ b/cpu/mpc85xx/start.S
@@ -166,6 +166,7 @@ _start_e500:
#ifndef CONFIG_E500MC
li r0,(HID1_ASTME|HID1_ABE)@l /* Addr streaming & broadcast */
+ ori r0,r0,HID1_RFXE at h /* Enable read fault exceptions */
mtspr HID1,r0
#endif
--
1.6.1.3
More information about the U-Boot
mailing list