On Tuesday 28 April 2009, s-paul...@ti.com wrote:
> The CLE and ALE for DaVinci DM644x is not the same as DM646x. This patch
> adds 2 CONFIG_ options to the config.h header files to all the DM6446 based
> boards. These values are then used by the driver.

I had been thinking that the davinci_nand driver should
probably change to let board_nand_init() really become a
board-specific function...

It would call a driver routine to init the callback functions
and set up private data so that for example the 2GByte NAND
could be properly treated as a single device with two chips,
instead of two separate devices.  (As Linux does; I'm just
assuming that mechanism works right in U-Boot.)

Other private data could include CLE/ALE masks, if needed.
I may well have missed something, but I thought that the
ROM on all chips used the same mask values when booting
from NAND flash... but that non-boot chips might end up
using different values, if they wanted.  (Burst memory
access would work better if toggling low address bits
didn't affect ALE/CLE, etc.)


Alternatively ... how about just letting those values be
defined in the headers if the boot-from-NAND defaults
shouldn't be used?

That is, the u-boot davinci_nand.c code could

        #ifndef CONFIG_SYS_DAVINCI_NAND_CLE
        ... #define it to the default 0x10 ...
        #endif

I think the convention for these things (toplevel README) is
that since they're hardware-specific, CONFIG_SYS_* is the
prefix not CONFIG_* for those symbols.


Related: MASK_ALE should not be 0x0a by default, but 0x08;
right?  That's what newer docs say; I think the old stuff
was just a bug.  In Linux, 0x08 works just fine.

And for that matter, include/asm-arm/arch-davinci/nand_defs.h
is starting to look almost un-necessary after those cleanup
patches I sent.  :)


> This has been tested on the 
> DM644x, DM355, DM357 and DM365. Support for the latter 3 will be
> added soon. 

I'm glad to see TI's latest U-Boot work becoming public...

However, this won't apply on top of the cleanup patches I just
sent, which remove the NAND_CE0{ALE,CLE,DATA} symbols in favor
of the relevant nand_chip pointer.  As you know, that change
is important for support of the EVM boards which include the
socketed 2 GByte NAND chips, with multiple chip select lines.

- Dave


_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to