[U-Boot-Users] pagetable / BDI2000 question

This is not specifically a u-boot question, but involves some things that knowledgeable u-boot person may have insight into.
We are debugging a Linux kernel that has been booted via U-boot on our own custom PowerPC board-- 750GX processor. Early in the Linux kernel initialization our system bridge chip (Marvell 64360 / DiscoveryII) is remapped to a new virtual address (via the ioremap() kernel call). At that point the new virtual address returns bad data.
Physical address is: 0xF1000000 Original virtual address: 0xF1000000 Remapped virtual address: 0xEF5F0000
After the remapping occurs the following is true: -programmatic/kernel access to virtual address 0xF1000000 returns good data -programmatic/kernel access to new virtual address 0xEF5F0000 returns bad data -access via the BDI2000 to address 0xF1000000 returns good data -access via the BDI2000 to address 0xEF5F0000 returns _good data_
THIS MAKES NO SENSE. The fact that the BDI2000 can read the data proves that the page table entry is good.
Here is the key question: How is it possible that the same location in memory accessed via the BDI2000 and accessed programmatically return DIFFERENT values.
This remapped location is not supposed to be cached since it is IO memory.
We have the page table / mmu option turned on the BDI config. Also, the Linux kernel has the BDI2000 config option enabled.
Stuart

In message loom.20041002T163523-199@post.gmane.org you wrote:
This is not specifically a u-boot question, but involves some things that knowledgeable u-boot person may have insight into.
Actually this is 100% off topic here.
initialization our system bridge chip (Marvell 64360 / DiscoveryII) is remapped to a new virtual address (via the ioremap() kernel call). At that point the new virtual address returns bad data.
Physical address is: 0xF1000000 Original virtual address: 0xF1000000 Remapped virtual address: 0xEF5F0000
0xEF5F0000 is obviously a bogus address. How exactly did you call ioremap() ?
And why do you have (and need) an "original virtual address" at all?
Here is the key question: How is it possible that the same location in memory accessed via the BDI2000 and accessed programmatically return DIFFERENT values.
The BDI2000 (through the telnet interface) uses physical addresses.
Best regards,
Wolfgang Denk
participants (2)
-
Stuart Yoder
-
Wolfgang Denk