diff mbox series

[v1,2/4] arm64: dts: qcom: sc7280: Add 'piglin' to the crd-r3 compatible strings

Message ID 20220316172814.v1.2.Ib0fbb7e5218201c81a2d064ff13c9bc1b0863212@changeid (mailing list archive)
State Accepted
Commit f226c660533416c308fcde62d1b785527528974d
Headers show
Series [v1,1/4] arm64: dts: qcom: sc7280: Rename crd to crd-r3 | expand

Commit Message

Matthias Kaehlcke March 17, 2022, 12:28 a.m. UTC
With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
are kept to make sure the board keeps booting with older bootloader
versions.

The compatible string 'google,piglin' (without revision information) is
still used by the IDP2 board, which is not expected to evolve further.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
---

 arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Doug Anderson March 17, 2022, 5:08 p.m. UTC | #1
Hi,

On Wed, Mar 16, 2022 at 5:28 PM Matthias Kaehlcke <mka@chromium.org> wrote:
>
> With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
> identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
> Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
> are kept to make sure the board keeps booting with older bootloader
> versions.
>
> The compatible string 'google,piglin' (without revision information) is
> still used by the IDP2 board, which is not expected to evolve further.
>
> Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
> ---
>
>  arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Stephen Boyd March 17, 2022, 6:51 p.m. UTC | #2
Quoting Matthias Kaehlcke (2022-03-16 17:28:18)
> With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
> identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
> Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
> are kept to make sure the board keeps booting with older bootloader
> versions.
>
> The compatible string 'google,piglin' (without revision information) is
> still used by the IDP2 board, which is not expected to evolve further.
>
> Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
> ---

Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Rajendra Nayak March 21, 2022, 5:44 a.m. UTC | #3
On 3/17/2022 5:58 AM, Matthias Kaehlcke wrote:
> With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
> identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
> Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
> are kept to make sure the board keeps booting with older bootloader
> versions.

The older bootloaders really look for the google,hoglin-rev3/google,hoglin-rev4
compatibles or just google,hoglin? If its just google,hoglin, won;t it pick the
crd-rev5+ dtb now?

