SD Card Not Detected on OSM Board (J6 Connector)

  • Hi Bharath,


    The OSM 8ULP only provides 1v8 Voltage Level for SDIO.
    To Support SD-Cards, the initialisation needs to be 3v3, even on UHS cards.

    You will need a Level Converter especially for SDIO.

    The OSM8ULP-SKIT currently does not provide such converters.
    Only the Armstone8ULP comes with Level conversion for SD-Cards.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Thank you for the information provided.


    Additionally, I would like to request clarification regarding our SDIO setup for the Ezurio Sona TI351 Evaluation Kit.

    We connected the Sona TI351 microSDIO Daughter Board to the J6 SD card connector on the F&S i.MX8ULP Evaluation Board to establish SDIO communication between the Sona TI351 module and the F&S board.



    1.We also observed that the SDIO interface was disabled in the device tree. We changed the status from "disabled" to "okay" and rebuilt the image; however, the SDIO device is still not detected. The following message is reported in the debug console:


    root@fsimx8ulp:~# dmesg | grep -iE "mmc1|sdio"

    mmc1: SDHCI controller on 298e0000.mmc [298e0000.mmc] using ADMA

    mmc1: Failed to initialize a non-removable card


    Current device tree configuration:

    &osm_sdio_a {

    pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";

    pinctrl-0 = <&pinctrl_usdhc1>;

    pinctrl-1 = <&pinctrl_usdhc1>;

    pinctrl-2 = <&pinctrl_usdhc1>;

    pinctrl-3 = <&pinctrl_usdhc1>;

    bus-width = <4>;

    vmmc-supply = <&WCF_AMPERSAND®_sdio_a_pwr>;

    vqmmc-supply = <&WCF_AMPERSAND®_sdio_a_pwr>;

    status = "disabled";

    };




    2.Could you also confirm which connector should be used for the SDIO interface:

    • J6 (SD Card Connector), or
    • J11 (SD_B signals available on the board)?
    • Which USDHC controller (usdhc0/usdhc1/usdhc2) is connected to J6.

    Any guidance on the correct hardware connection and required device tree configuration would be greatly appreciated.

    Thank you for your support.


    Best regards,

    Bharath K R


  • Hi @Bharath,


    usdhc1 is used as SDIO_A and is routed to J6 on BBDSI.

    SD_B is not available


    If the 1v8 levels are suitable for the EVK, you could try increasing the drive strength for the PinCtrls.




    I hope i was able to help :)

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Thank you for the information provided.

    Hi Team,

    As per the BLE Evaluation Kit datasheet, the SDIO interface requires 1.8 V signaling.

    However, on the F&S board, the SDIO supply appears to be configured for 3.3 V by default. We verified the regulator voltage from terminal and observed that the SDIO rail is currently operating at 3.3 V. (i.e for your reference attached snapshot)


    Could you please confirm the following:

    1. Is the SDIO interface on the F&S board intended to operate at 3.3 V by default?
    2. If the BLE Evaluation Kit requires 1.8 V SDIO signaling, what device tree changes are required to switch the SDIO interface from 3.3 V to 1.8 V?
    3. Are there any hardware limitations or board-level modifications required to support 1.8 V SDIO operation?

    We would appreciate your guidance on the necessary DTS configuration changes and any additional requirements.


    Thanks & Regards,

    Bharath K R

  • Hi @Bharath,

    sdio-pwr ist just a enable GPIO of the OSM.
    If your driver checks the voltage of 1v8, then i would recommend to remove following properties:
    https://github.com/FSEmbedded/…x8ulp.dtsi#L518C1-L519C35

    Please, note: The BBDSI does only provide 3.3V for VDD_SDCARD, and 1.8V for SD_A_VCC.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hi,


    As per your recommendation, we disabled the following properties from the osm_sdio_a node:


    vmmc-supply = <&reg_sdio_a_pwr>;

    vqmmc-supply = <&reg_sdio_a_pwr>;


    We rebuilt the image and tested the system again. However, after kernel boot, we consistently observe the following errors:


    "sdhci-esdhc-imx 298e0000.mmc: card claims to support voltages below defined range

    mmc1: error -84 whilst initialising SDIO card"


    The same messages continue to appear repeatedly during boot and even after reaching the login prompt:

    "sdhci-esdhc-imx 298e0000.mmc: card claims to support voltages below defined range

    mmc1: error -84 whilst initialising SDIO card"


    Based on these logs, it appears that removing the vmmc-supply and vqmmc-supply properties did not resolve the issue. The SDIO card initialization is still failing, likely due to a voltage negotiation mismatch.


    For reference, our hardware and software configuration is as follows:



    /*

    * TI351 (CC3351) Wi-Fi + Bluetooth configuration

    * Board: FS-OSM-SF-MX8ULP on ADP-OSM-BB

    * Adapted from Ezurio Sona TI351 EVK integration guide (i.MX8M)

    * for i.MX8ULP platform (F&S OSM-SF-MX8ULP on ADP-OSM-BB carrier).


    * Wi-Fi: usdhc1/SDIO (wlcore driver at function 2)

    * - SDIO limited to 50MHz (TI351 specification requirement)

    * - Requires cap-power-off-card for proper power sequencing


    *

    * References:

    * - Ezurio Sona TI Software Integration Guide

    * Sona TI Device Tree Configuration

    * - F&S OSM-SF-MX8ULP device tree (meta-fus)

    */


    &osm_sdio_a {

    status = "okay";

    };


    &usdhc1 {

    #address-cells = <1>;

    #size-cells = <0>;

    status = "okay";

    bus-width = <4>;

    max-frequency = <50000000>;

    wlcore: wlcore@2 {

    compatible = "ti,cc33xx";

    reg = <2>;

    };

    };


    Could you please advise on the next recommended changes to the USDHC1/SDIO configuration?


    Specifically:

    1.Do you recommend any additional modifications related to 1.8 V signaling configuration?

    2.Should any changes be made to the regulator setup for the CC33xx SDIO interface?

    3.Are there any additional USDHC1 device tree properties that should be reviewed or adjusted to resolve the voltage negotiation error?

    4.Based on the above DTS configuration, do you see any missing properties required for proper CC33xx SDIO initialization on the i.MX8ULP platform?


    Thank you for your support and guidance.


    Best regards,

    Bharath K R


  • Hi Bharath ,

    your driver checks the voltages.

    Try to set the properties again.
    https://github.com/FSEmbedded/…x8ulp.dtsi#L518C1-L519C35

    for vqmmc-supply set the following:


    Code
    1. vqmmc-supply = <&reg_1v8>;

    Let me know if it works :)

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hi Team,


    As per your recommendation, we added the following property to the osm_sdio_a node:


    1. vqmmc-supply = <&reg_1v8>;


    We rebuilt the image and tested the system again. However, after the kernel boots, we still observe the following errors:


    "sdhci-esdhc-imx 298e0000.mmc: card claims to support voltages below defined range

    mmc1: error -84 whilst initialising SDIO card"


    The issue persists even after adding the vqmmc-supply property. Could you please advise on the next steps for further debugging or suggest any additional DTS or driver-level checks that should be performed?


    Thank you for your support and guidance.


    Best regards,

    Bharath K R