工具与软件:
CPU: am6254ATCGGAALW
RAM: MT40A2G16
尊敬的团队:
以下是可在9.0上成功运行的修补程序。
编辑:
board-support/ti-linux-kernel/arch/arm64/boot/dts/ti/ k3-am625-sk.dts
board-support/ti-linux-kernel/arch/arm64/boot/dts/ti/ k3-am62x-sk-common.dtsi
board-support/ti-u-boot/arch/arm/dts/ k3-am625-sk.dts
memory@80000000 {
device_type = "memory";
- /* 2G RAM */
- reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
+ /* 4G RAM */
+ reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+ <0x00000008 0x80000000 0x00000000 0x80000000>;
};
board-support/ti-u-boot/arch/arm/dts/ k3-am625-r5-sk.dts
-#include "k3-am62x-sk-ddr4-1600MTs.dtsi"
+#include "k3-am62x-ddr-config.dtsi"
/ {
memory@80000000 {
device_type = "memory";
- /* 2G RAM */
- reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
+ /* 4G RAM */
+ reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+ <0x00000008 0x80000000 0x00000000 0x80000000>;
bootph-pre-ram;
};
};
添加 board-support/ti-u-boot/arch/arm/dts/ k3-am62x-DDR-CONFIG 生成.dtsi 字段 SysConfig

