This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP-L138 EVM U-Boot "No NAND Device found !!"

Other Parts Discussed in Thread: OMAP-L138, OMAPL138

Hello,

I'm trying to operate the NAND flash of the UI board in the Logic PD OMAP-L138 development kit.

I've installed all the required software following the OMAPL138 Software Developpers Guide.

I've re-buid the U-Boot following procedure given in

http://processors.wiki.ti.com/index.php/GSG:_Building_Software_Components_for_OMAP-L1/AM1x#Rebuilding_U-Boot

and modifying the da850evm.h config file with

#undef CONFIG_USE_SPI_FLASH

#undef CONFIG_SYS_USE_NOR

#define CONFIG_USE_NAND

The original u-boot.bin didn't have the nand commands. Now, the new compiled one have the nand commands.

But it doesn't see the NAND flash.

At boot, U-Boot says :

No NAND Device found !!!

and nand info return nothing.

I had tried the Nand test program given in the CCS4 environment, loaded thanks to the USB cable.

And this test passed OK.

Is there something to do on the UI or EVM boards to enable the flash ?

Did I missed some procedure ?

Thanks.

Gilbert Brisset.

  • Hello,

    I have made further investigations.First I had retested with the CCSV4 test program.

    It succeeds and validate the following :

    NAND base adress is 0x6200000 so we can conclude that the flash  device is connected on CS3.

    The 5 device IDs bytes are correctly read : 2C DC 90 95 56.

    It matches with the actual device : Micron MT29F4G08ABADA

    Now on the u-boot side :

    in the da850evm.h file I have :

    CONFIG_SYS_NAND_CS       3

    CONFIG_SYS_NAND_BASE     DAVINCI_ASYNC_EMIF_DATA_CE3_BASE that expands to 0x6200000

    I have put some traces in the u-boot code that show that :

    u-boot send the FF (Reset) then 90 (READID) commands to the 0x62000000 adress.

    Then reading the results (the first two IDs bytes) gives 00 00.

    No more idea.

    Can someone helps ?

    Thanks.

    Gilbert Brisset.

  • Hi Gilbert,

    May be it is related to the way the NAND is prepared. For JFFS2 it seems that the NAND need to be "formatted" in a given way. The below wiki page is for the Mity board but most of it should apply to the LogicPD EVM too:
    http://support.criticallink.com/redmine/projects/arm9-platforms/wiki/Linux_Root_File_System

    Hope it helps.

    Anthony

  • Hi Anthony,

    Thank you for answering.

    I had checked at the URL that you mention.

    They explain how to build a JFFS2 rootfs file.

    Then they explain how to write it in the Nand flash.

    The commands are :

    u-Boot> mw.b 0xC2000000 0xFF 0x06000000
    u-Boot> tftp 0xC2000000  myserver:/path/to/root_filesystem.jffs2
    u-Boot> nand erase 0 0x8000000
    u-Boot> nand write.jffs2 C2000000  0 0x<rounded_filesize>

    My problem is that the U-Boot binary provided in the Texas Instruments DVSDK doesn't handle the U-Boot nand commands.

    So I have to rebuild U-Boot after modifying the da850evm.h file to enable the Nand Flash device and the nand commands.

    After doing that and flashing the new U-Boot in the SPI Nor Flash, U-Boot provides the Nand flash commands but doesn't see the Nand Flash device.

    The U-Boot command nand info doesn't return anything.

    The EVM board runs perfectly with Linux when Linux (lernel uImage and rootfs) is installed on the MMC card.

    I think that it is a U-Boot issue.

    But I have no more ideas to make progress.

    Gilbert.

  • Hi all,

    Great news,

    A patch has been posted somewhere by a TI guy (<prabhakar.lad <at> ti.com>) that allows me to make great progress.

    Here is the patch URL : http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/132681.

    I had applied this patch :

    diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c
    index 62b9098..2c4d2c4 100644
    --- a/board/davinci/da8xxevm/da850evm.c
    +++ b/board/davinci/da8xxevm/da850evm.c
    @@ -344,11 +344,11 @@ int board_init(void)
    * NAND CS setup - cycle counts based on da850evm NAND timings in the
    * Linux kernel @ 25MHz EMIFA
    */
    - writel((DAVINCI_ABCR_WSETUP(0) |
    - DAVINCI_ABCR_WSTROBE(1) |
    - DAVINCI_ABCR_WHOLD(0) |
    - DAVINCI_ABCR_RSETUP(0) |
    - DAVINCI_ABCR_RSTROBE(1) |
    + writel((DAVINCI_ABCR_WSETUP(2) |
    + DAVINCI_ABCR_WSTROBE(2) |
    + DAVINCI_ABCR_WHOLD(1) |
    + DAVINCI_ABCR_RSETUP(1) |
    + DAVINCI_ABCR_RSTROBE(4) |
    DAVINCI_ABCR_RHOLD(0) |
    DAVINCI_ABCR_TA(1) |
    DAVINCI_ABCR_ASIZE_8BIT),

    Now U-Boot can see the nand flash.

    I had been able to flash a kernel image and a rootfs image in the nand flash and then boot the kernel.

    Now I have a kernel panic :

    Kernel panic - not syncing: Out of memory and no killable processes...

    I'm trying now to solve that.

     

    The strange part is that the patch has been posted this last friday.

    Was I the only guy of the planet trying to use the OMAP-L138 EVM/UI board Nand Flash device ?

    Gilbert.