【问题标题】:Reserving physical memory using flattened device tree使用扁平设备树保留物理内存
【发布时间】: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


【解决方案1】:

使用 mem=255M 通过 uEnv.txt 传递的引导参数会进行所需的更改。但是不遵守 dtb 更改。

【讨论】:

    【解决方案2】:

    devices-tree(dts) 更改将被 uboot 覆盖

    选项1:

    Add mem=255M , in bootargs
    Eg: setenv bootargs 'root=/dev/ram rw console=ttyS0,115200 mem=255M
    

    选项2:

    setenv bootm_size 0xFF00000
    

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 2018-01-16
      • 2014-03-04
      • 1970-01-01
      • 2012-01-20
      相关资源
      最近更新 更多