Re: [PATCH v4 5/6] of: Add #address-cells/#size-cells in the device-tree root empty node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 02, 2024 at 02:15:17PM +0100, Herve Codina wrote:
> On systems where ACPI is enabled or when a device-tree is not passed to
> the kernel by the bootloader, a device-tree root empty node is created.
> This device-tree root empty node does not have the #address-cells and
> the #size-cells properties
> 
> This leads to the use of the default address cells and size cells values
> which are defined in the code to 1 for the address cells value and 1 for
> the size cells value.
> 
> According to the devicetree specification and the OpenFirmware standard
> (IEEE 1275-1994) the default value for #address-cells should be 2.
> 
> Also, according to the devicetree specification, the #address-cells and
> the #size-cells are required properties in the root node.
> 
> The device tree compiler already uses 2 as default value for address
> cells and 1 for size cells. The powerpc PROM code also uses 2 as default
> value for address cells and 1 for size cells. Modern implementation
> should have the #address-cells and the #size-cells properties set and
> should not rely on default values.
> 
> On x86, this root empty node is used and the code default values are
> used.
> 
> In preparation of the support for device-tree overlay on PCI devices
> feature on x86 (i.e. the creation of the PCI root bus device-tree node),
> the default value for #address-cells needs to be updated. Indeed, on
> x86_64, addresses are on 64bits and the upper part of an address is
> needed for correct address translations. On x86_32 having the default
> value updated does not lead to issues while the upper part of a 64-bit
> value is zero.
> 
> Changing the default value for all architectures may break device-tree
> compatibility. Indeed, existing dts file without the #address-cells
> property set in the root node will not be compatible with this
> modification.
> 
> Instead of updating default values, add both required #address-cells
> and #size-cells properties in the device-tree empty node.
> 
> Use 2 for both properties value in order to fully support 64-bit
> addresses and sizes on systems using this empty root node.
> 
> Signed-off-by: Herve Codina <herve.codina@xxxxxxxxxxx>
> ---
>  drivers/of/empty_root.dts | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)

This also fixes unittest hitting a warning added for 6.13. So 
I've applied this patch as a fix.

Rob




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux