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.

Should i modify source code when using different eMMC module

Other Parts Discussed in Thread: DRA752

Hi, I am using Jacinto 6, GLSDK 7.04.03.

If we replace eMMC to "Kingston 8GB EMMC08G-W325-B52" on DRA742-EVM 577G-02-21-00 board, should i modify eMMC driver?

  • Hi Shawn,

    I have forwarded your question to EMMC expert.

    Regards,
    Yordan
  • Shawn,

    If you are planning to use this eMMC in 8-bit mode, Vccq (I/O power supply) set to 1.8V, I think no eMMC u-boot driver and DTS files update is needed. I assume you will connect your eMMC to Jacinto6 MMC2 interface, and use the same MMC2 pins as in EVM.

    Regards,
    Pavel
  • Hi,

    There was a suggested answer and since there has been no activity on this thread for more than a week,
    the suggested answer was marked as verify. Please feel free to select the "Reject Answer" button and reply with more details.

    Regards,
    Yordan
  • Hi Pavel,

    As i check with our hardware design, our Vccq is 3.3V, so should i modify code to adapt this change?
  • Shawn,

    Let us first focus on u-boot. The 1.8V vs 3.3V settings are in the below files:

    u-boot/arch/arm/dts/dra7.dtsi

    mmc2: mmc@480b4000 {

    compatible = "ti,dra7-hsmmc", "ti,omap4-hsmmc";

    reg = <0x480b4000 0x400>;

    interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;

    ti,hwmods = "mmc2";

    ti,needs-special-reset;

    dmas = <&sdma 47>, <&sdma 48>;

    dma-names = "tx", "rx";

    mmc-hs200-1_8v;

    mmc-ddr-1_8v;

    status = "disabled";

    };

     

    u-boot/drivers/mmc/mmc-uclass.c

    if (fdtdec_get_bool(fdt, node, "mmc-ddr-1_8v"))
            cfg->host_caps |= MMC_MODE_DDR_52MHz;
    if (fdtdec_get_bool(fdt, node, "mmc-hs200-1_8v"))
            cfg->host_caps |= MMC_MODE_HS200;

     

    u-boot/drivers/mmc/omap_hsmmc.c

    OMAP_HSMMC_SETUP_PINCTRL(MMC_MODE_HS200, hs200_1_8v);
    OMAP_HSMMC_SETUP_PINCTRL(MMC_MODE_DDR_52MHz, ddr_1_8v);

     

    So you should update dra7.dtsi. See DRA74x TRM, chapter 25 eMMC, for more info regarding 1.8V IOs vs 3.3V IOs

    Regards,
    Pavel

     

     

  • Hi Pavel,

    in u-boot/arch/arm/dts/dra7.dtsi, i can't see "mmc-hs200-1_8v" & "mmc-ddr-1_8v". the content of my file is

    mmc2: mmc@480b4000 {

    compatible = "ti,dra7-hsmmc", "ti,omap4-hsmmc";

    reg = <0x480b4000 0x400>;

    interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;

    ti,hwmods = "mmc2";

    ti,needs-special-reset;

    dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;

    dma-names = "tx", "rx";

    status = "disabled";

    };

    and i can't find u-boot/drivers/mmc/mmc-uclass.c this file.

    and in u-boot/drivers/mmc/omap_hsmmc.c, i also can't see

    OMAP_HSMMC_SETUP_PINCTRL(MMC_MODE_HS200, hs200_1_8v);

    OMAP_HSMMC_SETUP_PINCTRL(MMC_MODE_DDR_52MHz, ddr_1_8v);

    these two function call.

    But i still can access eMMC. So, maybe the 1.8V is the default voltage setting for eMMC, that's why i can use it without specify 1.8V setting for it, right?

    Another question=>So i should only modify u-boot/arch/arm/dts/dra7.dtsi for 3.3V setting, right?

    P.S. the attached are the related files of mine5618.files.7z

    best regards

    Shawn

  • Shawn,

    The files I referred in my previous post are available in PSDKLA 3.1

    Regarding GLSDK7, you should update the below file:

    u-boot/board/ti/dra7xx/evm.c

    In GLSDK7, I can not find u-boot/arch/arm/dts/dra7.dtsi
  • Hi Pavel,

    In u-boot/board/ti/dra7xx/evm.c, i only see one part related to 1.8v, as blow

    case DRA752_ES2_0:

    max_freq = cpu_to_fdt32(192000000);

    /* dt-update: add mmc1 property*/

    fdt_addprop_aliases(fdt, "mmc1", "sd-uhs-sdr104", NULL, 0);

    fdt_addprop_aliases(fdt, "mmc1", "max-frequency", &max_freq, 4);

    /* dt-update: add mmc2 property*/

    fdt_addprop_aliases(fdt, "mmc2", "mmc-hs200-1_8v", NULL, 0);

    fdt_addprop_aliases(fdt, "mmc2", "max-frequency", &max_freq, 4);

    break;

    So, you mean to change this string?

    Besides, i can find dra7.dtsi in /SDK_DIR/board-support/linux/arch/arm/boot/dts/, should i modify this file too?

  • shawn lin said:
    So, you mean to change this string?

    Yes. See how this string impact the mmc driver settings (1.8V vs 3.3V)

    shawn lin said:
    Besides, i can find dra7.dtsi in /SDK_DIR/board-support/linux/arch/arm/boot/dts/, should i modify this file too?

    No, I do not see anything related to 1.8V there. Focus on evm.c and omap_hsmmc.c

    Regards,
    Pavel

  • shawn lin said:
    So, you mean to change this string?

    Yes

    shawn lin said:
    Besides, i can find dra7.dtsi in /SDK_DIR/board-support/linux/arch/arm/boot/dts/, should i modify this file too?

    No, I do not see anything related to 1.8V there.

    Focus on evm.c and omap_hsmmc.c

    Regards,
    Pavel

  • Hi Pavel,

    2 questions

    1. What string should i use to replace "mmc-hs200-1_8v"? should i use "mmc-hs200-3_3v"?

    2.In "u-boot/drivers/mmc/omap_hsmmc.c", i can't find any world related to 1_8v, which mean i should only modify  "u-boot/board/ti/dra7xx/evm.c" this file, right?

    Best regards,

    Shawn

  • Hi SHawn,
    Looks like there's a little confusion here between voltage supported and functional/frequency modes supported.

    1. There arre different functional/frequency modes supported by SD/eMMC, these are named in kernel using strings such as ddr50_3.3V, hs_3.3V,ddr50_1.8V, sdr50_1.8V, hs200_1.8V etc based on supported operational voltage and frequency.

    2. You can operate eMMC at either 3.3V or 1.8V - but certain modes are targeted for low voltage operation.
    You may refer to eMMC specification 4.51 section 4 Bus Speed Modes to understand what modes are supported by each voltage.
    You can also refer to DRA74x TRM section 25.1.1 eMMC/SD/SDIO Features to undertsand different modes supported by each MMC instance.

    3. The ultra high speed modes hs200 is only supported at voltage 1.8V as per MMC specification.

    Pleas elet us know following details to help you identify the changes required.

    Do you alreayd have a working board and SW code base? Are you just changing the eMMC?
    OR is this the first time you are bringing up youor HW using TI SDK?



    Regards,
    RK
  • HI,
    If this is the first time you are bringing up TI SDK on your board then pleae share following details

    Which silicon revision are you using? PG 2.0?
    Do you have any changes with respect to MMC pins compared to the TI EVM?

    Connections of each mmc instance and operating voltages VDD and IO lines
    MMC1--> SD? 1.8/3.3V?
    MMC2-> eMMC? 3.3 V
    MMC3,4?

    Also, if you are just bringing up your board I would recommend using latest SDK release from here processors.wiki.ti.com/.../Category:Processor_SDK_Linux_Automotive

    Regards,
    RK
  • Hi RK,

    Yes, it's the first time.
    Our custom board still use MMC2 to connect eMMC, and use 3.3V.
    Other info i'll check with our HW member and provide to you.

    So, you mean our cutom board still can control eMMC without code modify?(because EVM use 1.8v for eMMC, and we use almost the same code to boot our custom board, of course a little modify for pin define.)
  • shawn lin said:
    1. What string should i use to replace "mmc-hs200-1_8v"? should i use "mmc-hs200-3_3v"?

    No. If you are using ES 2.0 device, remove the below two lines:

    fdt_addprop_aliases(fdt, "mmc2", "mmc-hs200-1_8v", NULL, 0);
    fdt_addprop_aliases(fdt, "mmc2", "max-frequency", &max_freq, 4);

    When 3.3V mode is used, eMMC do not support hs200 (192MHz) mode. In 3.3V mode, eMMC support up to HS (48MHz) mode.

    shawn lin said:
    2.In "u-boot/drivers/mmc/omap_hsmmc.c", i can't find any world related to 1_8v, which mean i should only modify  "u-boot/board/ti/dra7xx/evm.c" this file, right?

    Yes, modify evm.c only.

  • Hi Pavel/Shawn,
    Let us first understand the MMC and regulator connections, configuration and requirements.

    Later we can suggest what and where the changes need to happen.

    Also AFAIR, fdt_addpro_alias() was added to enable hs200/sdr104 modes on ES 2.0 silicon and it's not aproblem to keep this string whether the eMMC card supports it or not (as long as the host supports it).

    MMC driver will communicate with the card during initialization and arrives at a specific speed mode based on both the host and card capabilities.

    All customer needs to do is to provide the correct information on the regulator connections for IO and VDD, MMC isntance and silicon revision.

    Regards,
    RK