diff mbox series

[3/6] dts: synquacer: Add partition information to the spi-nor

Message ID 162582782712.112250.6553338507843531908.stgit@localhost
State Superseded
Headers show
Series arm64: synquacer: DeveloperBox updates | expand

Commit Message

Masami Hiramatsu July 9, 2021, 10:50 a.m. UTC
Add partition information to the spi-nor flash.
This is required for accessing NOR flash via mtdparts.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>

---
 .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   42 ++++++++++++++++++++
 1 file changed, 42 insertions(+)

Comments

Marek Behún July 9, 2021, 10:54 a.m. UTC | #1
On Fri,  9 Jul 2021 19:50:27 +0900
Masami Hiramatsu <masami.hiramatsu@linaro.org> wrote:

> Add partition information to the spi-nor flash.

> This is required for accessing NOR flash via mtdparts.

> 

> Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>

> ---

>  .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   42

> ++++++++++++++++++++ 1 file changed, 42 insertions(+)

> 

> diff --git a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi

> b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi index

> 2f13a42235..245ebcda01 100644 ---

> a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi +++

> b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi @@ -31,6

> +31,48 @@ spi-max-frequency = <31250000>;

>  			spi-rx-bus-width = <0x1>;

>  			spi-tx-bus-width = <0x1>;

> +

> +			partitions {

> +				compatible = "fixed-partitions";

> +				#address-cells = <1>;

> +				#size-cells = <1>;

> +

> +				partition@0 {

> +					label = "BootStrap-BL1";

> +					reg = <0x0 0x70000>;

> +					read-only;

> +				};

> +				partition@70000 {

> +					label = "Flash-Writer";

> +					reg = <0x70000 0x90000>;

> +					read-only;

> +				};

> +				partition@100000 {

> +					label = "SCP-BL2";

> +					reg = <0x100000 0x80000>;

> +					read-only;

> +				};

> +				partition@180000 {

> +					label = "FIP-TFA";

> +					reg = <0x180000 0x78000>;

> +				};

> +				partition@1f8000 {

> +					label = "Stage2Tables";

> +					reg = <0x1f8000 0x8000>;

> +				};

> +				partition@200000 {

> +					label = "U-Boot";

> +					reg = <0x200000 0x100000>;

> +				};

> +				partition@300000 {

> +					label = "UBoot-Env";

> +					reg = <0x300000 0x100000>;

> +				};

> +				partition@500000 {

> +					label = "Ex-OPTEE";

> +					reg = <0x500000 0x200000>;

> +				};

> +			};

>  		};

>  	};

>  

> 


Just a style hint: the individual partition nodes should be IMO
separated by an additional newline character, i.e.:

				partition@0 {
					label = "BootStrap-BL1";
					reg = <0x0 0x70000>;
					read-only;
				};

				partition@70000 {
					label = "Flash-Writer";
					reg = <0x70000 0x90000>;
					read-only;
				};

				partition@100000 {
					label = "SCP-BL2";
					reg = <0x100000 0x80000>;
					read-only;
				};

Other than that:

Reviewed-by: Marek Behún <marek.behun@nic.cz>


Btw, did you test this? Does this work correctly with mtd command?
Masami Hiramatsu July 9, 2021, 11:27 a.m. UTC | #2
Hi Marek,

2021年7月9日(金) 19:54 Marek Behún <marek.behun@nic.cz>:
>

> On Fri,  9 Jul 2021 19:50:27 +0900

> Masami Hiramatsu <masami.hiramatsu@linaro.org> wrote:

>

> > Add partition information to the spi-nor flash.

> > This is required for accessing NOR flash via mtdparts.

> >

> > Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>

> > ---

> >  .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   42

> > ++++++++++++++++++++ 1 file changed, 42 insertions(+)

> >

> > diff --git a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi

> > b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi index

> > 2f13a42235..245ebcda01 100644 ---

> > a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi +++

> > b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi @@ -31,6

> > +31,48 @@ spi-max-frequency = <31250000>;

> >                       spi-rx-bus-width = <0x1>;

