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.

TDA4VM: TDA4VM

Part Number: TDA4VM


Hi experts,

Currently, i am facing the error with the SD card. I guess the TDA4VM's SD card defaut working on 1.8 and it's ok for my SD card (SanDisk 16G). But if i setting the voltage to 3.3V, then i will get the "-110" error.

Could you please help me to solve this issue? 

The serial log is shown below:

NOTICE: BL31: v2.2(release):ti2019.05-rc1
NOTICE: BL31: Built : 09:42:32, Mar 6 2020
I/TC: 
I/TC: OP-TEE version: ti2019.05-rc1-dev (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 Fri Mar 6 10:00:07 UTC 2020 aarch64
I/TC: Initialized

U-Boot SPL 2019.01-gecd86d0c13 (Apr 21 2020 - 07:11:37 +0000)
Detected: J7X-BASE-CPB rev E3
Detected: J7X-VSC8514-ETH rev E2
Trying to boot from MMC2
spl: mmc init failed with error: -110
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

  • Hi,

    Could you explain more on "But if i setting the voltage to 3.3V"?
    Did you update u-boot dts and the board modification?

    TI EVM uses a regulator with range of 1.8v to 3.3v. Based on the speed more voltage is selected.

    &main_sdhci1 {
            /* SD/MMC */
            pinctrl-names = "default";
            pinctrl-0 = <&main_mmc1_pins_default>;
            ti,driver-strength-ohm = <50>;
            vmmc-supply = <&vdd_mmc1>;
            vqmmc-supply = <&vdd_sd_dv_alt>;
    };

            vdd_sd_dv_alt: gpio-regulator-TLV71033 {
                    compatible = "regulator-gpio";
                    pinctrl-names = "default";
                    pinctrl-0 = <&vdd_sd_dv_alt_pins_default>;
                    regulator-name = "tlv71033";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    u-boot,dm-spl;
                    vin-supply = <&vsys_5v0>;
                    gpios = <&main_gpio0 117 GPIO_ACTIVE_HIGH>;
                    states = <1800000 0x0
                              3300000 0x1>;
            };

    Regards,
    Vishal

  • Hi Vishal,

    Thank you for your help. After modified  dts of sdhci and disable some feature, i can read /write SD card working on 3.3v now. The modified part is shown below:

    376 main_sdhci1: sdhci@4fb0000 {
    377 compatible = "ti,j721e-sdhci-4bit";
    378 reg = <0x0 0x04fb0000 0x0 0x1000>, <0x0 0x4fb8000 0x0 0x400>;
    379 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
    380 power-domains = <&k3_pds 92 TI_SCI_PD_EXCLUSIVE>;
    381 clock-names = "clk_xin", "clk_ahb";
    382 clocks = <&k3_clks 92 0>, <&k3_clks 92 5>;
    383 assigned-clocks = <&k3_clks 92 0>;
    384 assigned-clock-parents = <&k3_clks 92 1>;
    385 ti,otap-del-sel-legacy = <0x0>;
    386 /*
    387 ti,otap-del-sel-sd-hs = <0xf>;
    388 ti,otap-del-sel-sdr12 = <0xf>;
    389 ti,otap-del-sel-sdr25 = <0xf>;
    390 ti,otap-del-sel-sdr50 = <0xc>;
    391 ti,otap-del-sel-sdr104 = <0x5>;
    392 ti,otap-del-sel-ddr50 = <0xc>;
    393 sdhci-caps-mask = <0x2 0x0>;
    394 */
    395 ti,trm-icp = <0x8>;
    396
    397 dma-coherent;}

    I don't know whether it is appropriate to modify like this. By the way, does TI have a recommended SD Card type?

    Thanks,

    Hutian

  • Hi,

    These changes are not the right way to disable high speed modes. Updating sdhci-caps-mask property in dts is better way to disable high speed modes.
    Could you try just doing below change to sdhci-caps-mask in dts and test?

    sdhci-caps-mask = <0x8000000F 0x0>;

    There is no recommendation on SD card type, all SD card are expected to work.

    Regards,
    Vishal

  • Hi Vishal,

    Follow your instruction, it works on my side.

    Many thanks,

    Hutian