Re: Oops in IDE probing on ppc_440 when PCI is enabled in strapping
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2009-09-15 09:45:25
On Tue, 2009-09-15 at 10:57 +0200, Ludo Van Put wrote:
Thnx for the suggestion, but the ide_insw is in fact of copy of the _insw assembly routine, and it gets passed the effective address, without the _IO_BASE offset. I was thinking about TLB stuff. I'm not a u-boot expert, but could it be that I need to tweak/reconfigure u-boot so I can access the address returned from ioremap64?
No. If you pass the right physical address to ioremap64, the result should be useable as-is. The TLB entries will be faulted in automatically by the kernel when doing accesses. At this stage, I can't say what's wrong, it looks like you may be accessing the wrong virtual address or something like that. Hard to tell. It's a data access exception, not a machine check, so that means that in some ways, the virtual address accessed by ide_insw is not mapped by the kernel page tables, which is what the kernel TLB miss handler uses to populate the TLB. 2.6.10 is so old, that I really have little memories of what is going on in that area and I'm afraid am of little help here. If you have a HW debugger such as a BDI, you may want to trace through the access, what kind of TLB faults it generates and why the TLB miss handler doesn't handle it. Cheers, Ben.