扁平设备树中内存映射声明的含义

Meaning of declaration of Memory map in flattened device tree

我有如下内存映射声明:

memory@40000000 {
    device_type = "memory";
    reg = <0 0x40000000 0 0x20000000>;
};

memory@200000000 {
    device_type = "memory";
    reg = <2 0x00000000 0 0x20000000>;
};

reg(基本尺寸)中每个数字的含义是什么?

两种说法

reg = <0 0x40000000 0 0x20000000>;
reg = <2 0x00000000 0 0x20000000>;

意味着,使用了 64 位寻址方案。但是,设备树中的每个数字 'cell' 代表一个 32 位字段。因此,这些数字必须一起读作:

Addr: 0x040000000 Size: 0x020000000
Addr: 0x200000000 Size: 0x020000000

因此,您在两个不同的地址段有两个 512MiB RAM 范围。

请在您的 dts/dtsi 文件中查找声明,例如:

#address-cells = <2>;
#size-cells = <2>;