情况是,我需要两个 ram 区域用于 Linux 内核。这些区域不是按顺序排列的。并且区域之间必须是“禁止接触”区域。这是Arm设备。
例如:
reg = <0x24000000 0x7FFFF> /* for region 1 */
/* between = no touch area */
reg = <0x38000000 0xFFFF> /* for region 2 */
无法使用这两个区域之间的区域。
是否可以这样分配区域?
例如,拥有自己的内存节点,拥有自己的地址和寄存器,具有一个内存节点但在寄存器中包括两个区域的情况是: 内核总是尝试从 0x24000000 到 0x3800FFFF 分配内存(显然分配失败并产生内核恐慌)。如果我将子节点直接放入内存节点,它不会分配任何东西。
我也尝试过通过保留内存节点使用虚拟区域,但内核仍然尝试分配“无触摸区域”。
提前致谢。
memory@24000000 {
reg = <0x24000000 0x7FFFF>;
};
memory@38000000 {
reg = <0x38000000 0xFFFF>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
resrved@24000000 {
no-map;
reg = <0x24000000 0x1400FFFF>;
};
};