[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