A few questions about diskonchip

Torbjörn Jansson torbjorn.jansson at mbox200.swipnet.se
Sun Jan 23 05:37:15 EST 2005


I've been trying to figure out how the old doc2001plus module works, i was
hoping i woud be able to make the new diskonchip module work with my
millenium plus 32mb.
If i have understood this correctly the millenium plus 16 is supported by
diskonchip.c module and that one is prety close to the 32 mb version.

I can get the old doc2001plus module to load and detect the chip (2
modifications requierd), but when i cat from /dev/mtdblock0 the resulting
data doesn't match a dump of the rom i have on file.
For example, one string in /dev/mtdblock reads "Cyrht" but it shoud be
"Copyright" so it looks like the module is reading 32bits and throwing away
16 or something like that.
That woud also explain why the media header is BND instead of BNAND
I haven't figured out how that can happend, maybe the old module is just
broken.

Another thing i haven't figured out yet is this chip/floor thing.
What counts as a floor? Is that for the 64Mb version of the millenium plus,
so it has 2 floors with one chip on each?
And the 32mb version have one floor and one chip?

I can see in the other init functions there is some chip counting going on,
but not in doc2001plus_init() maybe that is only needed for the 64 mb
version?

The 32mb version have some kind of interleaving, right? And that's the main
difference between the 16 and 32 mb version?
But how is it done?
Maybe it have something to do with the comment above DoC_GetDataOffset() in
doc2001plus.c ?


I don't know if i'm able to fix this, i have only the docs that i can
download from the web, my guess is that there is more technical docs that
describe all this.





More information about the linux-mtd mailing list