[U-Boot-Users] [OT] Using MTD to manipulate CFI flash on PCI boards?

David Hawkins
2008-03-23T00:06:20Z

Hi,

Sorry, for the slightly off-topic post, but I figured
someone else might have faced a similar issue.

I'm in the process of bringing up an MPC8349E PowerPC
based board. The board is configured as a compact PCI
peripheral board. The board will boot U-Boot off
on-board Spansion S29GL-N Flash, and U-Boot will then
boot Linux. The cPCI interface is used to communicate
with an x86 host CPU board.

The final system will have 15 boards per cPCI crate, and
there will be 8 crates. I can use a BDI2000 to program
the Flash on a board, but this doesn't scale so well
when wanting to perform Flash updates on crates full
of boards using the x86 host CPU.

Basically I'll have a setup where an x86 host can see
the Flash on the PowerPC boards via PCI memory regions.
In the case of a new board with a blank flash, the
PowerPC core will be held in reset, so without using
JTAG/COP, only the x86 host CPU can program the flash.

As far as flash manipulation from a PowerPC on a single
board goes, I figured that once I have U-Boot and Linux
working, I would just use the MTD subsystem.

However, its less clear to me whether I can use MTD
on the x86 Linux host CPU, to access the flash devices
on multiple boards via the PCI bus.

The documentation at:

http://www.linux-mtd.infradead.org/

wasn't much help, so I'll go and look at the code.

So while I go read some more, I figured I'd ask if
anyone else has used the MTD system in a similar way
for programming their flash.

Recommendations anyone?

Thanks!

Regards,
Dave.