Part Number: AM625
Customer made different product based on SDK8.3 and SDK9.2.1.9. captured eMMC clock changing process as below.
1: SDK8.3: (usual boot): 400K---25M--3.125M-400K---25M--200M---400K---25M---200M--400K--25M--200M
#2. SDK8.3: (Falcon Boot): 400K---25M-------------400K---25M--200M---400K------------200M
#3. SDK9.2: (Falcon Boot): 400K---25M-------------400K---25M--50M-----400K---50M---200M
We want to map the eMMC clock frquency changes to different bootup stages.
#1. What is the eMMC clock frequency during eMMC ROM bootloader stage? 400KHz and 25MHz of the first stage?
#2. Is the clock frequency initialized from low to high according to dts parameter? seems it is right in SDK9.2 (UBOOT 2023), but with SDK8.3 UBOOT 2021, there isn't 50MHz stage.
#3. With the default SDK9.2, 50MHz stage is DDR52 mode, which is not supported in later spec, but it doesn't cause only problem so far, is there risk to remain it as many product deployed to field already.
[UPDATED]
I add log print in uboot and Kernel sdhci_set_ios() as below:
UBoot patch:
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/print_5F00_emmc_5F00_status_5F00_sdk9.2.1.9.uboot.patch
Kernel patch:
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/7140.print_5F00_emmc_5F00_status_5F00_sdk9.2.1.9.kernel.patch
Got log:
sdk9.2.1.9-emmc-status-debug.log
there is 2 stage working at 52MHz
Starting kernel ... [SDHCI] clock=26000000 Hz, ddr_mode=0, bus_width=8,signal_voltage=2 [SDHCI] clock=26000000 Hz, ddr_mode=0, bus_width=8,signal_voltage=2 [SDHCI] clock=52000000 Hz, ddr_mode=1, bus_width=8,signal_voltage=2 [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
The ddr_mode can be changed to 0 by modifying dts:
bus-width = <8>; - mmc-ddr-1_8v; + //mmc-ddr-1_8v; 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,itap-del-sel-legacy = <0xa>; - ti,itap-del-sel-mmc-hs = <0x1>; + //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>; + ti,otap-del-sel-hs200 = <0x6>; + ti,itap-del-sel-legacy = <0x0>; + ti,itap-del-sel-mmc-hs = <0x0>; status = "disabled"; };
Starting kernel ... [SDHCI] clock=26000000 Hz, ddr_mode=0, bus_width=8,signal_voltage=2 [SDHCI] clock=26000000 Hz, ddr_mode=0, bus_width=8,signal_voltage=4 [SDHCI] clock=26000000 Hz, ddr_mode=0, bus_width=8,signal_voltage=4 [SDHCI] clock=52000000 Hz, ddr_mode=0, bus_width=8,signal_voltage=4 [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
Kernel:
root@am62xx-evm:~# dmesg |grep "clock=" [ 1.270021] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=1, signal_voltage=0 [ 1.307599] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.342851] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.355968] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.373084] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.408575] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.422350] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.435004] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.442479] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=1, signal_voltage=0 [ 1.453718] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=1, signal_voltage=0 [ 1.470951] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.485144] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.513176] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=3, bus_mode=2, power_mode=2, signal_voltage=1 [ 1.519823] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.528949] [SDHCI-KERNEL] clock=400000 Hz, timing=9, bus_width=3, bus_mode=2, power_mode=2, signal_voltage=1 [ 1.539458] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.546688] [SDHCI-KERNEL] clock=52000000 Hz, timing=9, bus_width=3, bus_mode=2, power_mode=2, signal_voltage=1 [ 1.561068] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.566518] [SDHCI-KERNEL] clock=200000000 Hz, timing=9, bus_width=3, bus_mode=2, power_mode=2, signal_voltage=1 [ 1.576927] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=0, signal_voltage=0 [ 1.615585] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=1, signal_voltage=0 [ 1.653501] [SDHCI-KERNEL] clock=300000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.676933] [SDHCI-KERNEL] clock=300000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.689585] [SDHCI-KERNEL] clock=300000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.704899] [SDHCI-KERNEL] clock=300000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.715332] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=0, signal_voltage=0 [ 1.726445] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=1, signal_voltage=0 [ 1.764296] [SDHCI-KERNEL] clock=200000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.788086] [SDHCI-KERNEL] clock=200000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.800849] [SDHCI-KERNEL] clock=200000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.818040] [SDHCI-KERNEL] clock=200000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.828718] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=0, signal_voltage=0 [ 1.839806] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=1, signal_voltage=0 [ 1.877663] [SDHCI-KERNEL] clock=100000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.902677] [SDHCI-KERNEL] clock=100000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.915720] [SDHCI-KERNEL] clock=100000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 1.938522] [SDHCI-KERNEL] clock=100000 Hz, timing=0, bus_width=0, bus_mode=1, power_mode=2, signal_voltage=0 [ 1.949841] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=0, signal_voltage=0 [ 2.998773] [SDHCI-KERNEL] clock=400000 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=2, signal_voltage=0 [ 3.021521] [SDHCI-KERNEL] clock=0 Hz, timing=0, bus_width=0, bus_mode=2, power_mode=0, signal_voltage=0