[U-Boot] AMCC 405EX Trap

Jonathan Haws Jonathan.Haws at sdl.usu.edu
Thu Apr 30 16:34:03 CEST 2009


Grant,

Thanks for the reply.

I am certain that it is a hardware failure that is causing the machine check because I can use the exact same binary on another (identical) board and have it boot just fine.  That tells me that all the EBC and SDRAM settings are correct; and that I am using the right addresses and chip selects for the data cache.

Currently I am leaning toward an SDRAM problem because I get about a 20 second pause when U-Boot tries to relocate to RAM.

Again, thanks for the reply.

Jonathan



> -----Original Message-----
> From: Grant Erickson [mailto:gerickson at nuovations.com]
> Sent: Wednesday, April 29, 2009 5:38 PM
> To: Jonathan Haws
> Cc: u-boot at lists.denx.de
> Subject: Re: [U-Boot] AMCC 405EX Trap
> 
> 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