Message ID | c6498d8cf8dfade1980b566e99a9a91551fd8b53.1742418429.git.andrea.porta@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for RaspberryPi RP1 PCI device using a DT overlay | expand |
Hi Andrea, Am 19.03.25 um 22:52 schrieb Andrea della Porta: > Add the board 'monolithic' DTS for RaspberryPi 5 which includes > the RP1 node definition. The inclusion treeis as follow (the > arrow points to the includer): > > rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b-monolithic.dts > ^ > | > bcm2712-rpi-5-b.dts sorry for the delay. I'm not happy with the monolithic appendix. How about bcm2712-rpi-5-b-rp1.dts or something more self-explaining?Regards > This is designed to maximize the compatibility with downstream DT > while ensuring that a fully defined DT (one which includes the RP1 > node as opposed to load it from overlay at runtime) is present > since early boot stage. > > Signed-off-by: Andrea della Porta <andrea.porta@suse.com> > --- > Right now bcm2712-rpi-5-b.dts is the overlay-ready DT which will make > the RP1 driver to load the RP1 dtb overlay at runtime, while > bcm2712-rpi-5-b-monolithic.dts is the fully defined one (i.e. it > already contains RP1 node, so no overlay is loaded nor needed). > Depending on which one we want to be considered the default, we can > swap the file names to align with downstream naming convention that > has only the fully defined DT called bcm2712-rpi-5-b.dts. Could you please move some of this good explanation into this dts file as comment? > --- > arch/arm64/boot/dts/broadcom/Makefile | 1 + > .../boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts | 8 ++++++++ > 2 files changed, 9 insertions(+) > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile > index 3d0efb93b06d..4836c6da5bee 100644 > --- a/arch/arm64/boot/dts/broadcom/Makefile > +++ b/arch/arm64/boot/dts/broadcom/Makefile > @@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ > bcm2711-rpi-4-b.dtb \ > bcm2711-rpi-cm4-io.dtb \ > bcm2712-rpi-5-b.dtb \ > + bcm2712-rpi-5-b-monolithic.dtb \ > bcm2712-d-rpi-5-b.dtb \ > bcm2837-rpi-3-a-plus.dtb \ > bcm2837-rpi-3-b.dtb \ > diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > new file mode 100644 > index 000000000000..3aeee678b0bc > --- /dev/null > +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > @@ -0,0 +1,8 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/dts-v1/; > + > +#include "bcm2712-rpi-5-b.dts" > + > +&pcie2 { > + #include "rp1-nexus.dtsi" > +};
Hi Stefan, On 13:48 Mon 14 Apr , Stefan Wahren wrote: > Hi Andrea, > > Am 19.03.25 um 22:52 schrieb Andrea della Porta: > > Add the board 'monolithic' DTS for RaspberryPi 5 which includes > > the RP1 node definition. The inclusion treeis as follow (the > > arrow points to the includer): > > > > rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b-monolithic.dts > > ^ > > | > > bcm2712-rpi-5-b.dts > sorry for the delay. I'm not happy with the monolithic appendix. > > How about bcm2712-rpi-5-b-rp1.dts or something more self-explaining?Regards Sure, good catch. I'd go even further saying that we can rename (or merge if the destination file already exists) as: bcm2712-rpi-5-b.dts -> bcm2712-rpi-5-b-norp1.dts (or some better suffix other than -norp1) bcm2712-rpi-5-b-monolithic.dts -> bcm2712-rpi-5-b.dts so the monolithic one, which seems to be the 'safest' option as of now, would be the default dtb. Do you think it could be ok? > > This is designed to maximize the compatibility with downstream DT > > while ensuring that a fully defined DT (one which includes the RP1 > > node as opposed to load it from overlay at runtime) is present > > since early boot stage. > > > > Signed-off-by: Andrea della Porta <andrea.porta@suse.com> > > --- > > Right now bcm2712-rpi-5-b.dts is the overlay-ready DT which will make > > the RP1 driver to load the RP1 dtb overlay at runtime, while > > bcm2712-rpi-5-b-monolithic.dts is the fully defined one (i.e. it > > already contains RP1 node, so no overlay is loaded nor needed). > > Depending on which one we want to be considered the default, we can > > swap the file names to align with downstream naming convention that > > has only the fully defined DT called bcm2712-rpi-5-b.dts. > Could you please move some of this good explanation into this dts file as > comment? Sure. Thanks, Andrea > > --- > > arch/arm64/boot/dts/broadcom/Makefile | 1 + > > .../boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts | 8 ++++++++ > > 2 files changed, 9 insertions(+) > > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > > > diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile > > index 3d0efb93b06d..4836c6da5bee 100644 > > --- a/arch/arm64/boot/dts/broadcom/Makefile > > +++ b/arch/arm64/boot/dts/broadcom/Makefile > > @@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ > > bcm2711-rpi-4-b.dtb \ > > bcm2711-rpi-cm4-io.dtb \ > > bcm2712-rpi-5-b.dtb \ > > + bcm2712-rpi-5-b-monolithic.dtb \ > > bcm2712-d-rpi-5-b.dtb \ > > bcm2837-rpi-3-a-plus.dtb \ > > bcm2837-rpi-3-b.dtb \ > > diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > new file mode 100644 > > index 000000000000..3aeee678b0bc > > --- /dev/null > > +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > @@ -0,0 +1,8 @@ > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > > +/dts-v1/; > > + > > +#include "bcm2712-rpi-5-b.dts" > > + > > +&pcie2 { > > + #include "rp1-nexus.dtsi" > > +}; >
Hi Andrea, Am 16.04.25 um 19:43 schrieb Andrea della Porta: > Hi Stefan, > > On 13:48 Mon 14 Apr , Stefan Wahren wrote: >> Hi Andrea, >> >> Am 19.03.25 um 22:52 schrieb Andrea della Porta: >>> Add the board 'monolithic' DTS for RaspberryPi 5 which includes >>> the RP1 node definition. The inclusion treeis as follow (the >>> arrow points to the includer): >>> >>> rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b-monolithic.dts >>> ^ >>> | >>> bcm2712-rpi-5-b.dts >> sorry for the delay. I'm not happy with the monolithic appendix. >> >> How about bcm2712-rpi-5-b-rp1.dts or something more self-explaining?Regards > Sure, good catch. I'd go even further saying that we can rename (or merge if > the destination file already exists) as: > > bcm2712-rpi-5-b.dts -> bcm2712-rpi-5-b-norp1.dts (or some better suffix other than -norp1) > bcm2712-rpi-5-b-monolithic.dts -> bcm2712-rpi-5-b.dts > > so the monolithic one, which seems to be the 'safest' option as of now, > would be the default dtb. Do you think it could be ok? i like the idea (include rp1 into default dtb), but not a fan of negative logic in naming. Unfortunately I don't have better idea. Regards > >>> This is designed to maximize the compatibility with downstream DT >>> while ensuring that a fully defined DT (one which includes the RP1 >>> node as opposed to load it from overlay at runtime) is present >>> since early boot stage. >>> >>> Signed-off-by: Andrea della Porta <andrea.porta@suse.com> >>> --- >>> Right now bcm2712-rpi-5-b.dts is the overlay-ready DT which will make >>> the RP1 driver to load the RP1 dtb overlay at runtime, while >>> bcm2712-rpi-5-b-monolithic.dts is the fully defined one (i.e. it >>> already contains RP1 node, so no overlay is loaded nor needed). >>> Depending on which one we want to be considered the default, we can >>> swap the file names to align with downstream naming convention that >>> has only the fully defined DT called bcm2712-rpi-5-b.dts. >> Could you please move some of this good explanation into this dts file as >> comment? > Sure. > > Thanks, > Andrea > >>> --- >>> arch/arm64/boot/dts/broadcom/Makefile | 1 + >>> .../boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts | 8 ++++++++ >>> 2 files changed, 9 insertions(+) >>> create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts >>> >>> diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile >>> index 3d0efb93b06d..4836c6da5bee 100644 >>> --- a/arch/arm64/boot/dts/broadcom/Makefile >>> +++ b/arch/arm64/boot/dts/broadcom/Makefile >>> @@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ >>> bcm2711-rpi-4-b.dtb \ >>> bcm2711-rpi-cm4-io.dtb \ >>> bcm2712-rpi-5-b.dtb \ >>> + bcm2712-rpi-5-b-monolithic.dtb \ >>> bcm2712-d-rpi-5-b.dtb \ >>> bcm2837-rpi-3-a-plus.dtb \ >>> bcm2837-rpi-3-b.dtb \ >>> diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts >>> new file mode 100644 >>> index 000000000000..3aeee678b0bc >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts >>> @@ -0,0 +1,8 @@ >>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT) >>> +/dts-v1/; >>> + >>> +#include "bcm2712-rpi-5-b.dts" >>> + >>> +&pcie2 { >>> + #include "rp1-nexus.dtsi" >>> +};
Hi Stefan, On 20:18 Wed 16 Apr , Stefan Wahren wrote: > Hi Andrea, > > Am 16.04.25 um 19:43 schrieb Andrea della Porta: > > Hi Stefan, > > > > On 13:48 Mon 14 Apr , Stefan Wahren wrote: > > > Hi Andrea, > > > > > > Am 19.03.25 um 22:52 schrieb Andrea della Porta: > > > > Add the board 'monolithic' DTS for RaspberryPi 5 which includes > > > > the RP1 node definition. The inclusion treeis as follow (the > > > > arrow points to the includer): > > > > > > > > rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b-monolithic.dts > > > > ^ > > > > | > > > > bcm2712-rpi-5-b.dts > > > sorry for the delay. I'm not happy with the monolithic appendix. > > > > > > How about bcm2712-rpi-5-b-rp1.dts or something more self-explaining?Regards > > Sure, good catch. I'd go even further saying that we can rename (or merge if > > the destination file already exists) as: > > > > bcm2712-rpi-5-b.dts -> bcm2712-rpi-5-b-norp1.dts (or some better suffix other than -norp1) > > bcm2712-rpi-5-b-monolithic.dts -> bcm2712-rpi-5-b.dts > > > > so the monolithic one, which seems to be the 'safest' option as of now, > > would be the default dtb. Do you think it could be ok? > i like the idea (include rp1 into default dtb), but not a fan of negative > logic in naming. Unfortunately I don't have better idea. > Hmm ok... I'd propose 'bcm2712-rpi-5-b-ovl-rp1.dts'. Could it work? Regards, Andrea > Regards > > > > > > This is designed to maximize the compatibility with downstream DT > > > > while ensuring that a fully defined DT (one which includes the RP1 > > > > node as opposed to load it from overlay at runtime) is present > > > > since early boot stage. > > > > > > > > Signed-off-by: Andrea della Porta <andrea.porta@suse.com> > > > > --- > > > > Right now bcm2712-rpi-5-b.dts is the overlay-ready DT which will make > > > > the RP1 driver to load the RP1 dtb overlay at runtime, while > > > > bcm2712-rpi-5-b-monolithic.dts is the fully defined one (i.e. it > > > > already contains RP1 node, so no overlay is loaded nor needed). > > > > Depending on which one we want to be considered the default, we can > > > > swap the file names to align with downstream naming convention that > > > > has only the fully defined DT called bcm2712-rpi-5-b.dts. > > > Could you please move some of this good explanation into this dts file as > > > comment? > > Sure. > > > > Thanks, > > Andrea > > > > > > --- > > > > arch/arm64/boot/dts/broadcom/Makefile | 1 + > > > > .../boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts | 8 ++++++++ > > > > 2 files changed, 9 insertions(+) > > > > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > > > > > > > diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile > > > > index 3d0efb93b06d..4836c6da5bee 100644 > > > > --- a/arch/arm64/boot/dts/broadcom/Makefile > > > > +++ b/arch/arm64/boot/dts/broadcom/Makefile > > > > @@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ > > > > bcm2711-rpi-4-b.dtb \ > > > > bcm2711-rpi-cm4-io.dtb \ > > > > bcm2712-rpi-5-b.dtb \ > > > > + bcm2712-rpi-5-b-monolithic.dtb \ > > > > bcm2712-d-rpi-5-b.dtb \ > > > > bcm2837-rpi-3-a-plus.dtb \ > > > > bcm2837-rpi-3-b.dtb \ > > > > diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > > > new file mode 100644 > > > > index 000000000000..3aeee678b0bc > > > > --- /dev/null > > > > +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts > > > > @@ -0,0 +1,8 @@ > > > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > > > > +/dts-v1/; > > > > + > > > > +#include "bcm2712-rpi-5-b.dts" > > > > + > > > > +&pcie2 { > > > > + #include "rp1-nexus.dtsi" > > > > +}; >
diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile index 3d0efb93b06d..4836c6da5bee 100644 --- a/arch/arm64/boot/dts/broadcom/Makefile +++ b/arch/arm64/boot/dts/broadcom/Makefile @@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ bcm2711-rpi-4-b.dtb \ bcm2711-rpi-cm4-io.dtb \ bcm2712-rpi-5-b.dtb \ + bcm2712-rpi-5-b-monolithic.dtb \ bcm2712-d-rpi-5-b.dtb \ bcm2837-rpi-3-a-plus.dtb \ bcm2837-rpi-3-b.dtb \ diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts new file mode 100644 index 000000000000..3aeee678b0bc --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/dts-v1/; + +#include "bcm2712-rpi-5-b.dts" + +&pcie2 { + #include "rp1-nexus.dtsi" +};
Add the board 'monolithic' DTS for RaspberryPi 5 which includes the RP1 node definition. The inclusion treeis as follow (the arrow points to the includer): rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b-monolithic.dts ^ | bcm2712-rpi-5-b.dts This is designed to maximize the compatibility with downstream DT while ensuring that a fully defined DT (one which includes the RP1 node as opposed to load it from overlay at runtime) is present since early boot stage. Signed-off-by: Andrea della Porta <andrea.porta@suse.com> --- Right now bcm2712-rpi-5-b.dts is the overlay-ready DT which will make the RP1 driver to load the RP1 dtb overlay at runtime, while bcm2712-rpi-5-b-monolithic.dts is the fully defined one (i.e. it already contains RP1 node, so no overlay is loaded nor needed). Depending on which one we want to be considered the default, we can swap the file names to align with downstream naming convention that has only the fully defined DT called bcm2712-rpi-5-b.dts. --- arch/arm64/boot/dts/broadcom/Makefile | 1 + .../boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-monolithic.dts