[U-Boot] [PATCH] PowerPC MPC85xx: don't hang on read exception

Andrew Klossner andrew at cesa.opbu.xerox.com
Fri Mar 13 23:20:40 CET 2009


> In fact. u-boot has some support for these error events, check the
> cpu/mpc85xx/interrupts, 8548cds, 8544ds board file and drivers/pci
> /fsl-pci...c. beside they has not good framework.

Yes, that's a start.

The interrupts should be configured as critical so that the processor
doesn't hang when core_fault_in* is asserted while MSR[EE] == 0.

iivpr0, iidr0, and l2errinten need to be set up to take interrupts on
L2 cache errors.  We've seen perhaps a dozen such errors since we
started using these chips.

err_int_en is only set up for MPC8536DS, MPC8572DS, and MPC8610HPCD.
You can get memory-select errors on boards that don't have ECC.
Granted, it's the result of a software flaw, but you'd rather take an
exception than hang when that flaw occurs.

A dozen or so boards with E500 cores don't seem to enable the
necessary interrupts at all.

If all these points were addressed, then it would be safe not to set
HID1[RFXE].

> Linux kernel has the EDAC driver for 85xx platform in main tree,
> include most of error case.

CONFIG_EDAC_MPC85XX is turned off in the defconfig file for all real
boards, so they will hang if core_fault_in* is asserted while running
Linux.  mpc85xx_edac.c doesn't seem to use critical interrupts, so an
error while local_irq_disable() will hang.  It handles PCI, L2, and
memory errors, but not localbus or ECM.  It has the potential to be
developed into a complete solution, but it's not there today.

  -=- Andrew Klossner


More information about the U-Boot mailing list