Memory 平坦设备树中内存映射声明的意义

Memory 平坦设备树中内存映射声明的意义,memory,device-tree,Memory,Device Tree,我对内存映射的声明如下: memory@40000000 { device_type = "memory"; reg = <0 0x40000000 0 0x20000000>; }; memory@200000000 { device_type = "memory"; reg = <2 0x00000000 0 0x20000000>; }; memory@40000000 { 设备类型=“内存”; reg=; }; memory@2

我对内存映射的声明如下:

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

memory@200000000 {
    device_type = "memory";
    reg = <2 0x00000000 0 0x20000000>;
};
memory@40000000 {
设备类型=“内存”;
reg=;
};
memory@200000000 {
设备类型=“内存”;
reg=;
};
reg(基本尺寸)中每个数字的含义是什么?

这两个语句

reg = <0 0x40000000 0 0x20000000>;
reg = <2 0x00000000 0 0x20000000>;
因此,在两个不同的地址段上有两个512MiB RAM范围

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

#address-cells = <2>;
#size-cells = <2>;
#地址单元格=;
#大小单元格=;

实际上,上面我为arm32体系结构声明的内存映射。我同意地址单元格和大小单元格方面。我必须使用IOMMU将地址空间从32位转换为40位寻址方案。
#address-cells = <2>;
#size-cells = <2>;