[U-Boot] Access to certain MPC8308 internal registers causes exception

Wolfgang Denk wd at denx.de
Tue May 10 23:11:57 CEST 2011


Dear Bruce_Leonard at selinc.com,

In message <OF52246316.B0B28736-ON8825788C.0070C8B2-8825788C.0071C6C6 at selinc.com> you wrote:
> I'm doing board bring up on a design using an MPC8308 and I'm seeing odd 
> behavior when I try to read certain internal registers on the processor. 
> In particular when I try to read the reserved registers in the DMA engine 

Well, "reserved" means there is _no_ register there, and trying to
access it invoked undefined behaviour.

> (for example offset 0xyyy2c008, right after the DMAES register) causes a 
> machine check exception if I use u-boot and a "# SAP : read access failed" 
> when using the BDI.  Yes I know that it's a reserved register and all bets 
> are off when it comes to those, so I'm not looking to find something 
> "broken".  What I'm curious about is why I've never seen this in the other 

No, this is not broken, this is perfectly normal behaviour.

> processors I've used from Freescale (even other 83xx processors), and two 

You just didn't look carefully enough.  This is common behaviour on
many PPC processors.  Even on the old MPC8xx systems we used this
behaviour for example to implement a "reset" operation.

> why other "reserved" registers don't behave the same way.  I can read all 
> the way from 0xyyyy0d00 to 0xyyyy2000 just fine.  So what's different 
> about the DMA engine?

Undefined behaviour means that anything can happed - machine check, or
nothing at all, or the release of magic smoke.  There are absolutely
no guarantees.

> Don't think it's a BAT or a memory window issue since I can read on both 
> sides of the register.  Very curious.

No, pretty much normal.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The following statement is not true.  The previous statement is true.


More information about the U-Boot mailing list