Help: Porting PCI driver from Linux/Intel -> PPC

David A. Gatwood dgatwood at mvista.com
Sat Jun 26 02:36:38 EST 1999


On Thu, 24 Jun 1999, Daniel Jacobowitz wrote:

> > Caused by (from msr): regs c24d7ca0 Unknown values in msr 
> > NIP: C483CFA0 XER: 00000000 LR: C483CF54 REGS: c24d7ca0 TRAP: 0200 
> 
>                                                                 ^^^^

> What I highlighted above is your clue.  I don't remember off the top of
> my head which 0200 is, but I'm willing to bet it's Open Firmware's data
> access exception - attempting to access physical memory unmapped by the
> MMU.

Actually, 0x200 (machine check) is caused by a TEA, which is generally
caused by attempting to access physical memory that's not decoded in
hardware but _is_ mapped by the MMU (if MMU on), assuming that MSR[ME] is
set to 1 (otherwise it goes into a checkstop state, presumably for
hardware debugging).  IOW, trying to access a physical address for which
there is no device.

0x300 is the attempt to access memory that's not been mapped, IIRC.


>  Along with the other suggestion for enabling memory, be very sure
> about endianness issues - that's the major porting pitfall.  Where are
> you inl()'ing from?

It very much sounds like an endianness issue, yeah.


David


[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]





More information about the Linuxppc-dev mailing list