Skip to contentSkip to conversation

loadlin boot from MTD-partitioned NAND?

DISCUSSION David L 1 participant 1 message Jun 22, 2005 1 message not in the archive Memory technology devices (MTD)

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

David L

author
#1 lore raw
Quoted 3 lines

Hi David,
Is this an Intel board rather than ARM? I'm currently working through this process for the ARMCore board...

Hi Paul,

It's an x86 (Geode) board from Compulab. Their proprietary driver is able to mount DOS partitions and write to them and we can also read/write to/from the DOS partitions from DOS. I'd like to maintain this functionality but I'd like to use non-proprietary drivers. I think this means I have to add support for our board to MTD, but I don't know if it'll work for me when I'm done.

Quoted 2 lines

What are the NAND chip details?

Compulab's driver prints out this info:
Maker code = EC, device code = 75, ID_data = BD

Their tech support gave me this info:

"Here is the info you need for the MTD:

NAND flash is memory mapped at 0x000C9000.
NAND flash ALE connected to Geode's GPWIO1
NAND flash CLE connected to Geode's GPWIO2

GPWIO are controlled via IO port 0x9C16. Bit 1 - GPWIO1, bit 2 - GPWIO2.
** Accessing this port is relatively slow, so caching current value in memory will improve performance.

Chipselect is GPIO20_DOCCS.

Sometimes (during read operation) chipselect must be forced active even after the access cycle finished. It is achieved by changing the chipselect to GPIO mode and forcing it low. See FlashChipSelect() in NandSys.c for implementation details.

There is some preliminary hardware setup that must be performed before accessing the NAND. See function FlashInitial() in NandSys.c

Ready/busy signal of the NAND flash chip is not connected. Therefore each read operation must include forced delay of ~15-20uSec between issuing read command and reading the data. In all other situation (write/erase) status register of the NAND flash can be read.

** I wrote some speed-optimized read/write functions, see NandSys.c, see FlashBlockRead, FlashBlockWrite. They work twice faster than regular byte-by-byte reads/writes.

This information + NandSys.c should be enough to bring up the MTD + JFFS2."

Cheers...

David

Quoted 24 lines

Paul Schulz

Quoted 3 lines · David L

Hi,

I'm using a Nand flash driver on a Compulab board with a proprietary

driver

Quoted 1 line

provided by Compulab. I'd like to switch to a non-proprietary driver

like

Quoted 1 line

MTD for a few reasons. But having read through the MTD documentation,

I'm

Quoted 2 lines

not sure we can maintain our current boot strategy if we migrate to MTD. Right now, we boot to DOS that comes with the board and then use loadlin

to

Quoted 1 line

boot a kernel/initial ramdisk that reside on a partition of the Nand

flash

Quoted 1 line

that has a DOS filesystem on it. On the rare event that we need to

change

Quoted 1 line

the kernel or initial ramdisk, we mount the DOS filesystem from Linux

and

Quoted 3 lines

change the file.

Is there a way to maintain this strategy if we use MTD? I saw in the

Quoted 9 lines

NAND

Quoted 1 line

API document that only jffs2 and YAFFS filesystems can be used with MTD.

Is

Quoted 1 line

there any way around this? (I don't care how efficient it is). And even

if

Quoted 2 lines

there is a workaround that would allow us to modify files in a DOS filesystem from Linux, will MTD partitions be visible from DOS so that

we

Quoted 1 line

can boot in the first place?

_________________________________________________________________
Don�t just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/