diff mbox series

[1/2] arm64: dts: uDPU: update partition table

Message ID 20220321121728.414839-1-robert.marko@sartura.hr (mailing list archive)
State New, archived
Headers show
Series [1/2] arm64: dts: uDPU: update partition table | expand

Commit Message

Robert Marko March 21, 2022, 12:17 p.m. UTC
Partition currently called "uboot" does not only contain U-boot, but
rather it contains TF-A, U-boot and U-boot environment.

So, to avoid accidentally deleting the U-boot environment which is
located at 0x180000 split the partition.

"uboot" is not the correct name as you can't boot these boards with U-boot
only, TF-A must be present as well, so rename the "uboot" partition to
"firmware".

While we are here, describe the NOR node as "spi-flash@0" instead of
"m25p80@0" which is the old SPI-NOR driver name.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
---
 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

Andrew Lunn March 21, 2022, 12:41 p.m. UTC | #1
On Mon, Mar 21, 2022 at 01:17:27PM +0100, Robert Marko wrote:
> Partition currently called "uboot" does not only contain U-boot, but
> rather it contains TF-A, U-boot and U-boot environment.
> 
> So, to avoid accidentally deleting the U-boot environment which is
> located at 0x180000 split the partition.
> 
> "uboot" is not the correct name as you can't boot these boards with U-boot
> only, TF-A must be present as well, so rename the "uboot" partition to
> "firmware".

Are there any ABI issues here? If these names are being used
somewhere, you are potentially breaking the boot. At minimum, i would
like to see something in the commit message which indicates you have
considered this and why you don't expect it to be a problem.

	   Andrew
Robert Marko March 21, 2022, 12:47 p.m. UTC | #2
On Mon, Mar 21, 2022 at 1:41 PM Andrew Lunn <andrew@lunn.ch> wrote:
>
> On Mon, Mar 21, 2022 at 01:17:27PM +0100, Robert Marko wrote:
> > Partition currently called "uboot" does not only contain U-boot, but
> > rather it contains TF-A, U-boot and U-boot environment.
> >
> > So, to avoid accidentally deleting the U-boot environment which is
> > located at 0x180000 split the partition.
> >
> > "uboot" is not the correct name as you can't boot these boards with U-boot
> > only, TF-A must be present as well, so rename the "uboot" partition to
> > "firmware".
>
> Are there any ABI issues here? If these names are being used
> somewhere, you are potentially breaking the boot. At minimum, i would
> like to see something in the commit message which indicates you have
> considered this and why you don't expect it to be a problem.

Hi Andrew, this won't break booting as BootROM does not care about
partitions nor naming, it will just go to 0x0 of the NOR and boot it.

The same renaming had already been done:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm64/boot/dts/marvell?h=v5.17&id=a9d9bfcadfb43b856dbcf9419de75f7420d5a225

I can update the commit message if required.
Regards,
Robert

>
>            Andrew
Pali Rohár March 21, 2022, 12:56 p.m. UTC | #3
On Monday 21 March 2022 13:41:39 Andrew Lunn wrote:
> On Mon, Mar 21, 2022 at 01:17:27PM +0100, Robert Marko wrote:
> > Partition currently called "uboot" does not only contain U-boot, but
> > rather it contains TF-A, U-boot and U-boot environment.
> > 
> > So, to avoid accidentally deleting the U-boot environment which is
> > located at 0x180000 split the partition.
> > 
> > "uboot" is not the correct name as you can't boot these boards with U-boot
> > only, TF-A must be present as well, so rename the "uboot" partition to
> > "firmware".
> 
> Are there any ABI issues here? If these names are being used
> somewhere, you are potentially breaking the boot. At minimum, i would
> like to see something in the commit message which indicates you have
> considered this and why you don't expect it to be a problem.

Hello! Similar change/fix was done also for Turris Mox DTS file:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a9d9bfcadfb43b856dbcf9419de75f7420d5a225

Difference between uDPU and Mox is that uDPU has concatenated
CM3 firmware (called secure firmware) and A53 firmware (TF-A + u-boot)
into one binary, Mox has these two parts separated. So uDPU partition
should be called just firmware.

Same partition name "firmware" is used also on another A3720 device
Espressobin. But here partition names are filled/injected into DTB at
runtime by bootloader.

