Can write to flash with PPC405GP but not PPC405GPr.

We have a MIP405-1 and a MIP405-3 from MPL ( When we try to format an Am29F040B flash chip in the Multi-Purpose Socket, it works just fine on the MIP405-1 (which has a 266 MHz PPC405GP) but fails on the MIP405-3 (which has a 400 MHz PPC405GPr).

When we try to format on the PPC405GPr we get this:

flashctl -p /dev/fs0p0 -e -f -m

(devf t3::amd_v2wordwrite:128) program verify error
between 0x8012fff2 and 0x8012fff8
memory = 0x8012fff7, offset = 0x2fff2, left = 0, size = 6, bus_width = 1
flashctl: format failed

We tried this in two MIP405-3 cards, with the same result.

If we put a preformatted and initialized Am29F040B in the Multi-Purpose Socket of the MIP405-3 it works fine until we try to write to it, at which point it becomes corrupted.

We’re running QNX 6.3.0SP2.

Any ideas?

Seems likely that there’s a timing bug in the driver. If you want it fixed, you probably either need a contract with QNX, or get the source and hire a knowledgable programmer.

But before you go too far, check with QNX as to whether there is an update, if you haven’t already.

There is also a really old topic on this about a similar issue.

Note the final couple of responses about the ‘Program Verify Error’ and the non-support for buffered writes. That’s for a different hardware config but it might be the same issue with yours.

The persons here show some custom code they used to manually write to every bit on their flash to test things. Maybe you can do the same?


The reason I think it isn’t the same issue is that the driver works on a 266 MHz PPC405GP but not on a 400 MHz PPC405GPr on an otherwise identical board. If there were a fundamental flaw in the way we were communicating with the memory chip, e.g. we were trying to use a nonexistent feature, it wouldn’t work in either case.

Actually it’s possible you are attempting to use a non-existant feature (buffered writes). Perhaps the 266 MHz board can’t write faster than the memory chip can handle but the 400 MHz board does.

When you tested putting in preformatted Am29F040B chip and did your writes, how much data were you writing? If you just wrote a few bytes for your test (Ie ‘hello world’ into a file and exited your test program), does that fail too?

I wonder if there is any BIOS setting you could change that might help.