工具/软件:Linux
大家好、我正在努力让基于 AM5728的定制板启动、并且我在内核启动过程的早期遇到了一个奇怪的挂起。 我认为这可能与我的 RAM 配置有关。 在启动期间、我的内核打印以下消息、然后无限期挂起:
正在启动内核...
[引用][0.000000] 在物理 CPU 0x0[/quot]上引导 Linux
[0.000000] Linux 版本4.9.28-geed43d1050 (Tom@tom-ThinkPad-P50s)(gcc 版本6.2.1 20161016 (Linaro GCC 6.2-2016.11))#6 SMP 优先于 Mon OCT 2 10:59:18 EDT 2017
[0.000000] CPU:ARMv7处理器[412fc0f2]修订版2 (ARMv7)、CR=30c5387d
[0.000000] CPU:可用的 div 指令:修补分部代码
[0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、PIPT 指令高速缓存
[0.0000M] 、共个:FDT:机器模型:Tom 的定制板
[0.000000] 引导控制台[earlycon0]已启用
[0.000000] EFI:从 FDT 获取 EFI 参数:
[0.000000] EFI:未找到 UEFI。
[0.000000] 保留存储器:创建了0x000095800000 (大小为56 MIB)的 CMA 存储器池
[ 0.000000]、共:保留内存:已初始化节点 ipu2_CMA@95800000、兼容 ID shared-dma-pool
[0.000000] 保留的存储器:创建了0x000099000000的 CMA 存储器池、大小为64 MiB
[ 0.00000]、共:保留内存:已初始化节点 dsp1_CMA@99000000、兼容 ID shared-dma-pool
[0.000000] 保留内存:创建了0x00009d000000的 CMA 内存池,大小为32 mib
[ 0.00000]、共:保留内存:已初始化节点 ipu1_CMA@9d000000、兼容 ID shared-dma-pool
[0.000000] 保留的存储器:创建了0x00009f000000的 CMA 存储器池、大小为8 mib
[ 0.00000]、共:保留内存:已初始化节点 dsp2_CMA@9f000000、兼容 ID shared-dma-pool
[0.000000] CMA:保留0x000000008e400000处的24 MIB
[0.000000] 内存策略:数据高速缓存 writealloc
数据高速缓存写入后挂起是否表示主系统 RAM 出现问题? 我的主板和 AM5728 EVM 之间的主要区别在于、我只有256MB 的 DDR3 RAM、并且时序不同。 为此、我更新了 u-boot 配置、u-boot 在 RAM 中运行和重新定位时似乎没有问题。 U-boot RAM 读取和写入测试还指示高度一致性。
根据 EVM、内核启动中的下一行应为:
[0.000000] OMAP4:将0x00000000ffd00000映射到 DRAM 隔离层的 fe600000
这就是我觉得问题可能与内存有关的原因。 此假设是否有效? 如果是什么原因会导致 u-boot 与我的 RAM 和 Linux 不能正常工作?
另一种可能是、由调试线路中 IPU/DSP 给出的地址正在访问它们不可用的存储器空间。 由于我们只有256MB 的 RAM、映射为0x8000000000至0x90000000、并且 DSP/IPU 的这些存储器地址超出了该范围(0x95800000、0x99000000、 0x9d000000、 0x9f000000等)、它们正在尝试访问它们根本无法访问的存储器?
这是完全启动、以防有人感兴趣。 完全解编译的器件树也是如此。

