diff mbox series

hw/ppc: e500: Add missing #address-cells and #size-cells in the eTSEC node

Message ID 1613660319-76960-1-git-send-email-bmeng.cn@gmail.com
State Superseded
Headers show
Series hw/ppc: e500: Add missing #address-cells and #size-cells in the eTSEC node | expand

Commit Message

Bin Meng Feb. 18, 2021, 2:58 p.m. UTC
From: Bin Meng <bin.meng@windriver.com>

Per devicetree spec v0.3 [1] chapter 2.3.5:

The #address-cells and #size-cells properties are not inherited
from ancestors in the devicetree. They shall be explicitly defined.
If missing, a client program should assume a default value of 2
for #address-cells, and a value of 1 for #size-cells.

These properties are currently missing, causing the <reg> property
to be incorrectly parsed using the default values.

[1] https://github.com/devicetree-org/devicetree-specification/releases/download/v0.3/devicetree-specification-v0.3.pdf

Fixes: fdfb7f2cdb2d ("e500: Add support for eTSEC in device tree")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---

 hw/ppc/e500.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

David Gibson Feb. 18, 2021, 10:51 p.m. UTC | #1
On Thu, Feb 18, 2021 at 10:58:39PM +0800, Bin Meng wrote:
> From: Bin Meng <bin.meng@windriver.com>
> 
> Per devicetree spec v0.3 [1] chapter 2.3.5:
> 
> The #address-cells and #size-cells properties are not inherited
> from ancestors in the devicetree. They shall be explicitly defined.
> If missing, a client program should assume a default value of 2
> for #address-cells, and a value of 1 for #size-cells.
> 
> These properties are currently missing, causing the <reg> property
> to be incorrectly parsed using the default values.

Well, specifically the reg property of the queue-group subnode, rather
than the etsec node itself.

Applied to ppc-for-6.0.

> 
> [1] https://github.com/devicetree-org/devicetree-specification/releases/download/v0.3/devicetree-specification-v0.3.pdf
> 
> Fixes: fdfb7f2cdb2d ("e500: Add support for eTSEC in device tree")
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
> ---
> 
>  hw/ppc/e500.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
> index 01517a6..c84a021 100644
> --- a/hw/ppc/e500.c
> +++ b/hw/ppc/e500.c
> @@ -236,6 +236,8 @@ static int create_devtree_etsec(SysBusDevice *sbdev, PlatformDevtreeData *data)
>      qemu_fdt_setprop_string(fdt, node, "model", "eTSEC");
>      qemu_fdt_setprop(fdt, node, "local-mac-address", etsec->conf.macaddr.a, 6);
>      qemu_fdt_setprop_cells(fdt, node, "fixed-link", 0, 1, 1000, 0, 0);
> +    qemu_fdt_setprop_cells(fdt, node, "#size-cells", 1);
> +    qemu_fdt_setprop_cells(fdt, node, "#address-cells", 1);
>  
>      qemu_fdt_add_subnode(fdt, group);
>      qemu_fdt_setprop_cells(fdt, group, "reg", mmio0, 0x1000);
diff mbox series

Patch

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index 01517a6..c84a021 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -236,6 +236,8 @@  static int create_devtree_etsec(SysBusDevice *sbdev, PlatformDevtreeData *data)
     qemu_fdt_setprop_string(fdt, node, "model", "eTSEC");
     qemu_fdt_setprop(fdt, node, "local-mac-address", etsec->conf.macaddr.a, 6);
     qemu_fdt_setprop_cells(fdt, node, "fixed-link", 0, 1, 1000, 0, 0);
+    qemu_fdt_setprop_cells(fdt, node, "#size-cells", 1);
+    qemu_fdt_setprop_cells(fdt, node, "#address-cells", 1);
 
     qemu_fdt_add_subnode(fdt, group);
     qemu_fdt_setprop_cells(fdt, group, "reg", mmio0, 0x1000);