External Bus on 440GP

Madhu Saravana Sibi Govindan ssshayagriva at gmail.com
Sun Oct 29 18:59:14 EST 2006


Hello all,

I have a question about linux on 440gp and a custom board.

We use the Universal boot-loader, U-boot, to initialize the board and
then, boot linux. The flash chip on the board is 4 MB in size.

I'm trying to access the flash chip (attached to the External Bus
Interface) in a custom device driver running in linux.  The behavior
I'm seeing is this: when the EBC0_B0CR (Bank Configuration register 0)
is set to 0xffc5800 (Base address: 0xffc, size = 4 MB, usage: RW and
width = 8 bits) and when do an ioremap64 to map the physical space of
the flash chip into the virtual address, all accesses to the flash chip
are successful.  Please note that the virtual address returned by
ioremap64 is different from
0xffc00000.

But, when I do an ioremap first and use the virtual address (the most
significant 12  bits) to program the EBC0_B0CR, all accesses to the
flash chip result in a timeout error on the bus.
The IBM 440GP documentation clearly says that the bits in the EBC0_B0CR
is used to enable the correct chip select signal. Why am I seeing the
above behavior?

I'm actually trying to access a custom chip on the EBI bus using the
same method. I got the same error, so I tried the flash chip....

I'd be thankful if someone could point me to what might be going wrong.
I'd be glad to provide as much information as necessary.

Thanks in advance,
G.Sibi

PS: My apologies if this question doesn't belong here....



More information about the Linuxppc-embedded mailing list