[U-Boot] AMCC 405EX Trap

Grant Erickson gerickson at nuovations.com
Thu Apr 30 01:37:39 CEST 2009


On 4/29/09 12:45 PM, Jonathan Haws wrote:
> I am experiencing a machine check on a custom AMCC 405EX PPC board.  Our board
> is based on the AMCC Kilauea evaluation board.  We have a few of these boards
> that are up and running, but I am trying to track down a machine check error
> on a couple of them.
> 
> My question for you is this:  when the registers are printed to the console,
> there is one called TRAP.  I want to know how/where/when and with what data
> that gets populated.  I have read through the AMCC manuals a couple of times
> trying to find it and have searched through the U-Boot code to no avail.  All
> I know is that there is a data type "struct pt_regs*" that contains all that
> data, but nowhere can I find where it is populated.
> 
> Below is the console output.  The line "!!!! PAUSE !!!!" was inserted by me
> after I copied the text from the console to remind me of the ~20 second pause
> that occurs at that point.
> 
> I am hoping that someone can point me to the bit definitions for whatever
> register is being displayed in TRAP.  From there, I think I can trace the
> problem back to the specific piece of hardware and get it fixed.

Jonathan:

Typically machine checks such as this are latent and are more about
something that happened earlier during bootstrap and initialization rather
than something that happened at the time the machine check was actually
realized. This is because up until that point, exceptions have not been
enabled.

The first thing to check is your u-boot board configuration file. Are all
EBC settings correct? Are all SDRAM settings correct? Are you using the
right addresses and chip selects for data cache bootstrapping?

Beyond that, it might be useful to single step with your BDI/GDB (or other
debugger) from start.S forward, watching key exception registers after every
step.

To assist with such debugging, I defined the following macro in my .gdbinit
file to dump relevant registers after every single step:

    .gdbinit:
        define dumpexcregs
            monitor rd msr
            monitor rd esr
            monitor rd dead
            monitor rd srr0
            monitor rd srr1
            monitor rd srr2
            monitor rd srr3
            monitor rd mcsr
            monitor rd mcar
            monitor rd mcsrr0
            monitor rd mcsrr1
            monitor rd ebc_besr0
            monitor rd ebc_besr1
            monitor rd sdram_besr0
            monitor rd sdram_besr0
            monitor rd sdram_bearl
            monitor rd sdram_bearh
        end

Regards,

Grant Erickson




More information about the U-Boot mailing list