您好、专家、
-1-
客户在其 TDA4板上使用的是 MT53E768M32D4DT 3GB DDR、软件为 SDK7.0。
它是双通道双列。 每个芯片为768MB (密度为6Gb)。 由于"ddrss_reg_control_tool"不支持6Gb 密度。 因此我们必须选择4Gb 密度
并将 DDR 大小配置为2GB。 借助新的 DDR 参数、电路板可引导至 SPL。 但它会卡在 u-boot 中。
问题是如何更改2GB 的内存映射?
-2-
我正在使用 TDA4VM EVM 来模拟此情况的4x512MB DDR。 它将在 u-boot 中挂起"enable_caches()"
请帮助检查 TDA4EVM 上的以下修改和引导日志。
diff --git a/arch/arm/dts/k3-j721e-som-p0.dtsi b/arch/arm/dts/k3-j721e-som-p0.dtsi
索引5d18642fe6.4e89df70db 100644
---- a/arch/arm/dts/k3-j721e-som-p0.dtsi
++ b/arch/arm/dts/k3-j721e-som-p0.dtsi
@@-10、9 + 10、9 @@
/{
内存@80000000{
DEVICE_TYPE ="存储器";
-/* 4G RAM */
- reg =<0x00000000 0x8000000 0x00000000 0x00000000 0x80000>、
-<0x00000008 0x8000000 0x00000000 0x80000000>;
+/* 2G RAM 2列4x512MB */
+ reg =<0x00000000 0x8000000 0x00000000 0x40000000>、
+<0x00000008 0x8000000 0x00000000 0x40000000>;
};
diff --git a/arch/arm/mach-k3/arm64-MM4.c b/arch/arm/mach-k3/arm64-MM4.c
索引95f830b7ff..809982abb6 100644
----阿尔克/阿尔马/马赫-克3/ARM64-MM4.c
++ b/arch/arm/mach-k3/arm64-MM4.c
@@-93、13 +93、13 @@ struct mm_region j721e_mem_map[NR_MMU_regions]={
}、{
virt = 0xbbc00000UL、
.phys = 0xbbc00000UL、
-.size = 0x44400000UL、
+.size = 0x04400000UL、
.attrs = PTE_BLOCK_MEMYPE (MT_NORMAL)|
PTE_BLOCK_INNER 共享
}、{
-.virt = 0x880000000UL、
+.virt = 0xc0000000UL、
.phys = 0x880000000UL、
-.size = 0x80000000UL、
+.size = 0x40000000UL、
.attrs = PTE_BLOCK_MEMYPE (MT_NORMAL)|
PTE_BLOCK_INNER 共享
diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c
索引 d9846f3c46..2d1407336a 100644
-- A/board/ti/j721e/evm.c
++ b/board/ti/j721e/evm.c
@@-42、7 +42、7 @@ int board_init (void)
int dram_init (void)
{
#ifdef CONFIG_PHYS_64BIT
- gd->ram_size = 0x100000000;
+ gd->ram_size = 0x8000000;
其他
gd->ram_size = 0x8000000;
#endif
@@-65、14 +65、14 @@ int dram_init_banksize (void)
{
/*组0声明 DDR 低电平区域中可用的内存*/
gD->bD->bi_dram[0].start = CONFIG_SYS_SDRAM_base;
- gd->bd->bi_dram[0]。size = 0x8000000;
+ gd->bd->bi_dram[0].size = 0x40000000;
gd->ram_size = 0x8000000;
#ifdef CONFIG_PHYS_64BIT
/*组1声明 DDR 高电平区域中可用的内存*/
gD->bD->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE1;
-gd->bd->bi_dram[1].size = 0x8000000000;
- gd->ram_size = 0x100000000;
+ gd->bd->bi_dram[1].size = 0x40000000;
+ gd->ram_size = 0x8000000;
#endif
------------------------------------------------------------------
U-Boot SPL 2020.01脏污(2020年10月23日- 11:40:11 +0800)
SYSFW ABI:3.0 (固件版本0x0014 '20.04.1-v2020.04a (极好的 LLA')
j721e_ddrss_probe (dev=41c87cec)
j721e_ddrss_ofdata_TO_priv( dev=41c87cec)
j721e_ddrss_power_on (ddrss=41cd7244)
LPDDR4_Probe:通过
LPDDR4_Init:通过
--> LPDDR4初始化正在进行... <<<--
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 1、请求编号 = 0
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 0、请求编号 = 1
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 1、请求编号 = 2
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 0、请求编号 = 3
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 1、请求编号 = 4
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 2、请求编号 = 5
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 1、请求编号 = 6
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 2、请求编号 = 7
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 1、请求编号 = 8
j721e_LPDDR4_ack_freq_upd_req:接收到的频率变化请求:请求类型= 2、请求编号 = 9
LPDDR4_Start:通过
>>SPL:Board_init_r()
将 TLB 表从 ffc000更改为00000000
SPL_init
尝试从 MMC2引导
不支持的操作系统映像.. 尽管如此,还是跳
已加载-跳转到 U-Boot...
rproc_pre_probe:'r5f@5c00000':使用 FDT
k3_r5f_core_for_get_Memories
存储器 ATCM:总线地址0x840029dc、内存大小0x8000、cpu_addr 0x5c00000、dev_addr 0x0
内存 btcm:总线地址0x840029ec、内存大小0x8000、cpu_addr 0x5c10000、dev_addr 0x41010000
TI_sci_proc_request:proc_id = 6.
TI_sci_proc_get_status:proc_id = 6、boot_vector = 0xx、cfg_flags = 0x0、Ctrl_FLAGS = 0x200、STS = 0x0
TI_sci_proc_set_control:proc_id = 6、ctrl_set = 0x1、ctrl_clr = 0x0
TI_sci_proc_set_config:proc_id = 6、boot_vector = 0xx、cfg_set = 0x0、cfg_CLR = 0x200
TI_sci_proc_release:proc_id = 6
rproc_pre_probe:'r5f@5d00000':使用 FDT
k3_r5f_core_for_get_Memories
存储器 ATCM:总线地址0x84000ccc、存储器大小0x8000、CPU_addr 0x5d00000、DEV_addr 0x0
内存 btcm:总线地址0x84000cdc、内存大小0x8000、cpu_addr 0x5d10000、dev_addr 0x41010000
TI_sci_proc_request:proc_id = 7
TI_sci_proc_get_status:proc_id = 7、boot_vector = 0xx、cfg_flags = 0x0、Ctrl_FLAGS = 0x200、STS = 0x0
TI_sci_proc_set_control:proc_id = 7、ctrl_set = 0x1、ctrl_clr = 0x0
TI_sci_proc_set_config:proc_id = 7、boot_vector = 0xx、cfg_set = 0x0、cfg_CLR = 0x200
TI_sci_proc_release:proc_id = 7
rproc_pre_probe:'a72@0':使用 FDT
正在从 MMC 加载环境... ***警告-未找到 MMC 卡,使用默认环境
rproc_load:从地址0x88000000加载到大小为4254052字节的'r5f@5c00000'
TI_sci_proc_request:proc_id = 6.
TI_sci_proc_power_domain_on:dev_id = 245
k3_r5f_da_TO_va、num_MEMS = 2
===2 va = 0x5c00000、da = 0x0、DEV_addr = 0x0、大小= 0x6d8、mem_size = 0x8000
从 src 0x88000040加载地址0到0x5c00000 (1752字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa1100000
从 src 0x88001000加载地址1到0xa1100000 (140字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa1102000
从 src 0x88002000将地址2加载到0xa1102000 (0字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa205e680
从 src 0x88002000加载地址3到0xa205e680 (2032784字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa2250000
将地址4从 src 0x881f4000加载到0xa2250000 (0字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa23a0000
从 src 0x881f4000加载地址5到0xa23a0000 (1361264字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa24ec580
从 src 0x88340580将地址6加载到0xa24ec580 (839936字节)
k3_r5f_da_TO_va、num_MEMS = 2
===3 da =0xa267b280
从 src 0x8840d680将地址7加载到0xa267b280 (0字节)
TI_sci_proc_set_config:proc_id = 6、boot_vector = 0xx、cfg_set = 0x0、cfg_CLR = 0x0
TI_sci_proc_release:proc_id = 6
_rproc_ops_wrapper:正在启动 r5f@5c00000...
TI_sci_proc_request:proc_id = 6.
TI_sci_proc_set_control:proc_id = 6、ctrl_set = 0x0、ctrl_clr = 0x1
TI_sci_proc_release:proc_id = 6
Remoteproc 2已成功启动
**找不到文件/lib/firmware/j7-main-r5f0_1-fw **
_rproc_ops_wrapper:正在重置 r5f@5c00000...
**找不到文件/lib/firmware/j7-mcu-r5f0_0-fw **
rproc_load:从地址0x70000000加载到大小为512字节的'a72@0'
在 ARM64内核上启动 ATF...
_rproc_ops_wrapper:正在启动 a72@0...
正在关闭...
注意:BL31:v2.3 ():07.00.005-脏
注意:BL31:构建时间:2020年6月17日14:33:55
U-Boot SPL 2020.01脏污(2020年10月23日- 12:11:11 +0800)
SYSFW ABI:3.0 (固件版本0x0014 '20.04.1-v2020.04a (极好的 LLA')
重新定位之前使用的 SPL malloc() 0x3468字节(13KB)
>>SPL:Board_init_r()
将 TLB 表从 ff4000更改为100000000
SPL_init
检测到:J7X-base-CPB 修订版 E2
检测到:J7X-VSC8514-ETH 修订版 E2
尝试从 MMC2引导
跳转到 U-Boot
已加载-跳转到 U-Boot...
图像入口点:0x80800000
initcall:0000808a4b78
U-Boot 2020.01脏污(2020年10月23日- 12:11:11 +0800)
initcall:000080817344
U-Boot 代码:80800000 -> 808ED570 BSS:-> 8090B250
initcall:0000808174b0
initcall:000000008029e0
SoC:J721E SR1.0
initcall:000080817b90
型号:德州仪器 K3 J721E SoC
电路板:J721EX-PM1-SOM 修订版 E2
initcall:000080817490
DRAM:initcall:0000000080319c
initcall:000080817694
显示器长度:0010B250
RAM 大小:80000000
RAM 顶部:100000000
initcall:00008081713c
initcall:000080817150
将 TLB 表从 ff0000.0000更改为 ffc000
initcall:000080817578
initcall:000080817580
initcall:0000808172dc
在以下位置为 U-Boot 保留1068k:ffee4000
initcall:0000808172a0
在 fdec4000处为 malloc()保留32896k
initcall:000080817434
为电路板信息保留168字节、地址为:fdec3f58
initcall:000080817588
initcall:000080817264
为全局数据保留368个字节、地址为:fdec3de8
initcall:0000808171dc
将47776字节的 FDT 保留在:fdeb8348
initcall:000080817590
initcall:000080817598
initcall:0000808175b8
initcall:000080817710
initcall:0000808031c4
initcall:0000808175c4
RAM 配置:
组#0:8000000 1 GiB
组#1:880000000 1 GiB
DRAM:2GiB
initcall:0000808171b8
新的堆栈指针为:fdeb8330
initcall:0000808173f0
initcall:0000808175a0
initcall:0000808175a8
initcall:000080817378
重定位偏移为:7f6e4000
重新定位到 ffee4000、fdec3de8上的新 gd、fdeb8330上的 sp
initcall:00000000ffefb7e4
initcall:00000000ffefb7ec
initcall:0000000080817a18 (重定位为00000000ffefba18)
函数"0000000080817a18"是"initr_caches"
请帮您检查一下。
此致
Joe