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.

AM3352 boot loop

Other Parts Discussed in Thread: AM3352

Hi.

Trying to get a AM3352 custom board to boot.

Without having changed anything in the code regarding the pinmux, I took the default MLO, u-boot etc. from the SDK and programmed an SD-card.

The hw SYSBOOT sequence is NAND, NANDI2C, MMC0, UART0.

I haven't any terminal connected to UART0, but with an oscilloscope, I can see that the board is driving the SD-card MMC0 like every 3:d second, and there is also some activity on UART0 (TxD). The activity on UART0 seems to be more frequent that every 3:d second... (?)

Q1: Does this sound "normal"?

Q2: If this sounds "normal", why isn't AM3352 reading more of the SD-card data and continuing the boot process (giving longer activity on MMC0), even though the rest of the pins are not correct setup?

Q3: According to the TRM, there should be some dead loop after that the boot device list is finished. Is that what I am seeing perhaps, and after that the watchdog kicks in and everything starts all over?

Q4: If I should compile the default SDK code but with make am335x_evm_uart2 instead, in order to get some activity on UART2, should I expect to see the above behavior on UART2, or is this perhaps to early in the boot sequence. I recon I have only seen the ROM boot yet?

Thanks

  • Hi,

    By default UART0 is used for the serial console. When the system isn't able to boot from any of the sources in the sequence NAND->NANDI2C->MMC0->UART0, it tries to boot from UART0 and starts sending "C" character continuously to the serial console. Perhaps this is the activity you are seeing?

    If you compile the U-Boot with the "am335x_evm_uart2" target, you will have UART2 used as a serial console, but if your boot sequence remains NAND->NANDI2C->MMC0->UART0, then the board will try to boot from UART0 if everything else fails.

    Best regards,
    Miroslav

  • Ok thanks.

    But how far has the boot got when I am seeing these attempts on MMC0 and UART0? I mean, if I compile u-boot etc. for UART2, will I really see UART2 attempts in the boot sequence? Isn't the MMC0 -> NAND -> NANDI2C -> UART0 in the ROM? And after MLO/SPL, u-boot has been able to load from SD (MMC0), then I will see activity on UART2?

  • Hi Peter,

    Peter T-Innova said:
    But how far has the boot got when I am seeing these attempts on MMC0 and UART0?

    You will need to use a serial terminal in order to be able to see where exactly the boot sequence has reached.

    Peter T-Innova said:
    I mean, if I compile u-boot etc. for UART2, will I really see UART2 attempts in the boot sequence? Isn't the MMC0 -> NAND -> NANDI2C -> UART0 in the ROM?

    If you compile U-Boot/MLO with the "am335x_emv_uart2" as target, then the serial console will be output to UART2 instead ot UART0, BUT the sysboot configuration will not change - it will remain "MMC0 -> NAND -> NANDI2C -> UART0" as shown in the TRM. This means that if/when the boot sequence reaches UART0, the continuous stream of "C" characters will still be output to UART0, not UART2, as the ROM bootloader will still expect UART0 to be used as a boot method.

    Best regards,
    Miroslav