DiskOn Chip Millennium Plus 32MB + INFTL

Husam husamsenussi at gmail.com
Thu Jun 8 20:04:37 EDT 2006


I have device with  DiskOnChip Millennium Plus 64M "2x 32M", so I start making 
changes to nand based driver using the old one but I found the following 
problems:

1. The NAND layer use lookup table to set the size of the page, erase block ..  
etc, but this does work will 32/64M because of interleave.
2. When I set bus width to 16 in diskonchip level nand_scan return an error 
because that doesn't match with table.
3. Reading and writing has to be done in 16 bit otherwise you lose data, 
because MDOC+ 32/64M moves the pointer 2 bytes even if you read one byte.
4. I found that read_buff terminate the read each time, and because of that 
nand_read_ecc skip bytes when read across sections.
5. Layout of the data on the page is different form 16M, but I'm not sure if 
this is specific  to INTFL.  


I had look at the changes you guys made recently and I found that some of 
these change would fix some of the above problems but not all of them,.

My question will be would someboday be able to sumbit patch to you guys to fix 
the above problem.



On Thursday 08 June 2006 20:19, David Woodhouse wrote:
> On Thu, 2006-06-08 at 13:03 -0500, Jeff Kalikstein wrote:
> > and the MTD NAND based driver complains that "DiskOnChip Millennium
> > Plus 32MB is not supported, ignoring.".
>
> This is fixable. The 32MiB unit is just the same as the 16MiB unit
> except that it works in 16-bit mode instead of 8-bit mode, and by
> default does some bizarre interleaving of the data.
>
> Just look for 'interleave' in drivers/mtd/devices/doc2001plus.c and see
> how many places there are where we treat the 16MiB and 32MiB units
> differently -- there aren't that many. Getting this to work in the
> NAND-based driver should be relatively simple.




More information about the linux-mtd mailing list