So I think this change for uDPU looks reasonable. Partition name
"u-boot" is used for flashing u-boot binary and renaming it could really
fix automated scripts to stop flashing into SPI NOR something which
makes device unbootable.
Andrew Lunn March 21, 2022, 1:16 p.m. UTC | #4
On Mon, Mar 21, 2022 at 01:47:21PM +0100, Robert Marko wrote:
> On Mon, Mar 21, 2022 at 1:41 PM Andrew Lunn <andrew@lunn.ch> wrote:
> >
> > On Mon, Mar 21, 2022 at 01:17:27PM +0100, Robert Marko wrote:
> > > Partition currently called "uboot" does not only contain U-boot, but
> > > rather it contains TF-A, U-boot and U-boot environment.
> > >
> > > So, to avoid accidentally deleting the U-boot environment which is
> > > located at 0x180000 split the partition.
> > >
> > > "uboot" is not the correct name as you can't boot these boards with U-boot
> > > only, TF-A must be present as well, so rename the "uboot" partition to
> > > "firmware".
> >
> > Are there any ABI issues here? If these names are being used
> > somewhere, you are potentially breaking the boot. At minimum, i would
> > like to see something in the commit message which indicates you have
> > considered this and why you don't expect it to be a problem.
> 
> Hi Andrew, this won't break booting as BootROM does not care about
> partitions nor naming, it will just go to 0x0 of the NOR and boot it.
> 
> The same renaming had already been done:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm64/boot/dts/marvell?h=v5.17&id=a9d9bfcadfb43b856dbcf9419de75f7420d5a225
> 
> I can update the commit message if required.

Yes, please. It is always good to indicate you have thought about
issues like this. Not breaking the ABI is very important, and could
result in this getting reverted at some point. So indicating why you
think this is safe is useful information.

      Andrew
Pali Rohár March 21, 2022, 1:40 p.m. UTC | #5
On Monday 21 March 2022 13:17:27 Robert Marko wrote:
> Partition currently called "uboot" does not only contain U-boot, but
> rather it contains TF-A, U-boot and U-boot environment.
> 
> So, to avoid accidentally deleting the U-boot environment which is
> located at 0x180000 split the partition.
> 
> "uboot" is not the correct name as you can't boot these boards with U-boot
> only, TF-A must be present as well, so rename the "uboot" partition to
> "firmware".
> 
> While we are here, describe the NOR node as "spi-flash@0" instead of
> "m25p80@0" which is the old SPI-NOR driver name.
> 
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> ---
>  arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)

FYI, U-Boot now contains copy of kernel's A3720 DTS files, so you should
send same patch also to U-Boot project.

> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> index 95d46e8d081c..ac64949bb53e 100644
> --- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> +++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> @@ -99,7 +99,7 @@ &spi0 {
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&spi_quad_pins>;
>  
> -	m25p80@0 {
> +	spi-flash@0 {
>  		compatible = "jedec,spi-nor";
>  		reg = <0>;
>  		spi-max-frequency = <54000000>;
> @@ -108,10 +108,15 @@ partitions {
>  			compatible = "fixed-partitions";
>  			#address-cells = <1>;
>  			#size-cells = <1>;
> -			/* only bootloader is located on the SPI */
> +
>  			partition@0 {
> -				label = "uboot";
> -				reg = <0 0x400000>;
> +				label = "firmware";
> +				reg = <0x0 0x180000>;
> +			};
> +
> +			partition@180000 {
> +				label = "u-boot-env";
> +				reg = <0x180000 0x10000>;
>  			};
>  		};
>  	};
> -- 
> 2.35.1
>
Robert Marko March 21, 2022, 1:58 p.m. UTC | #6
On Mon, Mar 21, 2022 at 2:16 PM Andrew Lunn <andrew@lunn.ch> wrote:
>
> On Mon, Mar 21, 2022 at 01:47:21PM +0100, Robert Marko wrote:
> > On Mon, Mar 21, 2022 at 1:41 PM Andrew Lunn <andrew@lunn.ch> wrote:
> > >
> > > On Mon, Mar 21, 2022 at 01:17:27PM +0100, Robert Marko wrote:
> > > > Partition currently called "uboot" does not only contain U-boot, but
> > > > rather it contains TF-A, U-boot and U-boot environment.
> > > >
> > > > So, to avoid accidentally deleting the U-boot environment which is
> > > > located at 0x180000 split the partition.
> > > >
> > > > "uboot" is not the correct name as you can't boot these boards with U-boot
> > > > only, TF-A must be present as well, so rename the "uboot" partition to
> > > > "firmware".
> > >
> > > Are there any ABI issues here? If these names are being used
> > > somewhere, you are potentially breaking the boot. At minimum, i would
> > > like to see something in the commit message which indicates you have
> > > considered this and why you don't expect it to be a problem.
> >
> > Hi Andrew, this won't break booting as BootROM does not care about
> > partitions nor naming, it will just go to 0x0 of the NOR and boot it.
> >
> > The same renaming had already been done:
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm64/boot/dts/marvell?h=v5.17&id=a9d9bfcadfb43b856dbcf9419de75f7420d5a225
> >
> > I can update the commit message if required.
>
> Yes, please. It is always good to indicate you have thought about
> issues like this. Not breaking the ABI is very important, and could
> result in this getting reverted at some point. So indicating why you
> think this is safe is useful information.

Thanks, will do it in v2.

Regards,
Robert
>
>       Andrew
Robert Marko March 21, 2022, 1:59 p.m. UTC | #7
On Mon, Mar 21, 2022 at 2:41 PM Pali Rohár <pali@kernel.org> wrote:
>
> On Monday 21 March 2022 13:17:27 Robert Marko wrote:
> > Partition currently called "uboot" does not only contain U-boot, but
> > rather it contains TF-A, U-boot and U-boot environment.
> >
> > So, to avoid accidentally deleting the U-boot environment which is
> > located at 0x180000 split the partition.
> >
> > "uboot" is not the correct name as you can't boot these boards with U-boot
> > only, TF-A must be present as well, so rename the "uboot" partition to
> > "firmware".
> >
> > While we are here, describe the NOR node as "spi-flash@0" instead of
> > "m25p80@0" which is the old SPI-NOR driver name.
> >
> > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> > ---
> >  arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 13 +++++++++----
> >  1 file changed, 9 insertions(+), 4 deletions(-)
>
> FYI, U-Boot now contains copy of kernel's A3720 DTS files, so you should
> send same patch also to U-Boot project.

I am working on uDPU fixes for U-boot as well so it will get synced as
part of the series.
Regards,
Robert
>
> > diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> > index 95d46e8d081c..ac64949bb53e 100644
> > --- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> > +++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
> > @@ -99,7 +99,7 @@ &spi0 {
> >       pinctrl-names = "default";
> >       pinctrl-0 = <&spi_quad_pins>;
> >
> > -     m25p80@0 {
> > +     spi-flash@0 {
> >               compatible = "jedec,spi-nor";
> >               reg = <0>;
> >               spi-max-frequency = <54000000>;
> > @@ -108,10 +108,15 @@ partitions {
> >                       compatible = "fixed-partitions";
> >                       #address-cells = <1>;
> >                       #size-cells = <1>;
> > -                     /* only bootloader is located on the SPI */
> > +
> >                       partition@0 {
> > -                             label = "uboot";
> > -                             reg = <0 0x400000>;
> > +                             label = "firmware";
> > +                             reg = <0x0 0x180000>;
> > +                     };
> > +
> > +                     partition@180000 {
> > +                             label = "u-boot-env";
> > +                             reg = <0x180000 0x10000>;
> >                       };
> >               };
> >       };
> > --
> > 2.35.1
> >
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
index 95d46e8d081c..ac64949bb53e 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -99,7 +99,7 @@  &spi0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&spi_quad_pins>;
 
-	m25p80@0 {
+	spi-flash@0 {
 		compatible = "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <54000000>;
@@ -108,10 +108,15 @@  partitions {
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
 			#size-cells = <1>;
-			/* only bootloader is located on the SPI */
+
 			partition@0 {
-				label = "uboot";
-				reg = <0 0x400000>;
+				label = "firmware";
+				reg = <0x0 0x180000>;
+			};
+
+			partition@180000 {
+				label = "u-boot-env";
+				reg = <0x180000 0x10000>;
 			};
 		};
 	};