
Anton Vorontsov wrote:
On Fri, May 30, 2008 at 08:00:32PM +0200, Wolfgang Grandegger wrote: [...]
Fix that, but I can still not access the device properly. I'm a bit puzzled because it uses a different algorithm to access the device. While my and the Linux fsl_upm driver uses NAND_ALE, NAND_CLE and friends to manage the access via hwcontrol callback, the fsl_upm driver of U-Boot uses the cmdfunc callback doing different things.
I wonder if your NAND chip is a large page one? Because currently fsl_upm_nand hardcodes OOB stuff (bad thing, but with old mtd subsystem I didn't find better way ;-).
On my TQM8548 there is a Micron MT29F8G08FABWP, page size 2048 + 64 bytes, block size 128K + 4K bytes.
As for u-boot and linux doing different things... with this patch u-boot and linux are identical:
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot/u-boot-nand-flash.git;a=commi...
This is in U-Boot's mtd-2.6.22.1 branch though. :-/ Your approach with hwctl seem to be more universal (for old mtd subsystem), since it doesn't duplicate MTD cmdfunc, thus should work for all NAND chips...
A closer look to the code confirms that.
Could you prepare a patch that replacing fsl_upm_nand.c's current logic with yours (that should work for your NAND chip), and I'll test it on MPC8360E-RDK?
The attached preliminary patch works for me. Compared to my specific driver, it saves start_pattern and end_pattern calls :-). It now also supports a bus width of 8, 16 and 32 bits and width is now in bits like in the Linux driver. I'm going to prepare a proper patch series beginning of next week.
Wolfgang.