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.

Linux/AM3352: GPMC_AD[15:8] behavior in 8-bit NAND boot

Part Number: AM3352

Tool/software: Linux

We have a AM3352 with a NAND SLC 8 bit in GMPC0 which we are able to boot from.

Sysboot is 0100000000010011 for NAND, NANDI2C, MMC0, UART0. When booting from NAND the GPMC AD8 to 15 have data with 3.4kHz when accesing to NAND from the bootloader. The SYSBOOT 8 bit is low so 8 bit NAND Flash is selected. The system boots without problems, but he have this strange behaviour while the bootloader is running. As soon as the Linux kernel is loaded into RAM and starts booting this lines are left to their normal operation and not part of the GPMC any more.

If we use Sysboot 0100000000010111 for MMC0, SPI0, UART0, USB0 to boot from the microSD, with the same bootloader, we access to the NAND flash and only lines GPMC0-7 are used, so we assume the bootloader configuration of the Bootloader is correct.

The configuration for NAND pins is:

    {OFFSET(gpmc_ad0), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD0 */
    {OFFSET(gpmc_ad1), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD1 */
    {OFFSET(gpmc_ad2), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD2 */
    {OFFSET(gpmc_ad3), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD3 */
    {OFFSET(gpmc_ad4), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD4 */
    {OFFSET(gpmc_ad5), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD5 */
    {OFFSET(gpmc_ad6), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD6 */
    {OFFSET(gpmc_ad7), (MODE(0) | PULLUP_EN | RXACTIVE)},    /* NAND AD7 */
    {OFFSET(gpmc_wait0), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* NAND WAIT */
    {OFFSET(gpmc_wpn), (MODE(7) | PULLUP_EN | RXACTIVE)},    /* NAND_WPN */
    {OFFSET(gpmc_csn0), (MODE(0) | PULLUDEN)},    /* NAND_CS0 */
    {OFFSET(gpmc_advn_ale), (MODE(0) | PULLUDEN)}, /* NAND_ADV_ALE */
    {OFFSET(gpmc_oen_ren), (MODE(0) | PULLUDEN)},    /* NAND_OE */
    {OFFSET(gpmc_wen), (MODE(0) | PULLUDEN)},    /* NAND_WEN */
    {OFFSET(gpmc_be0n_cle), (MODE(0) | PULLUDEN)},    /* NAND_BE_CLE */

and we check that  GPMC_CONFIG1_0 Register (adrress 0x50000060) has the right value 0x800 (DEVICETYPE: NAND, DEVICESIZE: 8-bit)

As conclusion same bootloader booting from microsd works as expected, but booting from NAND shows this strange behaviour (using AD8 to AD15)

Appart from this issue the system is running OK. Why is the micro using GPMC-AD8 to GPMC-AD15?, how can we avoid that?

BR