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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox