【发布时间】:2014-10-04 01:27:11
【问题描述】:
我有一个比格犬骨头,它有 256Mb 的内存,里面有 dtb 文件。
memory{
device_type = "memory";
reg = <0x80000000 0x10000000>;
};
我希望通过以下更改将可用物理内存减少 1Mb,我计划在我的驱动程序中使用 io_pfn_page_range() 访问这些内存。
memory{
device_type = "memory";
reg = <0x80000000 0x0FF00000>;
};
但即使在更改之后,/proc/meminfo 也不会反映更改。我是不是错过了什么。提前致谢。
拉克什
【问题讨论】:
-
检查 U-Boot(或任何引导加载程序)是否正在构建并提供 ATAG。检查内核配置是否允许 ATAG 扩充设备树,即 ""支持传统 ATAGS 引导数据传递" 和 "用传统 ATAG 信息补充附加的 DTB". 检查内核命令行。
-
您是否尝试过任何内核命令行选项?
-
确保 u-boot 不会覆盖您的更改。 u-boot 足够聪明,可以知道系统中的内存总量,并且会自动修改传递给内核的设备树。如果您手动编辑设备树,这些更改将消失。
标签: linux-kernel linux-device-driver embedded-linux device-tree