[U-Boot-Users] pagetable / BDI2000 question
Stuart Yoder
stuart.yoder at conformative.com
Sat Oct 2 16:38:07 CEST 2004
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
More information about the U-Boot
mailing list