> >                       spi-tx-bus-width = <0x1>;

> > +

> > +                     partitions {

> > +                             compatible = "fixed-partitions";

> > +                             #address-cells = <1>;

> > +                             #size-cells = <1>;

> > +

> > +                             partition@0 {

> > +                                     label = "BootStrap-BL1";

> > +                                     reg = <0x0 0x70000>;

> > +                                     read-only;

> > +                             };

> > +                             partition@70000 {

> > +                                     label = "Flash-Writer";

> > +                                     reg = <0x70000 0x90000>;

> > +                                     read-only;

> > +                             };

> > +                             partition@100000 {

> > +                                     label = "SCP-BL2";

> > +                                     reg = <0x100000 0x80000>;

> > +                                     read-only;

> > +                             };

> > +                             partition@180000 {

> > +                                     label = "FIP-TFA";

> > +                                     reg = <0x180000 0x78000>;

> > +                             };

> > +                             partition@1f8000 {

> > +                                     label = "Stage2Tables";

> > +                                     reg = <0x1f8000 0x8000>;

> > +                             };

> > +                             partition@200000 {

> > +                                     label = "U-Boot";

> > +                                     reg = <0x200000 0x100000>;

> > +                             };

> > +                             partition@300000 {

> > +                                     label = "UBoot-Env";

> > +                                     reg = <0x300000 0x100000>;

> > +                             };

> > +                             partition@500000 {

> > +                                     label = "Ex-OPTEE";

> > +                                     reg = <0x500000 0x200000>;

> > +                             };

> > +                     };

> >               };

> >       };

> >

> >

>

> Just a style hint: the individual partition nodes should be IMO

> separated by an additional newline character, i.e.:


Ah, OK.

>

>                                 partition@0 {

>                                         label = "BootStrap-BL1";

>                                         reg = <0x0 0x70000>;

>                                         read-only;

>                                 };

>

>                                 partition@70000 {

>                                         label = "Flash-Writer";

>                                         reg = <0x70000 0x90000>;

>                                         read-only;

>                                 };

>

>                                 partition@100000 {

>                                         label = "SCP-BL2";

>                                         reg = <0x100000 0x80000>;

>                                         read-only;

>                                 };

>

> Other than that:

>

> Reviewed-by: Marek Behún <marek.behun@nic.cz>

>

> Btw, did you test this? Does this work correctly with mtd command?


Yes, I've tested that, and mtd list works. But it seems "mtd erase"
commands don't work well.
See the log below;

-------
=> log level 7
=> mtd list
List of MTD devices:
* mx66u51235f
  - device: spi-flash@0
  - parent: spi@54800000
  - driver: jedec_spi_nor
  - path: /spi@54800000/spi-flash@0
  - type: NOR flash
  - block size: 0x1000 bytes
  - min I/O: 0x1 bytes
  - 0x000000000000-0x000004000000 : "mx66u51235f"
          - 0x000000000000-0x000000070000 : "BootStrap-BL1"
          - 0x000000070000-0x000000100000 : "Flash-Writer"
          - 0x000000100000-0x000000180000 : "SCP-BL2"
          - 0x000000180000-0x0000001f8000 : "FIP-TFA"
          - 0x0000001f8000-0x000000200000 : "Stage2Tables"
          - 0x000000200000-0x000000400000 : "EDK2"
          - 0x000000400000-0x000000500000 : "EDK2-Env"
          - 0x000000500000-0x000000700000 : "Ex-OPTEE"
          - 0x000000700000-0x000000800000 : "UBoot-Env"
          - 0x000000800000-0x000000900000 : "U-Boot"
=> mtd erase Ex-OPTEE
Erasing 0x00000000 ... 0x001fffff (512 eraseblock(s))
jedec_spi_nor spi-flash@0: at 0x500000, len 4096
=> mtd dump E
  EDK2 EDK2-Env Ex-OPTEE
=> mtd dump Ex-OPTEE 0 10
Reading 16 byte(s) at offset 0x00000000
jedec_spi_nor spi-flash@0: from 0x00500000, len 16

