Message ID | 20231005155618.700312-20-peter.griffin@linaro.org |
---|---|
State | New |
Headers | show |
Series | Add minimal Tensor/GS101 SoC support and Oriole/Pixel6 board | expand |
Hi Peter, On Thu, Oct 5, 2023 at 5:58 PM Peter Griffin <peter.griffin@linaro.org> wrote: > The LK bootloader on Pixel6 searches for a dt overlay in the > dtbo partition with a board_id and board_rev that matches > what is baked into the device. If this overlay is not present > then the phone will bootloop in fastboot and you can't boot > the upstream kernel. > > This commit adds a dtbo for the production oriole variant. > The other pre-production board overlays are not included > at this time. > > Adding the dtbo here allows for a better experience when > building/booting the upstream kernel on Pixel devices > as all the DT required to boot the device will be created > as part of the kernel build process. Rather than having to > fetch the dtbo from some other repo. > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Thanks for your patch! > --- /dev/null > +++ b/arch/arm64/boot/dts/google/gs101-oriole.dtso > @@ -0,0 +1,21 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Oriole DVT Device Tree > + * > + * Copyright 2021-2023 Google,LLC > + */ > + > +/dts-v1/; > +/plugin/; > + > +/ { > + board_id = <0x20304>; > + board_rev = <0x10000>; > + fragment@boardbase { > + target-path="/"; > + __overlay__ { > + model = "Oriole DVT"; > + compatible = "google,gs101-oriole"; > + }; > + }; Please use sugar-syntax instead of manually defining fragment/target-path/__overlay__ constructs. You can override these properties in the root node of the base DTS using the much simpler: &{/} { model = "Oriole DVT"; compatible = "google,gs101-oriole"; }; The generated DTBO should be identical (modulo naming). > +}; Gr{oetje,eeting}s, Geert
On Thu, Oct 05, 2023 at 04:56:16PM +0100, Peter Griffin wrote: > The LK bootloader on Pixel6 searches for a dt overlay in the > dtbo partition with a board_id and board_rev that matches > what is baked into the device. If this overlay is not present > then the phone will bootloop in fastboot and you can't boot > the upstream kernel. > > This commit adds a dtbo for the production oriole variant. > The other pre-production board overlays are not included > at this time. > > Adding the dtbo here allows for a better experience when > building/booting the upstream kernel on Pixel devices > as all the DT required to boot the device will be created > as part of the kernel build process. Rather than having to > fetch the dtbo from some other repo. > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > --- > arch/arm64/boot/dts/google/Makefile | 1 + > arch/arm64/boot/dts/google/gs101-oriole.dtso | 21 ++++++++++++++++++++ > 2 files changed, 22 insertions(+) > create mode 100644 arch/arm64/boot/dts/google/gs101-oriole.dtso > > diff --git a/arch/arm64/boot/dts/google/Makefile b/arch/arm64/boot/dts/google/Makefile > index 6d2026a767d4..3f1761f8daa9 100644 > --- a/arch/arm64/boot/dts/google/Makefile > +++ b/arch/arm64/boot/dts/google/Makefile > @@ -2,5 +2,6 @@ > > dtb-$(CONFIG_ARCH_GOOGLE_TENSOR) += \ > gs101-oriole.dtb \ > + gs101-oriole.dtbo Overlays in the kernel must be able to be applied to a base DT in the kernel. Add a rule to apply this (hint: a '-dtbs' variable does this similar to -objs variables). > diff --git a/arch/arm64/boot/dts/google/gs101-oriole.dtso b/arch/arm64/boot/dts/google/gs101-oriole.dtso > new file mode 100644 > index 000000000000..50832fd94204 > --- /dev/null > +++ b/arch/arm64/boot/dts/google/gs101-oriole.dtso > @@ -0,0 +1,21 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Oriole DVT Device Tree Doesn't DVT mean pre-production? Rob
On 10/05/2023, Krzysztof Kozlowski wrote: > On 05/10/2023 17:56, Peter Griffin wrote: > > The LK bootloader on Pixel6 searches for a dt overlay in the > > dtbo partition with a board_id and board_rev that matches > > what is baked into the device. If this overlay is not present > > then the phone will bootloop in fastboot and you can't boot > > the upstream kernel. > > > > This commit adds a dtbo for the production oriole variant. > > The other pre-production board overlays are not included > > at this time. > > > > Adding the dtbo here allows for a better experience when > > building/booting the upstream kernel on Pixel devices > > as all the DT required to boot the device will be created > > as part of the kernel build process. Rather than having to > > fetch the dtbo from some other repo. > > > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > > --- > > arch/arm64/boot/dts/google/Makefile | 1 + > > arch/arm64/boot/dts/google/gs101-oriole.dtso | 21 ++++++++++++++++++++ > > 2 files changed, 22 insertions(+) > > create mode 100644 arch/arm64/boot/dts/google/gs101-oriole.dtso > > > > diff --git a/arch/arm64/boot/dts/google/Makefile b/arch/arm64/boot/dts/google/Makefile > > index 6d2026a767d4..3f1761f8daa9 100644 > > --- a/arch/arm64/boot/dts/google/Makefile > > +++ b/arch/arm64/boot/dts/google/Makefile > > @@ -2,5 +2,6 @@ > > > > dtb-$(CONFIG_ARCH_GOOGLE_TENSOR) += \ > > gs101-oriole.dtb \ > > + gs101-oriole.dtbo > > > > > > diff --git a/arch/arm64/boot/dts/google/gs101-oriole.dtso b/arch/arm64/boot/dts/google/gs101-oriole.dtso > > new file mode 100644 > > index 000000000000..50832fd94204 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/google/gs101-oriole.dtso > > @@ -0,0 +1,21 @@ > > +// SPDX-License-Identifier: GPL-2.0-only > > +/* > > + * Oriole DVT Device Tree > > + * > > + * Copyright 2021-2023 Google,LLC > > + */ > > + > > +/dts-v1/; > > +/plugin/; > > + > > +/ { > > + board_id = <0x20304>; > > + board_rev = <0x10000>; > > Undocumented properties. Please propose bindings... Also, underscores > are not allowed, so in this form it is a no-go... although I understand > the pain of not being able to change the bootloader. > > For reference: > https://lore.kernel.org/all/20220605150747.GA3465286-robh@kernel.org/ > https://lore.kernel.org/all/20220610163343.GA1787330-robh@kernel.org/ These names are actually arbitrary and don't depend on the bootloader. They are passed into the mkdtimg tool [1] using --id and --rev and used to create the dt_table_entries. The bootloader traverses the table and picks the overlay based on these properties. So we can use whatever property names we want without changing the bootloader. [1] https://android.googlesource.com/platform/system/libufdt/+/refs/heads/main/utils/ Thanks, Will > > > Best regards, > Krzysztof >
Hi Rob, Thanks for your review! On Fri, 6 Oct 2023 at 21:52, Rob Herring <robh@kernel.org> wrote: > > On Thu, Oct 05, 2023 at 04:56:16PM +0100, Peter Griffin wrote: > > The LK bootloader on Pixel6 searches for a dt overlay in the > > dtbo partition with a board_id and board_rev that matches > > what is baked into the device. If this overlay is not present > > then the phone will bootloop in fastboot and you can't boot > > the upstream kernel. > > > > This commit adds a dtbo for the production oriole variant. > > The other pre-production board overlays are not included > > at this time. > > > > Adding the dtbo here allows for a better experience when > > building/booting the upstream kernel on Pixel devices > > as all the DT required to boot the device will be created > > as part of the kernel build process. Rather than having to > > fetch the dtbo from some other repo. > > > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > > --- > > arch/arm64/boot/dts/google/Makefile | 1 + > > arch/arm64/boot/dts/google/gs101-oriole.dtso | 21 ++++++++++++++++++++ > > 2 files changed, 22 insertions(+) > > create mode 100644 arch/arm64/boot/dts/google/gs101-oriole.dtso > > > > diff --git a/arch/arm64/boot/dts/google/Makefile b/arch/arm64/boot/dts/google/Makefile > > index 6d2026a767d4..3f1761f8daa9 100644 > > --- a/arch/arm64/boot/dts/google/Makefile > > +++ b/arch/arm64/boot/dts/google/Makefile > > @@ -2,5 +2,6 @@ > > > > dtb-$(CONFIG_ARCH_GOOGLE_TENSOR) += \ > > gs101-oriole.dtb \ > > + gs101-oriole.dtbo > > Overlays in the kernel must be able to be applied to a base DT in the > kernel. Add a rule to apply this (hint: a '-dtbs' variable does this > similar to -objs variables). Ok will do, thanks for the hint > > > diff --git a/arch/arm64/boot/dts/google/gs101-oriole.dtso b/arch/arm64/boot/dts/google/gs101-oriole.dtso > > new file mode 100644 > > index 000000000000..50832fd94204 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/google/gs101-oriole.dtso > > @@ -0,0 +1,21 @@ > > +// SPDX-License-Identifier: GPL-2.0-only > > +/* > > + * Oriole DVT Device Tree > > Doesn't DVT mean pre-production? Yes, DVT stands for Design Verification Testing. I can remove that DVT suffix for v2. I suppose that means there were no changes between DVT and production as this is the overlay used by the production devices. regards, Peter
diff --git a/arch/arm64/boot/dts/google/Makefile b/arch/arm64/boot/dts/google/Makefile index 6d2026a767d4..3f1761f8daa9 100644 --- a/arch/arm64/boot/dts/google/Makefile +++ b/arch/arm64/boot/dts/google/Makefile @@ -2,5 +2,6 @@ dtb-$(CONFIG_ARCH_GOOGLE_TENSOR) += \ gs101-oriole.dtb \ + gs101-oriole.dtbo diff --git a/arch/arm64/boot/dts/google/gs101-oriole.dtso b/arch/arm64/boot/dts/google/gs101-oriole.dtso new file mode 100644 index 000000000000..50832fd94204 --- /dev/null +++ b/arch/arm64/boot/dts/google/gs101-oriole.dtso @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Oriole DVT Device Tree + * + * Copyright 2021-2023 Google,LLC + */ + +/dts-v1/; +/plugin/; + +/ { + board_id = <0x20304>; + board_rev = <0x10000>; + fragment@boardbase { + target-path="/"; + __overlay__ { + model = "Oriole DVT"; + compatible = "google,gs101-oriole"; + }; + }; +};
The LK bootloader on Pixel6 searches for a dt overlay in the dtbo partition with a board_id and board_rev that matches what is baked into the device. If this overlay is not present then the phone will bootloop in fastboot and you can't boot the upstream kernel. This commit adds a dtbo for the production oriole variant. The other pre-production board overlays are not included at this time. Adding the dtbo here allows for a better experience when building/booting the upstream kernel on Pixel devices as all the DT required to boot the device will be created as part of the kernel build process. Rather than having to fetch the dtbo from some other repo. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> --- arch/arm64/boot/dts/google/Makefile | 1 + arch/arm64/boot/dts/google/gs101-oriole.dtso | 21 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 arch/arm64/boot/dts/google/gs101-oriole.dtso