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.

[FAQ] AM62x: How to check and configure eMMC flash RST_N signal to support WARM_RESET from eMMC booting on AM62x-SK E2

eMMC flash and boot work as expected on AM62x-SK E2 board from Power-On-Reset (POR), but an issue as listed below is observed on AM62x-SK E2.
The Issue observed
After successful eMMC boot from cold POR, WARM RESET options as listed below doesn’t re-boot the board from eMMC booting
• Issue “reset” cmd @u-boot prompt
• Issue “reboot” cmd @kernel
• Push SW3 to issue SOC WARM_RESET

  • Explanations on the issue observed:
    Micron eMMC datasheet [https://www.mouser.com/datasheet/2/671/micron_technology_mict-s-a0006806196-1-1759129.pdf]
    • RST_n: The RST_n signal is used by the host for resetting the device, moving the device to the pre-idle state.
    • By default, the RST_n signal is temporarily disabled in the device.
    • The host must set ECSD register byte 162, bits[1:0] to 0x1 to enable this functionality before the host can use it.

    How to check eMMC RST_n by reading eMMC ECSD register
    Boot to Linux, and kernel log below shows RST_n is NOT enabled on eMMC ECSD on one AM62x-SK E2 board
    root@am62xx-evm:~# mmc extcsd read /dev/mmcblk0 | grep -i RST
    H/W reset function [RST_N_FUNCTION]: 0x00

    How to enable eMMC RST_n by programming eMMC ECSD register
    The eMMC hardware reset signal RST_n can be permanently enabled by programming eMMC ECSD bits one-time only either @u-boot OR @kernel as listed below
    • @U-boot: => mmc rst-function 0 1
    • @Kernel: mmc hwreset enable /dev/mmcblk0. Note that “/dev/mmcblk0” is an example of the eMMC device mounted in Linux kernel.

    The kernel log below shows eMMC RST_n is enabled, and any WARM_RESET option would work now.
    root@am62xx-evm:~# mmc extcsd read /dev/mmcblk0 | grep -i RST
    H/W reset function [RST_N_FUNCTION]: 0x01