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

Marek Behún marek.behun at nic.cz
Fri Jul 9 14:06:15 CEST 2021


On Fri, 9 Jul 2021 20:27:18 +0900
Masami Hiramatsu <masami.hiramatsu at linaro.org> wrote:

> Hi Marek,
> 
> 2021年7月9日(金) 19:54 Marek Behún <marek.behun at nic.cz>:
> >
> > On Fri,  9 Jul 2021 19:50:27 +0900
> > Masami Hiramatsu <masami.hiramatsu at 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 at 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 at 0 {
> > > +                                     label = "BootStrap-BL1";
> > > +                                     reg = <0x0 0x70000>;
> > > +                                     read-only;
> > > +                             };
> > > +                             partition at 70000 {
> > > +                                     label = "Flash-Writer";
> > > +                                     reg = <0x70000 0x90000>;
> > > +                                     read-only;
> > > +                             };
> > > +                             partition at 100000 {
> > > +                                     label = "SCP-BL2";
> > > +                                     reg = <0x100000 0x80000>;
> > > +                                     read-only;
> > > +                             };
> > > +                             partition at 180000 {
> > > +                                     label = "FIP-TFA";
> > > +                                     reg = <0x180000 0x78000>;
> > > +                             };
> > > +                             partition at 1f8000 {
> > > +                                     label = "Stage2Tables";
> > > +                                     reg = <0x1f8000 0x8000>;
> > > +                             };
> > > +                             partition at 200000 {
> > > +                                     label = "U-Boot";
> > > +                                     reg = <0x200000 0x100000>;
> > > +                             };
> > > +                             partition at 300000 {
> > > +                                     label = "UBoot-Env";
> > > +                                     reg = <0x300000 0x100000>;
> > > +                             };
> > > +                             partition at 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 at 0 {
> >                                         label = "BootStrap-BL1";
> >                                         reg = <0x0 0x70000>;
> >                                         read-only;
> >                                 };
> >
> >                                 partition at 70000 {
> >                                         label = "Flash-Writer";
> >                                         reg = <0x70000 0x90000>;
> >                                         read-only;
> >                                 };
> >
> >                                 partition at 100000 {
> >                                         label = "SCP-BL2";
> >                                         reg = <0x100000 0x80000>;
> >                                         read-only;
> >                                 };
> >
> > Other than that:
> >
> > Reviewed-by: Marek Behún <marek.behun at 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 at 0
>   - parent: spi at 54800000
>   - driver: jedec_spi_nor
>   - path: /spi at 54800000/spi-flash at 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 at 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 at 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 at 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


More information about the U-Boot mailing list