[lkml]   [2011]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: PATA_ARTOP reads byte from PCI IO port without mapping it to the right address.

> Is this an ARM machine? The platform specific mach/io.h header

Sorry, I should have mentioned it more explicitly.
The machine is an SH4 based (The processor model is SH7751R, board is
landisk.. in /arch/sh/include/mach-landisk/).

> You have to ioremap() the physical address 0xfe240000 to a virtual
> address, and then add the base address to the number inside of the
> __io macro, e.g.
-- snip --

Ok, that makes a lot of sense. This is the first time I've ever touched
I've looked around and I can't right now see where that matches up with
the SH/board specific code but I'll have a better look later.

We've been trying to work this out for a few days.. we were fudging the
io port base address in arch/sh/kernel/ioport.c to the start of the PCI
space. But we didn't think that was the right thing to be doing.
We have another board with the same processor and e100 NIC that uses the
same mapping to 0x1400 and uses io ports but worked fine. So we guessed
it was pata_artops use of inb() .. the person that did a lot of changes
to this board's code recently also wrote that he thought it was
pata_artops fault when I asked on the linux-sh list.

 \ /
  Last update: 2011-03-30 22:27    [W:0.042 / U:7.752 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site