From: Herve Codina <herve.codina@bootlin.com>
To: Rob Herring <robh@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Saravana Kannan <saravanak@google.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Lizhi Hou <lizhi.hou@amd.com>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-pci@vger.kernel.org,
Allan Nielsen <allan.nielsen@microchip.com>,
Horatiu Vultur <horatiu.vultur@microchip.com>,
Steen Hegelund <steen.hegelund@microchip.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH v2 5/6] of: Add #address-cells/#size-cells in the device-tree root empty node
Date: Fri, 8 Nov 2024 17:29:46 +0100 [thread overview]
Message-ID: <20241108172946.7233825e@bootlin.com> (raw)
In-Reply-To: <CAL_JsqJ-05tB7QSjmGvFLbKFGmzezJhukDGS3fP9GFtp2=BWOA@mail.gmail.com>
Hi Rob,
On Fri, 8 Nov 2024 10:03:31 -0600
Rob Herring <robh@kernel.org> wrote:
> On Fri, Nov 8, 2024 at 8:36 AM Herve Codina <herve.codina@bootlin.com> 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 doesn't have the #address-cells and the
>
> and the?
#size-cells properties.
Will be updated.
>
> > This leads to the use of the default address cells and size cells values
> > which are defined in the code to 1 for address cells and 1 for size cells
>
> Missing period.
Will be updated.
>
> >
> > 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.
> >
> > 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 uppert part of a 64bits
>
> upper
Will be updated.
>
> > address 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 required #address-cells and
>
> and?
#size-cells properties in the device-tree empty root node.
Will be updated.
>
> >
> > Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> > ---
> > drivers/of/empty_root.dts | 8 +++++++-
> > 1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/of/empty_root.dts b/drivers/of/empty_root.dts
> > index cf9e97a60f48..5017579f34dc 100644
> > --- a/drivers/of/empty_root.dts
> > +++ b/drivers/of/empty_root.dts
> > @@ -2,5 +2,11 @@
> > /dts-v1/;
> >
> > / {
> > -
> > + /*
> > + * #address-cells/#size-cells are required properties at root node
> > + * according to the devicetree specification. Use same values as default
> > + * values mentioned for #address-cells/#size-cells properties.
>
> Which default? We have multiple...
I will reword:
Use values mentioned in the devicetree specification as default values
for #address-cells and #size-cells properties
>
> There's also dtc's idea of default which IIRC is 2 and 1 like OpenFirmware.
I can re-add this part in the commit log:
The device tree compiler already uses 2 as default value for address cells
and 1 for size cells. The powerpc PROM code also use 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.
In your opinion, does it make sense?
>
> > + */
> > + #address-cells = <0x02>;
> > + #size-cells = <0x01>;
>
> I think we should just do 2 cells for size.
Why using 2 for #size-cells?
I understand that allows to have size defined on 64bits but is that needed?
How to justify this value here?
Best regards,
Hervé
next prev parent reply other threads:[~2024-11-08 16:29 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 14:35 [PATCH v2 0/6] Add support for the PCI host bridge device-tree node creation Herve Codina
2024-11-08 14:35 ` [PATCH v2 1/6] driver core: Introduce device_{add,remove}_of_node() Herve Codina
2024-11-08 14:35 ` [PATCH v2 2/6] PCI: of: Use device_{add,remove}_of_node() to attach of_node to existing device Herve Codina
2024-11-08 14:35 ` [PATCH v2 3/6] PCI: of_property: Add support for NULL pdev in of_pci_set_address() Herve Codina
2024-11-08 14:35 ` [PATCH v2 4/6] PCI: of_property: Constify parameter in of_pci_get_addr_flags() Herve Codina
2024-11-08 14:35 ` [PATCH v2 5/6] of: Add #address-cells/#size-cells in the device-tree root empty node Herve Codina
2024-11-08 16:03 ` Rob Herring
2024-11-08 16:29 ` Herve Codina [this message]
2024-11-08 17:24 ` Rob Herring
2024-11-08 17:39 ` Herve Codina
2024-11-08 14:35 ` [PATCH v2 6/6] PCI: of: Create device-tree PCI host bridge node Herve Codina
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241108172946.7233825e@bootlin.com \
--to=herve.codina@bootlin.com \
--cc=allan.nielsen@microchip.com \
--cc=bhelgaas@google.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=horatiu.vultur@microchip.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lizhi.hou@amd.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=steen.hegelund@microchip.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.