Other Parts Discussed in Thread: TMDS64EVM
器件型号: AM6442
Thread 中讨论的其他器件: TMDS64EVM
尊敬的 Champs:
我的客户希望将 LPDDR4 时钟从默认值 (50MHz) 更改为更高的值、从而在 Uboot 中更快地完成 ECC 初始化。 请告知这是否是正确的方法以及如何执行该操作/在何处更改 Uboot 中的代码。
此致、
Kien
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.
您好、James:
我是 Kien 提到的客户。
我的意见:
-在 TMDS64EVM 的 2GB DDR4 内存上启用 ECC 只需要 1 秒的时间进行 ECC 初始化
- 在 AM64SKEVM 和我们的定制电路板上使用 MT53E1G16D1 LPDDR4 的 2GB LPDDR4 存储器上启用 ECC 大约需要 3.2 秒进行 ECC 初始化
主要问题是 ECC 初始化所花费的时间要长得多、我最初猜测是 LPDDR4 在 50MHz 进行初始化。
如果这种猜测是错误的,这种时间差的其他潜在原因是什么,如何减少它?
此致、
余姚市
您好、James:
刚刚使用 ti-processor-sdk-linux-am64xx-evm-11.02.08.02-Linux-x86-Install.bin 的全新安装进行了测试
以下是操作步骤:
1.使用 SDK 安装中包含的默认映像创建 SD 卡
2.按照 本指南修改 uboot 文件 以启用 ECC、更改了文件:k3-am64-ddr.dtsi、am64x_evm_r5_defconfig
3.将 SD 卡中的 uboot 二进制文件替换为新编译的二进制文件
4.使用同一 SD 卡在两个 EVM 板上进行测试
结果直接取自引导过程中的 UART 日志输出:
TMDS64EVM:
U-Boot SPL 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:14 +0000) Resetting on cold boot to workaround ErrataID:i2331 Please resend tiboot3.bin in case of UART/DFU boot resetting ... U-Boot SPL 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:14 +0000) SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.5--v11.02.05 (Fancy Rat)') ECC is enabled, priming DDR which will take several seconds. ECC: priming DDR completed in 1085 msec Set clock rates for '/a53@0', CPU: 1000MHz at Speed Grade 'S' SPL initial stack usage: 13584 bytes Trying to boot from MMC2 Authentication passed Authentication passed Loading Environment from nowhere... OK Authentication passed Authentication passed Starting ATF on ARM64 core... NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty NOTICE: BL31: Built : 07:01:36, Jul 1 2025 I/TC: I/TC: OP-TEE version: 4.7.0-47-ga9690ae39 (gcc version 13.4.0 (GCC)) #1 Thu Aug 7 15:25:10 UTC 2025 aarch64 I/TC: WARNING: This OP-TEE configuration might be insecure! I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html I/TC: Primary CPU initializing I/TC: GIC redistributor base address not provided I/TC: Assuming default GIC group status and modifier I/TC: SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.5--v11.02.05 (Fancy Rat)') I/TC: Activated SA2UL device I/TC: Enabled firewalls for SA2UL TRNG device I/TC: EIP76D TRNG initialized I/TC: SA2UL Drivers initialized I/TC: HUK Initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:35 +0000) SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.5--v11.02.05 (Fancy Rat)') Trying to boot from MMC2 Authentication passed Authentication passed U-Boot 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:35 +0000) SoC: AM64X SR2.0 HS-FS Model: Texas Instruments AM642 EVM Board: AM64-EVM rev D DRAM: 1.8 GiB Core: 111 devices, 34 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial@2800000 Out: serial@2800000 Err: serial@2800000 Net: eth0: ethernet@8000000port@1am65_cpsw_nuss_port ethernet@8000000port@2: phy_connect() failed , eth2: icssg1-eth-port@0 Hit any key to stop autoboot:
AM64SKEVM:
U-Boot SPL 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:14 +0000) Resetting on cold boot to workaround ErrataID:i2331 Please resend tiboot3.bin in case of UART/DFU boot resetting ... U-Boot SPL 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:14 +0000) SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.5--v11.02.05 (Fancy Rat)') EEPROM not available at 0x50, trying to read at 0x51 ECC is enabled, priming DDR which will take several seconds. ECC: priming DDR completed in 3230 msec Set clock rates for '/a53@0', CPU: 1000MHz at Speed Grade 'S' SPL initial stack usage: 13584 bytes Trying to boot from MMC2 Authentication passed Authentication passed Loading Environment from nowhere... OK Authentication passed Authentication passed Starting ATF on ARM64 core... NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty NOTICE: BL31: Built : 07:01:36, Jul 1 2025 I/TC: I/TC: OP-TEE version: 4.7.0-47-ga9690ae39 (gcc version 13.4.0 (GCC)) #1 Thu Aug 7 15:25:10 UTC 2025 aarch64 I/TC: WARNING: This OP-TEE configuration might be insecure! I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html I/TC: Primary CPU initializing I/TC: GIC redistributor base address not provided I/TC: Assuming default GIC group status and modifier I/TC: SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.5--v11.02.05 (Fancy Rat)') I/TC: Activated SA2UL device I/TC: Enabled firewalls for SA2UL TRNG device I/TC: EIP76D TRNG initialized I/TC: SA2UL Drivers initialized I/TC: HUK Initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:35 +0000) SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.5--v11.02.05 (Fancy Rat)') Trying to boot from MMC2 Authentication passed Authentication passed U-Boot 2025.01-g7493977a537f-dirty (Mar 24 2026 - 06:39:35 +0000) SoC: AM64X SR2.0 HS-FS Model: Texas Instruments AM642 SK Board: AM64B-SKEVM rev A DRAM: 1.8 GiB Core: 102 devices, 34 uclasses, devicetree: separate MMC: mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial@2800000 Out: serial@2800000 Err: serial@2800000 Failed to probe prueth driver Net: eth0: ethernet@8000000port@1, eth1: ethernet@8000000port@2 Hit any key to stop autoboot:
此致、
余姚市
我深入研究了这一点、BIST 引擎似乎不如使用 DDR4 访问 LPDDR4 高效。 由于存储库更少且刷新次数更多、控制器似乎停止运行、需要更多激活和预充电命令、这不允许高效写入吞吐量。
然而、BIST 引擎仍然是保存存储器的最高效方式(通过 DMA 或处理器 memcpy)。 您还可以通过确保仅对所需的存储器区域使用 ECC(即,您可能不需要对整个 DDR 存储器进行纠错)来减少这段时间、因此必须优先使用的存储器容量会更少
此致、
James