器件型号:XTCIEVMK2LX
工具/软件:Linux
当 Linux 在 EVM 板上启动时、会打印有关 CMA 和 DMA 存储器池的以下行:
[0.000000]保留内存:创建了0x000000081f800000的 CMA 内存池,大小为8 MIB
[0.000000]保留存储器:初始化节点 DSP_common_CMA_pool、兼容 id shared-dma-pool
[0.000000]保留存储器:已创建 DMA 存储器池、地址为0x0000000820000000、大小为32 mib
[0.000000]保留存储器:已初始化节点 DSP_RESERVE_mpm_area、兼容 id shared-dma-pool
转储/proc/device-tree/reserved-memory/dsp_reserved_mpm_area/reg 与内核启动日志中的32 MIB 大小一致
root@k2hk EVM:~# od -X /proc/device-tree/reserved-memory/dsp_reserved_mpm_area/reg
0000000 08000000 00000020 00000000 00000002
0000020
但这与内核树中的 DTS 文件不匹配(ti-processor-sdk-linux-rt-k2hk EVM-03.02.00.05/board-support/linux-rt-4.4.4.32.+gitAUTOINC+e26c84b0ac-ge26c84b0ac/arch/arm/boot/dts/keystone-k2evm-dts)、其内容如下:
DSP_common_mpm_area:DSP_reserved_mpm_area{
兼容="共享 dma-pool ";
REG =<0x00000008 0x20000000 0x00000000 0x20000000>;
无地图;
状态="正常";
};
根据此定义、DSP_reerved_mpm_area 不应该是512MBytes?
此外、当我重新编译自己的内核时、我发现生成的 DTB 文件也显示为32 MB:
SWILLIAMS-LOCAL@SWILLIAMS-ThinkPad-T530:~/ti-processor-sdk-linux-rt-k2hk evm-03.02.00.05/board-support/linux-rt-4.4.4.3.32+gitAUTOINC+e26c84b0ac-ge26c84b0ac/tb/arm/boot/dts/boot_dts-p-git-dts -dtdtdT -gp_grep dtdtdts | dtdtdtdtdtdts -gt -dtdts -git_git_git_g
DSP_RESERVE_mpm_area{
兼容="共享 dma-pool ";
REG =<0x8 0x20000000 0x0 0x2000000>;
无地图;
状态="正常";
};
请注意、当源文件显示为0x2000000 (再增加一个零)时、大小已截断为0x02000000
这里发生什么事了?