hw/ppc: e500: Add missing <ranges> in the eTSEC node
authorBin Meng <bin.meng@windriver.com>
Wed, 24 Feb 2021 09:28:39 +0000 (17:28 +0800)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 9 Mar 2021 22:07:09 +0000 (09:07 +1100)
commite5943b00d35efc68ca72ed304cfca98a9f3a647c
treea11036d1595318d3856415bd3770ec90970d540a
parentf149c9b7f942c56f30e66be034f669b95255474e
hw/ppc: e500: Add missing <ranges> in the eTSEC node

The eTSEC node should provide an empty <ranges> property in the
eTSEC node, otherwise of_translate_address() in the Linux kernel
fails to get the eTSEC register base, reporting:

  OF: ** translation for device /platform@f00000000/ethernet@0/queue-group **
  OF: bus is default (na=1, ns=1) on /platform@f00000000/ethernet@0
  OF: translating address: 00000000
  OF: parent bus is default (na=1, ns=1) on /platform@f00000000
  OF: no ranges; cannot translate

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

  If the property is not present in a bus node, it is assumed that
  no mapping exists between children of the node and the parent
  address space.

This is why of_translate_address() aborts the address translation.
Apparently U-Boot devicetree parser seems to be tolerant with
missing <ranges> as this was not noticed when testing with U-Boot.
The empty <ranges> property is present in all kernel shipped dtsi
files for eTSEC, Let's add it to conform with the spec.

[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>
Message-Id: <1614158919-9473-1-git-send-email-bmeng.cn@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/e500.c