
On Fri, 15 Apr 2011 19:34:48 +0200 Stefano Babic sbabic@denx.de wrote:
On 04/13/2011 06:24 PM, Scott Wood wrote:
Hi Scott,
Davinci-specific #defines do not belong in nand_base.c[1]. The controller driver should be able to set "this isn't supported" options just as well as the chip data -- I just don't think it should be limited to this specific one.
surely, but it is not clear to me how. There is no entry for a write_subpage function, as this issue does not happen with other controllers,
I don't see where subpage writes are done at all, actually.
and I do not see a callback for the driver after the nand_scan() function, where I thought the driver could change the options according to its capabilities.
nand_scan() is broken into head and tail functions. In Linux, the driver calls these, and can look at the chip info before tail is called. In U-boot, common code drives this, and the controller driver is not involved -- but it would be good to change this.
For example, fsl_elbc_nand.c sets NAND_NO_READRDY and NAND_NO_AUTOINCR. Before this thread, I didn't realize it they were getting ignored. Things work anyway because the former is an optimization, and the latter is getting forced on after the masking, for some reason -- does autoincr simply not work? Can we remove the code? :-)
Well, the options are simply ignored, I agree about removing them.
I think it can be enabled by the controller driver between head and tail (at least on Linux), though I don't see any drivers that do this as far as a quick grep shows.
-Scott