> 
> The compatible string 'google,piglin' (without revision information) is
> still used by the IDP2 board, which is not expected to evolve further.
> 
> Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
> ---
> 
>   arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts b/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
> index 7a028b9248c3..344338ad8a01 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
> +++ b/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
> @@ -12,7 +12,10 @@
>   
>   / {
>   	model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev3 - 4)";
> -	compatible = "qcom,sc7280-crd", "google,hoglin-rev3", "google,hoglin-rev4", "qcom,sc7280";
> +	compatible = "qcom,sc7280-crd",
> +		     "google,hoglin-rev3", "google,hoglin-rev4",
> +		     "google,piglin-rev3", "google,piglin-rev4",
> +		     "qcom,sc7280";
>   
>   	aliases {
>   		serial0 = &uart5;
Matthias Kaehlcke March 21, 2022, 3:14 p.m. UTC | #4
On Mon, Mar 21, 2022 at 11:14:56AM +0530, Rajendra Nayak wrote:
> 
> On 3/17/2022 5:58 AM, Matthias Kaehlcke wrote:
> > With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
> > identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
> > Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
> > are kept to make sure the board keeps booting with older bootloader
> > versions.
> 
> The older bootloaders really look for the google,hoglin-rev3/google,hoglin-rev4
> compatibles or just google,hoglin? If its just google,hoglin, won;t it pick the
> crd-rev5+ dtb now?

They look for the -revN compatible, I confirmed that on my CRD 2.0.
Doug Anderson March 21, 2022, 6 p.m. UTC | #5
"Hi,

On Mon, Mar 21, 2022 at 8:14 AM Matthias Kaehlcke <mka@chromium.org> wrote:
>
> On Mon, Mar 21, 2022 at 11:14:56AM +0530, Rajendra Nayak wrote:
> >
> > On 3/17/2022 5:58 AM, Matthias Kaehlcke wrote:
> > > With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
> > > identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
> > > Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
> > > are kept to make sure the board keeps booting with older bootloader
> > > versions.
> >
> > The older bootloaders really look for the google,hoglin-rev3/google,hoglin-rev4
> > compatibles or just google,hoglin? If its just google,hoglin, won;t it pick the
> > crd-rev5+ dtb now?
>
> They look for the -revN compatible, I confirmed that on my CRD 2.0.

Thanks for confirming Matthias! I'll also note that, in general, these
"google,board-revX" type compatible strings are all programmatically
generated. You can see at:

https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/refs/heads/main/src/boot/fit.c#70

...and whenever it's using this normal logic then it has a standard
fallback mechanism in place. On a random board in front of me
depthcharge prints out:

Compat preference: google,lazor-rev3-sku0 google,lazor-rev3
google,lazor-sku0 google,lazor

So it'll first try the very specific verison with rev and sku. Then
just by rev. Then just by sku. ...and if none of those match it'll
pick a device tree that has neither. The "newest" device tree always
has no revision number specified and that way if software doesn't
change but the revision bumps then we have no problem. We only add the
revision info for old boards.

There are a few cases where we add special compatible strings and
these don't match on board/rev. This is fairly uncommon, though. You
might be aware of the special case of adding "qcom,sc7180-idp"
(without rev/sku matching) for "bubs". See:

https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/refs/heads/main/src/board/trogdor/board.c#136


-Doug
Rajendra Nayak March 22, 2022, 4:16 a.m. UTC | #6
On 3/21/2022 11:30 PM, Doug Anderson wrote:
> "Hi,
> 
> On Mon, Mar 21, 2022 at 8:14 AM Matthias Kaehlcke <mka@chromium.org> wrote:
>>
>> On Mon, Mar 21, 2022 at 11:14:56AM +0530, Rajendra Nayak wrote:
>>>
>>> On 3/17/2022 5:58 AM, Matthias Kaehlcke wrote:
>>>> With newer bootloader versions the crd-r3 (aka CRD 1.0 and 2.0) is
>>>> identified as a 'piglin' board (like the IDP2 board), instead of 'hoglin'
>>>> Add the compatible strings 'google,piglin-rev{3,4}'. The hoglin entries
>>>> are kept to make sure the board keeps booting with older bootloader
>>>> versions.
>>>
>>> The older bootloaders really look for the google,hoglin-rev3/google,hoglin-rev4
>>> compatibles or just google,hoglin? If its just google,hoglin, won;t it pick the
>>> crd-rev5+ dtb now?
>>
>> They look for the -revN compatible, I confirmed that on my CRD 2.0.
> 
> Thanks for confirming Matthias! I'll also note that, in general, these
> "google,board-revX" type compatible strings are all programmatically
> generated. You can see at:
> 
> https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/refs/heads/main/src/boot/fit.c#70
> 
> ...and whenever it's using this normal logic then it has a standard
> fallback mechanism in place. On a random board in front of me
> depthcharge prints out:
> 
> Compat preference: google,lazor-rev3-sku0 google,lazor-rev3
> google,lazor-sku0 google,lazor
> 
> So it'll first try the very specific verison with rev and sku. Then
> just by rev. Then just by sku. ...and if none of those match it'll
> pick a device tree that has neither. The "newest" device tree always
> has no revision number specified and that way if software doesn't
> change but the revision bumps then we have no problem. We only add the
> revision info for old boards.

Thanks Matthias/Doug for the clarification,

Reviewed-by: Rajendra Nayak <quic_rjendra@quicinc.com>

> 
> There are a few cases where we add special compatible strings and
> these don't match on board/rev. This is fairly uncommon, though. You
> might be aware of the special case of adding "qcom,sc7180-idp"
> (without rev/sku matching) for "bubs". See:
> 
> https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/refs/heads/main/src/board/trogdor/board.c#136
> 
> 
> -Doug
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts b/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
index 7a028b9248c3..344338ad8a01 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
+++ b/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
@@ -12,7 +12,10 @@ 
 
 / {
 	model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev3 - 4)";
-	compatible = "qcom,sc7280-crd", "google,hoglin-rev3", "google,hoglin-rev4", "qcom,sc7280";
+	compatible = "qcom,sc7280-crd",
+		     "google,hoglin-rev3", "google,hoglin-rev4",
+		     "google,piglin-rev3", "google,piglin-rev4",
+		     "qcom,sc7280";
 
 	aliases {
 		serial0 = &uart5;