board-support\ti-u-boot\drivers\ram\k3-ddrss\ k3-ddrss.c
/* AM64x supports only up to 2 GB SDRAM */ -writel(0x000001EF, ddrss->ddrss_ss_cfg + DDRSS_V2A_CTL_REG); +writel(0x00000210, ddrss->ddrss_ss_cfg + DDRSS_V2A_CTL_REG); writel(0x0, ddrss->ddrss_ss_cfg + DDRSS_ECC_CTRL_REG);
输出电压特性 bdinfo 和 FREE -h 在 SDK9.0和 SDK9.2上使用相同的补丁。
SDK9.0:
U-Boot SPL 2023.04-00001-gf5b119738d-dirty (Jun 19 2024 - 19:58:43 +0800) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)') SPL initial stack usage: 13376 bytes Trying to boot from MMC2 Starting ATF on ARM64 core... NOTICE: BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty NOTICE: BL31: Built : 00:42:57, Jan 13 2023 U-Boot SPL 2023.04-00001-gf5b119738d-dirty (Jun 19 2024 - 19:58:52 +0800) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)') SPL initial stack usage: 1856 bytes i2c_write: error waiting for data ACK (status=0x116) pca953x gpio@22: Error reading output register Error (-2): cannot determine file size Trying to boot from MMC2 U-Boot 2023.04-00001-gf5b119738d-dirty (Jun 19 2024 - 19:58:52 +0800) SoC: AM62X SR1.0 GP Model: Texas Instruments AM625 SK EEPROM not available at 80, trying to read at 81 Reading on-board EEPROM at 0x51 failed -1 DRAM: 2 GiB (effective 4 GiB) Core: 70 devices, 31 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial Out: serial Err: serial EEPROM not available at 80, trying to read at 81 Reading on-board EEPROM at 0x51 failed -1 Net: eth0: ethernet@8000000port@1 Autoboot in 3 seconds i2c_write: error waiting for data ACK (status=0x116) pca953x gpio@22: Error reading output register switch to partitions #0, OK mmc1 is current device i2c_write: error waiting for data ACK (status=0x116) pca953x gpio@22: Error reading output register SD/MMC found on device 1 Failed to load 'boot.scr' 677 bytes read in 14 ms (46.9 KiB/s) Loaded env from uEnv.txt Importing environment from mmc1 ... => bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000080000000 DRAM bank = 0x0000000000000001 -> start = 0x0000000880000000 -> size = 0x0000000080000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000ff61b000 reloc off = 0x000000007ee1b000 Build = 64-bit current eth = ethernet@8000000port@1 ethaddr = 1c:63:49:1b:f9:cf IP addr = <NULL> fdt_blob = 0x00000000fd5ec020 new_fdt = 0x00000000fd5ec020 fdt_size = 0x000000000000fd60 Video = dss@30200000 inactive multi_dtb_fit= 0x0000000000000000 lmb_dump_all: memory.cnt = 0x2 memory[0] [0x80000000-0xffffffff], 0x80000000 bytes flags: 0 memory[1] [0x880000000-0x8ffffffff], 0x80000000 bytes flags: 0 reserved.cnt = 0x6 reserved[0] [0x9ca00000-0x9cafffff], 0x00100000 bytes flags: 0 reserved[1] [0x9cb00000-0x9e6fffff], 0x01c00000 bytes flags: 4 reserved[2] [0x9e780000-0x9fffffff], 0x01880000 bytes flags: 4 reserved[3] [0xfc5e0000-0xffffffff], 0x03a20000 bytes flags: 0 reserved[4] [0xfd5e69d0-0xffffffff], 0x02a19630 bytes flags: 0 reserved[5] [0x880000000-0x8ffffffff], 0x80000000 bytes flags: 0 devicetree = separate arch_number = 0x0000000000000000 TLB addr = 0x00000000ffff0000 irq_sp = 0x00000000fd5eaff0 sp start = 0x00000000fd5eaff0 Early malloc usage: 3c28 / 8000 =>
root@AM62:~# free -h
total used free shared buff/cache available
Mem: 3.8Gi 390Mi 3.3Gi 11Mi 284Mi 3.4Gi
Swap: 0B 0B 0B
root@AM62:~#
SDK9.2:
U-Boot SPL 2023.04-dirty (Jul 16 2024 - 16:59:51 +0800) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') SPL initial stack usage: 13408 bytes Trying to boot from MMC2 Starting ATF on ARM64 core... NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty NOTICE: BL31: Built : 16:09:05, Feb 9 2024 U-Boot SPL 2023.04-dirty (Jul 16 2024 - 16:59:59 +0800) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') SPL initial stack usage: 1856 bytes i2c_write: error waiting for data ACK (status=0x116) pca953x gpio@22: Error reading output register Trying to boot from MMC2 U-Boot 2023.04-dirty (Jul 16 2024 - 16:59:59 +0800) SoC: AM62X SR1.0 GP Model: Texas Instruments AM625 SK EEPROM not available at 80, trying to read at 81 Reading on-board EEPROM at 0x51 failed -1 DRAM: 2 GiB (effective 4 GiB) Core: 72 devices, 32 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial Out: serial Err: serial EEPROM not available at 80, trying to read at 81 Reading on-board EEPROM at 0x51 failed -1 Net: eth0: ethernet@8000000port@1 Hit any key to stop autoboot: 0 => bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000080000000 DRAM bank = 0x0000000000000001 -> start = 0x0000000080000000 -> size = 0x0000000080000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000ff616000 reloc off = 0x000000007ee16000 Build = 64-bit current eth = ethernet@8000000port@1 ethaddr = 1c:63:49:1b:f9:cf IP addr = <NULL> fdt_blob = 0x00000000fd5e7820 new_fdt = 0x00000000fd5e7820 fdt_size = 0x000000000000f560 Video = dss@30200000 inactive multi_dtb_fit= 0x0000000000000000 lmb_dump_all: memory.cnt = 0x1 memory[0] [0x80000000-0xffffffff], 0x80000000 bytes flags: 0 reserved.cnt = 0x4 reserved[0] [0x9ca00000-0x9cafffff], 0x00100000 bytes flags: 0 reserved[1] [0x9cb00000-0x9e6fffff], 0x01c00000 bytes flags: 4 reserved[2] [0x9e780000-0x9fffffff], 0x01880000 bytes flags: 4 reserved[3] [0xfc5e2000-0xffffffff], 0x03a1e000 bytes flags: 0 devicetree = separate arch_number = 0x0000000000000000 TLB addr = 0x00000000ffff0000 irq_sp = 0x00000000fd5e6ff0 sp start = 0x00000000fd5e6ff0 Early malloc usage: 3c28 / 8000 =>
root@am62xx-evm:~# free -h
total used free shared buff/cache available
Mem: 1.9Gi 151Mi 1.7Gi 900Ki 99Mi 1.7Gi
Swap: 0B 0B 0B
root@am62xx-evm:~#
谢谢!
Andrew