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.

AM5749: Intermittant eMMC boot failure

Part Number: AM5749

Hi, 

I have a custom board based on AM5749 Sitara processor. Everything works fine when booting from SD card. The problem occurs when eMMC is used as boot device (when SD card is not present). Sometimes the boot fails and I get this log on serial:

U-Boot SPL 2022.01-g1d65d372b3 (Jan 10 2023 - 14:25:21 +0000)
DRA762-GP ES1.0 ABZ package
Trying to boot from MMC2_2
no pinctrl state for default mode
Card did not respond to voltage select! : -110
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

Does anyone have some ideas ?

Thanks

David

  • Hi David 

    Card did not respond to voltage select! : -110

    its seems you card is not responding sometime.

    Can you provide more information like

    1.which sdk you are using

    2.Can you share the pass and fail condition logs ?

    3.Which emmc part no you are using ?

    4.Can you probe the signal and see if you are seeing any unusual behaviour in failing case 

    5.Help share the schematic so that we can get it reviewed from the hw engineer

    6.Help share the register dumps as well in pass and fail case. 

    Regards
    Diwakar

  • Hi Diwakar, thanks for your reply.

    So I am not using an sdk but a linux distribution built with Yocto which integrates meta-ti on dunfell branch (cicd.2022.08.30.19.06.01) 

    The eMMC that is currently used on the board is MTFC32GAPALGT-AIT (below you can find the schematics). 

    /resized-image/__size/952x930/__key/communityserver-discussions-components-files/791/3833.emmc.png

    Here is how it is binded in the device tree:

    &mmc2 {
        status = "okay";
        vmmc-supply = <&v1_8_emmc>;
        bus-width = <8>;
        ti,non-removable;
    };
    &mmc2 {
        pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
        pinctrl-0 = <&mmc2_pins_default>;
        pinctrl-1 = <&mmc2_pins_default>;
        pinctrl-2 = <&mmc2_pins_default>;
        pinctrl-3 = <&mmc2_pins_hs200 &mmc2_iodelay_hs200_conf>;
    };

    Here is the pass log:

    U-Boot SPL 2022.01-gdb7efd89db (Feb 13 2023 - 09:12:07 +0000)
    DRA762-GP ES1.0 ABZ package
    Trying to boot from MMC2_2
    no pinctrl state for default mode
    Loading Environment from FAT... no pinctrl state for default mode
    MMC: no card present
    Loading Environment from MMC... *** Warning - bad CRC, using default environment

     

     

    U-Boot 2022.01-gdb7efd89db (Feb 13 2023 - 09:12:07 +0000)

     

    CPU  : DRA762-GP ES1.0 ABZ package
    Model: SKF Controller Board rev2a
    Board: SKF Control Board REV 2a
    DRAM:  4 GiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... MMC: no card present
    Loading Environment from MMC... *** Warning - bad CRC, using default environment

     

    Net:   No ethernet found.
    Hit any key to stop autoboot:  0 
    MMC: no card present
    MMC: no card present
    MMC: no card present
    MMC: no card present
    Trying to boot Linux from eMMC ...
    switch to partitions #0, OK
    mmc1(part 0) is current device
    SD/MMC found on device 1
    5642416 bytes read in 34 ms (158.3 MiB/s)
    ## Loading kernel from FIT Image at 90000000 ...
       Using 'conf-am574x-controllerboard-rev2a.dtb' configuration
       Trying 'kernel-1' kernel subimage
         Description:  Linux kernel
         Type:         Kernel Image
         Compression:  uncompressed
         Data Start:   0x90000120
         Data Size:    5239296 Bytes = 5 MiB
         Architecture: ARM
         OS:           Linux
         Load Address: 0x80008000
         Entry Point:  0x80008000
         Hash algo:    sha256
         Hash value:   c9ec614f41f37b467417a0290f88c1f78e29d25ef5ce37a96494c1b12b9b1a33
       Verifying Hash Integrity ... sha256+ OK
    ## Loading fdt from FIT Image at 90000000 ...
       Using 'conf-am574x-controllerboard-rev2a.dtb' configuration
       Trying 'fdt-am574x-controllerboard-rev2a.dtb' fdt subimage
         Description:  Flattened Device Tree blob
         Type:         Flat Device Tree
         Compression:  uncompressed
         Data Start:   0x90530568
         Data Size:    199946 Bytes = 195.3 KiB
         Architecture: ARM
         Hash algo:    sha256
         Hash value:   5cabe9621d4a352c90abd71b18955dabb4e97cda4f8680e0fbadb9b507a2a297
       Verifying Hash Integrity ... sha256+ OK
       Booting using the fdt blob at 0x90530568
       Loading Kernel Image
       Loading Device Tree to 8ffcc000, end 8ffffd09 ... OK

     

    Starting kernel ...

    Fail log (the one included in my question)

    U-Boot SPL 2022.01-g1d65d372b3 (Jan 10 2023 - 14:25:21 +0000)
    DRA762-GP ES1.0 ABZ package
    Trying to boot from MMC2_2
    no pinctrl state for default mode
    Card did not respond to voltage select! : -110
    spl: mmc init failed with error: -95
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    It is worth noting that when I try to boot from eMMC and it fails I don't have access to u-boot shell.

    I will look further into the signals to  see if anything abnormal appears in case of failure.