questions about at91rm9200, intel 28f, and non-linear access

Joe Pruett joey at clean.q7.com
Wed May 18 16:47:13 EDT 2005


we're building a board around the atmel at91rm9200 chip.  we also are
using an intel 256 mbit flash.  we have just discovered that the atmel
chip has a lovely bug such that address line 24 isn't correctly wired to
the outside world, so you can't address things above 16mb in each chip
select area.  but, we can manually control a24 via the pio controller on
the chip.

so, i'm thinking we can use the non-linear hooks to drive a24 high/low as 
needed based on the address being accessed.  we add some overhead by 
needing not being able to just access the flash directly, but we also 
have 
64mb of dram, so i think we're ok there.

has anyone else tried to solve this kind of problem?  am i just looking 
for trouble?

if that all seems reasonable, then the next step is bootstrapping brand 
new boards.  we are using umon as the first level boot and without major 
work it can't see beyond the 16mb boundary.  so i'm thinking of doing the 
following:

allocate 4 or 8mb to umon and its tfs filesystem area.  upload the initial
image via jtag magic.  put a linux kernel and a small cramfs file system
in there.  boot into that in single user mode and use the modified mtd
drivers talked about above to erase and write a jffs2 image (retrieved via
ethernet) into the remaining 24/28 meg of flash.  the cramfs area would
have code to pivot to the jffs2 image for normal operations.

it looks like the mtdblock interface handles erasing for me, so i should 
just be able to dd a jffs2 image directly to /dev/mtd....  am i missing 
anything horribly obvious?  any feedback on any part of this scheme would 
be greatly appreciated.  if anyone from atmel is listening, fix your chip!





More information about the linux-mtd mailing list