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.

AM5728: Custom board warm boot fails

Part Number: AM5728

Our issue is trying to bring the system back up after issuing a "reboot" command from linux. The issue is only present on our board when ROM tries to load SPL from eMMC. ROM loading SPL from sdcard works as expected.

We have a custom board based heavily on the beagle X15 design.  We can successfully perform a cold power on boot from the eMMC on our board. We can also boot from the sd card.  sdcard and emmc on are on same AM57x mmc ports as in the X15 design.  sysboot resistors are properly configured to the best of our knowledge to match the X15.

Both the x15 rev A2 and our board are running silicon version 2.0. The SDK we based our code from I believe is the 2.0 release from summer of 2016.

We are running the 4.4 kernel derived with only very minor modification from the SDK kernel.  No kernel modifications have been made to the mmc sections of the kernel.

Our mmc2 device tree sections are the same to best of our understanding as those from the SDK for the x15.

  • When executing SPL and u-boot from the sd card:
    • When we issue a reboot command from software the kernel goes down for reboot and issues a rstout pulse.
    • The system goes down for reboot and immediatly comes back up. reading SPL from the sd card.
  • When executing from the eMMC
    • the system goes down and issues the same RSTOUT pulse as in the SD card case.
    • After 11 milliseconds the ROM code tries to fetch something from eMMC, I see the MMC_CLK lines activate.
    • After only a few mmc clocks the mmc clock and all signals from the AM572x to the eMMC go to idle state.
    • After 3 minutes in this state the reset pulse happens again and the system starts up normally running SPL, u-boot and kernel from the eMMC.
    • we are trying to boot from a FAT partition in the main area of the eMMC, we are not using the boot sections of the eMMC.

Below is a scope image of the failure condition.

In addition to the signals below I have confirmed that 3.3V power to the eMMC remains stable and at 3.3V all the way through the reset event.

Yellow is the mmc2_clk

light blue is the input to the PMIC pin NRESWARM, driven by RSTOUTn

magenta is the PORZ input signal to the AM572x.

What can we do to eliminate the 3 minute pause and get our system to reboot directly from eMMC without delay?

We will be deploying testing units in a few weeks and must resolve this issue very quickly.

Thank you,

Dexter

  • Do you have SYSBOOT15 pulled high?
    Do you have pullups on the eMMC pins (RST#, CLK, CMD, DATx)?
    Is your system reset (i.e. the one that drives PORz) connected to the eMMC reset? If so, have you written the one-time programmable bit inside the eMMC to permanently enable that pin? It is disabled by default.
  • This sounds so familiar to another issue wherein we had a customer that had the BOOTMODE pins messed up- the 3min of 'idle' suggests its trying to boot from some other device (like SPI, USB?) and it's not finding it; then when it bails out now the BOOTMODE pins are in the right state and you see success.  Please check those pins as per Brad's suggestion above.

    -Dave

  • Setting the eMMC rst function bit appears to have resolved the issue.

    For future reference to anyone else...

    u-boot has a command line function to do this mmc rst-function <dev> <value> 

    Dexter