Dump 16 data bytes from 0x0:
0x00000000:     ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
=> mtd dump Ex-OPTEE 1000 10
Reading 16 byte(s) at offset 0x00001000
jedec_spi_nor spi-flash@0: from 0x00501000, len 16

Dump 16 data bytes from 0x1000:
0x00001000:     00 00 00 14 1f 20 03 d5  1f 20 03 d5 1f 20 03 d5
=>
-------

So it seems first 4k block is cleared, but other blocks are not erased.
I think that is not a devicetree issue, but mtd subsystem issue.

Thank you,

-- 
Masami Hiramatsu
Marek Behún July 9, 2021, 12:06 p.m. UTC | #3
On Fri, 9 Jul 2021 20:27:18 +0900
Masami Hiramatsu <masami.hiramatsu@linaro.org> wrote:

> Hi Marek,

> 

> 2021年7月9日(金) 19:54 Marek Behún <marek.behun@nic.cz>:

> >

> > On Fri,  9 Jul 2021 19:50:27 +0900

> > Masami Hiramatsu <masami.hiramatsu@linaro.org> wrote:

> >  

> > > Add partition information to the spi-nor flash.

> > > This is required for accessing NOR flash via mtdparts.

> > >

> > > Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>

> > > ---

> > >  .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   42

> > > ++++++++++++++++++++ 1 file changed, 42 insertions(+)

> > >

> > > diff --git

> > > a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi

> > > b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi index

> > > 2f13a42235..245ebcda01 100644 ---

> > > a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi +++

> > > b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi @@ -31,6

> > > +31,48 @@ spi-max-frequency = <31250000>; spi-rx-bus-width =

> > > <0x1>; spi-tx-bus-width = <0x1>;

> > > +

> > > +                     partitions {

> > > +                             compatible = "fixed-partitions";

> > > +                             #address-cells = <1>;

> > > +                             #size-cells = <1>;

> > > +

> > > +                             partition@0 {

> > > +                                     label = "BootStrap-BL1";

> > > +                                     reg = <0x0 0x70000>;

> > > +                                     read-only;

> > > +                             };

> > > +                             partition@70000 {

> > > +                                     label = "Flash-Writer";

> > > +                                     reg = <0x70000 0x90000>;

> > > +                                     read-only;

> > > +                             };

> > > +                             partition@100000 {

> > > +                                     label = "SCP-BL2";

> > > +                                     reg = <0x100000 0x80000>;

> > > +                                     read-only;

> > > +                             };

> > > +                             partition@180000 {

> > > +                                     label = "FIP-TFA";

> > > +                                     reg = <0x180000 0x78000>;

> > > +                             };

> > > +                             partition@1f8000 {

> > > +                                     label = "Stage2Tables";

> > > +                                     reg = <0x1f8000 0x8000>;

> > > +                             };

> > > +                             partition@200000 {

> > > +                                     label = "U-Boot";

> > > +                                     reg = <0x200000 0x100000>;

> > > +                             };

> > > +                             partition@300000 {

> > > +                                     label = "UBoot-Env";

> > > +                                     reg = <0x300000 0x100000>;

> > > +                             };

> > > +                             partition@500000 {

> > > +                                     label = "Ex-OPTEE";

> > > +                                     reg = <0x500000 0x200000>;

> > > +                             };

> > > +                     };

> > >               };

> > >       };

> > >

> > >  

> >

> > Just a style hint: the individual partition nodes should be IMO

> > separated by an additional newline character, i.e.:  

> 

> Ah, OK.

> 

> >

> >                                 partition@0 {

> >                                         label = "BootStrap-BL1";

> >                                         reg = <0x0 0x70000>;

> >                                         read-only;

> >                                 };

> >

> >                                 partition@70000 {

> >                                         label = "Flash-Writer";

> >                                         reg = <0x70000 0x90000>;

> >                                         read-only;

> >                                 };

> >

> >                                 partition@100000 {

> >                                         label = "SCP-BL2";

> >                                         reg = <0x100000 0x80000>;

> >                                         read-only;

> >                                 };

