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 enable eMMC HS200 in tiboot3

Part Number: AM625

Working with customer to optimize booting time with falcon boot.

the time between Trying to boot from MMC1 and loading Enviroment from MMC consumed >1 second.

With SDK8.3 on eMMC:

[2024-02-28 06:25:02.019] U-Boot SPL 2021.01-00002-g77bcc61275-dirty (Feb 28 2024 - 11:45:22 +0800)
[2024-02-28 06:25:02.036] SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')
[2024-02-28 06:25:02.083] Trying to boot from MMC1
[2024-02-28 06:25:03.349] Loading Environment from MMC... *** Warning - bad CRC, using default environment
[2024-02-28 06:25:03.379]
[2024-02-28 06:25:03.508] init_env from device 9 not supported!
[2024-02-28 06:25:03.508] Starting ATF on ARM64 core...
[2024-02-28 06:25:03.508]
[2024-02-28 06:25:03.508] NOTICE:  BL31: v2.6(release):08.03.00.003-dirty
[2024-02-28 06:25:03.521] NOTICE:  BL31: Built : 16:35:46, May 30 2022
[2024-02-28 06:25:03.556] [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[2024-02-28 06:25:03.571] [    0.000000] Linux version 5.10.109-g9e58028f94 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain
With SDK8.3 on SD card, the time consumed similar as that of eMMC.
[2024-02-28 04:31:30.715] U-Boot SPL 2021.01-00002-g77bcc61275-dirty (Feb 28 2024 - 11:45:22 +0800)
[2024-02-28 04:31:30.731] SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')
[2024-02-28 04:31:30.779] Trying to boot from MMC2
[2024-02-28 04:31:32.077] Loading Environment from MMC... *** Warning - No MMC card found, using default environment
[2024-02-28 04:31:32.092]
[2024-02-28 04:31:32.156] Starting ATF on ARM64 core...
[2024-02-28 04:31:32.156]
[2024-02-28 04:31:32.156] NOTICE:  BL31: v2.6(release):08.03.00.003-dirty
[2024-02-28 04:31:32.157] NOTICE:  BL31: Built : 16:35:46, May 30 2022
[2024-02-28 04:31:32.209] [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[2024-02-28 04:31:32.209] [    0.000000] Linux version 5.10.109-g9e58028f94 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain
With SDK8.6 on eMMC:
[2024-02-28 10:55:08.285] U-Boot SPL 2021.01-00001-g45cb7e44ae-dirty (Jan 04 2024 - 15:53:38 +0800)
[2024-02-28 10:55:08.295] SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
[2024-02-28 10:55:08.328] SPL initial stack usage: 13424 bytes
[2024-02-28 10:55:08.360] Trying to boot from MMC1
[2024-02-28 10:55:08.443] Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This w
[2024-02-28 10:55:08.443] ill fail if the image was also encrypted
[2024-02-28 10:55:09.448] Loading Environment from MMC... *** Warning - bad CRC, using default environment
[2024-02-28 10:55:09.486]
[2024-02-28 10:55:09.577] init_env from device 9 not supported!
[2024-02-28 10:55:09.587] Starting ATF on ARM64 core...
[2024-02-28 10:55:09.587]
[2024-02-28 10:55:09.587] NOTICE: BL31:v2.8(release):v2.8-226-g2fcd408bb3-dirty
[2024-02-28 10:55:09.605] NOTICE: BL31: Built : 05:06:58, Feb 24 2023
[2024-02-28 10:55:09.654] [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[2024-02-28 10:55:09.654] [ 0.000000] Linux version 5.10.168-g2c23e6c538 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain

but it is very fast in the demo document.

Customer measured the eMMC clock is 25MHz only, not working at HS200.

#1. the R5F dts file configured HS200 in default already, what else need to do?

#2. With SDK8.6, I use unsigned bl31.bin and bl32.bin, still report signed image, which firmware is signed, the DM firmware, but there is only one DM firmware in the prebuilt image folder.

BTW, HS200 stablity is not a concern here, as it works in Kernel on customer's board already.

  • Hi Tony,

    Please apply the following u-boot patch, it should change the eMMC to 200MHz.

    diff --git a/arch/arm/dts/k3-am62-main.dtsi b/arch/arm/dts/k3-am62-main.dtsi
    index 4d31dba4b2e5..82dc83d2c7a3 100644
    --- a/arch/arm/dts/k3-am62-main.dtsi
    +++ b/arch/arm/dts/k3-am62-main.dtsi
    @@ -338,10 +338,8 @@
                    reg = <0x00 0xfa10000 0x00 0x260>, <0x00 0xfa18000 0x00 0x134>;
                    interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                    power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
    -               clocks = <&k3_clks 57 5>, <&k3_clks 57 6>;
    +               clocks = <&k3_clks 57 5>, <&k3_clks 57 7>;
                    clock-names = "clk_ahb", "clk_xin";
    -               assigned-clocks = <&k3_clks 57 6>;
    -               assigned-clock-parents = <&k3_clks 57 8>;
                    mmc-ddr-1_8v;
                    mmc-hs200-1_8v;
                    ti,trm-icp = <0x2>;

  • Hi, Bin,

    The boot time improved with the patch(too exciting to click the resolved buttom), but still doesn't meet expectration, then probed the eMMC clock,  it is still 25MHz, confirmed by both customer and me with osillocope. 

    Same eMMC clock frequency, but improved boot time, maybe the patch solved clock setting, but not configure to right frequency.

    [2024-02-29 02:18:31.149] U-Boot SPL 2021.01-00002-g77bcc61275-dirty (Feb 29 2024 - 09:43:16 +0800)
    [2024-02-29 02:18:31.181] SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')
    [2024-02-29 02:18:31.227] Trying to boot from MMC1
    [2024-02-29 02:18:31.773] Loading Environment from MMC... *** Warning - bad CRC, using default environment
    [2024-02-29 02:18:31.805] 
    [2024-02-29 02:18:31.917] init_env from device 9 not supported!
    [2024-02-29 02:18:31.917] Starting ATF on ARM64 core...
    [2024-02-29 02:18:31.936] 
    [2024-02-29 02:18:31.936] NOTICE:  BL31: v2.6(release):08.03.00.003-dirty
    [2024-02-29 02:18:31.936] NOTICE:  BL31: Built : 16:35:46, May 30 2022
    [2024-02-29 02:18:31.984] [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [2024-02-29 02:18:31.984] [    0.000000] Linux version 5.10.109-g9e58028f94 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain
    [2024-02-29 02:18:31.998]  for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profil
    [2024-02-29 02:18:31.998] e Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP PREEMPT Mon May 30 16:43:25 UTC 2022
    [2024-02-29 02:18:32.017] [    0.000000] Machine model: Texas Instruments AM625 SK
    [2024-02-29 02:18:32.017] [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [2024-02-29 02:18:32.030] [    0.000000] printk: bootconsole [ns16550a0] enabled

  • Hi Tony,

    then probed the eMMC clock,  it is still 25MHz, confirmed by both customer and me with osillocope. 

    The clock would be 200MHz only when sending/receiving DATA to/from the eMMC device. But it would be 25MHz when idle or sending eMMC CMD.

    So when probing the clock, please also probe the CLK line and DAT0 line to ensure you are check the clock at the DATA phase, not CMD phase.

  • Bin,

    Yes, I captured 200MHz clock with Pulse trigger.

    Customer need to boot to logo within 3 seconds, the tispl.bin size is 39MByte, it takes 1.6s to load tispl.bin. how do you think about the time? and anything else to optimize?

  • hi Tony,

    If the only boot time requirement is for early boot logo, I think we now have a solution to display a logo in U-Boot. If so, please create a new e2e thread for it so that the right folks can comment.