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.

AM625: How to Set EMMC Clock to 25MHz

Part Number: AM625

Tool/software:

Hi TI Experts,

Customer is working on SDK9.2.

As customer boards work not quite well at high speed EMMC, we let most of the boards boot successfully after applying no-1.8-V to make it in the slow speed mode.

However, there are still two boards have the problem (could not flash the emmc from SD), we want to do an experiment to further reduce the emmc clock.

Now the emmc clock measured is 50MHz, we want to try to decrease it to 25MHz.

Could you help provide a guide how to change the eMMC clock from 50MHz to 25Mhz please?

Many Thanks,

Kevin 

  • Hello,

    You may try the legacy speed mode which configures the clock to 25MHz.

    root@am64xx-evm:~# dmesg | grep mmc0
    [    1.517898] mmc0: CQHCI version 5.10
    [    1.561057] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    1.646540] mmc0: Command Queue Engine enabled
    [    1.651032] mmc0: new MMC card at address 0001
    [    1.656404] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
    [    1.663357] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
    [    1.669775] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB
    [    1.676076] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (239:0)
    root@am64xx-evm:~# cat /sys/kernel/debug/mmc0/ios
    clock:           25000000 Hz
    actual clock:    25000000 Hz
    vdd:             7 (1.65 - 1.95 V)
    bus mode:        2 (push-pull)
    chip select:     0 (don't care)
    power mode:      2 (on)
    bus width:       3 (8 bits)
    timing spec:     0 (legacy)
    signal voltage:  0 (3.30 V)
    driver type:     0 (driver type B)

    Regards,

    Prashant

  • Hi Prashant,

    Thank you, could you also share the diff you made based on the default SDK please? We could follow and double check it, thanks!

    Kevin

  • could you also share the diff you made based on the default SDK please?

    PFA the patch:

    diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
    index 93d445cd8a7f..bc7fc8e2f2f0 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
    @@ -552,9 +552,9 @@ sdhci0: mmc@fa10000 {
     		mmc-hs200-1_8v;
     		ti,clkbuf-sel = <0x7>;
     		ti,otap-del-sel-legacy = <0x0>;
    -		ti,otap-del-sel-mmc-hs = <0x0>;
    -		ti,otap-del-sel-ddr52 = <0x5>;
    -		ti,otap-del-sel-hs200 = <0x5>;
    +		// ti,otap-del-sel-mmc-hs = <0x0>;
    +		// ti,otap-del-sel-ddr52 = <0x5>;
    +		// ti,otap-del-sel-hs200 = <0x5>;
     		ti,itap-del-sel-legacy = <0xa>;
     		ti,itap-del-sel-mmc-hs = <0x1>;
     		status = "disabled";