> >

> > Other than that:

> >

> > Reviewed-by: Marek Behún <marek.behun@nic.cz>

> >

> > Btw, did you test this? Does this work correctly with mtd command?  

> 

> Yes, I've tested that, and mtd list works. But it seems "mtd erase"

> commands don't work well.

> See the log below;

> 

> -------

> => log level 7

> => mtd list  

> List of MTD devices:

> * mx66u51235f

>   - device: spi-flash@0

>   - parent: spi@54800000

>   - driver: jedec_spi_nor

>   - path: /spi@54800000/spi-flash@0

>   - type: NOR flash

>   - block size: 0x1000 bytes

>   - min I/O: 0x1 bytes

>   - 0x000000000000-0x000004000000 : "mx66u51235f"

>           - 0x000000000000-0x000000070000 : "BootStrap-BL1"

>           - 0x000000070000-0x000000100000 : "Flash-Writer"

>           - 0x000000100000-0x000000180000 : "SCP-BL2"

>           - 0x000000180000-0x0000001f8000 : "FIP-TFA"

>           - 0x0000001f8000-0x000000200000 : "Stage2Tables"

>           - 0x000000200000-0x000000400000 : "EDK2"

>           - 0x000000400000-0x000000500000 : "EDK2-Env"

>           - 0x000000500000-0x000000700000 : "Ex-OPTEE"

>           - 0x000000700000-0x000000800000 : "UBoot-Env"

>           - 0x000000800000-0x000000900000 : "U-Boot"

> => mtd erase Ex-OPTEE  

> Erasing 0x00000000 ... 0x001fffff (512 eraseblock(s))

> jedec_spi_nor spi-flash@0: at 0x500000, len 4096

> => mtd dump E  

>   EDK2 EDK2-Env Ex-OPTEE

> => mtd dump Ex-OPTEE 0 10  

> Reading 16 byte(s) at offset 0x00000000

> jedec_spi_nor spi-flash@0: from 0x00500000, len 16

> 

> Dump 16 data bytes from 0x0:

> 0x00000000:     ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff

> => mtd dump Ex-OPTEE 1000 10  

> Reading 16 byte(s) at offset 0x00001000

> jedec_spi_nor spi-flash@0: from 0x00501000, len 16

> 

> Dump 16 data bytes from 0x1000:

> 0x00001000:     00 00 00 14 1f 20 03 d5  1f 20 03 d5 1f 20 03 d5

> =>  

> -------

> 

> So it seems first 4k block is cleared, but other blocks are not

> erased. I think that is not a devicetree issue, but mtd subsystem

> issue.


Can reproduce, going to look into this.

Marek
diff mbox series

Patch

diff --git a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi
index 2f13a42235..245ebcda01 100644
--- a/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi
+++ b/arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi
@@ -31,6 +31,48 @@ 
 			spi-max-frequency = <31250000>;
 			spi-rx-bus-width = <0x1>;
 			spi-tx-bus-width = <0x1>;
+
+			partitions {
+				compatible = "fixed-partitions";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "BootStrap-BL1";
+					reg = <0x0 0x70000>;
+					read-only;
+				};
+				partition@70000 {
+					label = "Flash-Writer";
+					reg = <0x70000 0x90000>;
+					read-only;
+				};
+				partition@100000 {
+					label = "SCP-BL2";
+					reg = <0x100000 0x80000>;
+					read-only;
+				};
+				partition@180000 {
+					label = "FIP-TFA";
+					reg = <0x180000 0x78000>;
+				};
+				partition@1f8000 {
+					label = "Stage2Tables";
+					reg = <0x1f8000 0x8000>;
+				};
+				partition@200000 {
+					label = "U-Boot";
+					reg = <0x200000 0x100000>;
+				};
+				partition@300000 {
+					label = "UBoot-Env";
+					reg = <0x300000 0x100000>;
+				};
+				partition@500000 {
+					label = "Ex-OPTEE";
+					reg = <0x500000 0x200000>;
+				};
+			};
 		};
 	};