Subject: Re: Linux on custom Xilinx board with PPC405 hangs on boot

From: [email-masked] (Linas Vepstas)
Date: Wed, 20 Sep 2006 18:57:16 -0500

On Wed, Sep 20, 2006 at 11:16:53AM +0200, Peter N. Andreasen wrote:
> I have a custom Xilinx FPGA board which is similar to ML300 but uses
> Uartllite and does not have disk or display.
> When I start the Linux kernel I end up with an exception during the probe
> for Flash - I think.

Well, its not just "an exception" its a machine check.

> (after get_mtd_chip_driver) drivers/mtd/chips/chipreg.c: do_map_probe
> (start) drivers/mtd/chips/gen_probe.c: mtd_do_chip_probe
> (start) drivers/mtd/chips/gen_probe.c: genprobe_ident_chips
> Instruction machine check in kernel mode.
> Oops: machine check, sig: 7
> NIP: C00A2960 XER: 40000000 LR: C009CBD8 SP: C04D9D90 REGS: c04d9ce0 TRAP:
> 0200    Not tainted
> MSR: 00009030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11

Machine checks happen when some hunk of hardware is wired to the 
machine-check pin of the cpu chip, and that bit of hardware decides to
raise the wire.  I'd say the first step is to figure ou what hardware
is wired up this way, and what would make it unhappy enough to assert a
machine check.

SRR1 has bits that state what caused he machine check. -- e.g partity
error on data or address bus, "transfer error", or MC signal.

--linas