Skip to content

Commit

Permalink
arm: dts: stm32: Add partitions in flash0 and nand node for stm32mp15…
Browse files Browse the repository at this point in the history
…xx-ev1

Add partitions subnode in flash0 and nand nodes for all stm32mp157xx-ev1
boards. Update only the file stm32mp157c-ev1-*u-boot.dtsi, included by
other files  stm32mp15*-ev1-*-u-boot.dtsi.

For SCMI variant of device tree used with stm32mp15_defconfig
add partitions needed by TF-A firmware update:
- metadata to save the TF-A information: 2 copy
- fip-a / fip-b: two FIP slots, used for system A/B (seamless) update
- the previous "fsbl" partition with 2 copy of TFA is replaced
  by 2 partitions (only one copy in each MTD partition) to simplify
  the update: no need to managed this copy on update, need to update the
  two partition (skip bad block for NAND)
The offset for ENV partition are also updated in stm32mp15_defconfig

Signed-off-by: Patrick Delaunay <[email protected]>
Signed-off-by: Patrice Chotard <[email protected]>
Reviewed-by: Patrice Chotard <[email protected]>
  • Loading branch information
Patrice Chotard committed Jun 16, 2023
1 parent c8532a0 commit e91d3c6
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 3 deletions.
85 changes: 85 additions & 0 deletions arch/arm/dts/stm32mp157c-ev1-scmi-u-boot.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,91 @@

&flash0 {
bootph-pre-ram;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "fsbl1";
reg = <0x00000000 0x00040000>;
};
partition@40000 {
label = "fsbl2";
reg = <0x00040000 0x00040000>;
};
partition@80000 {
label = "metadata1";
reg = <0x00080000 0x00040000>;
};
partition@c0000 {
label = "metadata2";
reg = <0x000c0000 0x00040000>;
};
partition@100000 {
label = "fip-a";
reg = <0x00100000 0x00400000>;
};
partition@500000 {
label = "fip-b";
reg = <0x00500000 0x00400000>;
};
partition@900000 {
label = "u-boot-env";
reg = <0x00900000 0x00080000>;
};
partition@980000 {
label = "nor-user";
reg = <0x00980000 0x03680000>;
};
};
};

&fmc {
nand-controller@4,0 {
nand@0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "fsbl1";
reg = <0x00000000 0x00080000>;
};
partition@80000 {
label = "fsbl2";
reg = <0x00080000 0x00080000>;
};
partition@100000 {
label = "metadata1";
reg = <0x00100000 0x00080000>;
};
partition@180000 {
label = "metadata2";
reg = <0x00180000 0x00080000>;
};
partition@200000 {
label = "fip-a1";
reg = <0x00200000 0x00400000>;
};
partition@600000 {
label = "fip-a2";
reg = <0x00600000 0x00400000>;
};
partition@a00000 {
label = "fip-b1";
reg = <0x00a00000 0x00400000>;
};
partition@e00000 {
label = "fip-b2";
reg = <0x00e00000 0x00400000>;
};
partition@1200000 {
label = "UBI";
reg = <0x01200000 0x3ee00000>;
};
};
};
};
};

&qspi {
Expand Down
98 changes: 97 additions & 1 deletion arch/arm/dts/stm32mp157c-ev1-u-boot.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,103 @@

&flash0 {
bootph-pre-ram;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

#if defined(CONFIG_STM32MP15x_STM32IMAGE) || defined(CONFIG_SPL)
partition@0 {
label = "fsbl1";
reg = <0x00000000 0x00040000>;
};
partition@80000 {
label = "fsbl2";
reg = <0x00040000 0x00040000>;
};
partition@100000 {
label = "ssbl";
reg = <0x00080000 0x00200000>;
};
partition@280000 {
label = "u-boot-env";
reg = <0x00280000 0x00080000>;
};
partition@300000 {
label = "nor-user";
reg = <0x00300000 0x03d00000>;
};
#else
partition@0 {
label = "fsbl1";
reg = <0x00000000 0x00040000>;
};
partition@40000 {
label = "fsbl2";
reg = <0x00040000 0x00040000>;
};
partition@100000 {
label = "fip";
reg = <0x00080000 0x00400000>;
};
partition@480000 {
label = "u-boot-env";
reg = <0x00480000 0x00080000>;
};
partition@500000 {
label = "nor-user";
reg = <0x00500000 0x03b00000>;
};
#endif
};
};

&fmc {
nand-controller@4,0 {
nand@0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

#if defined(CONFIG_STM32MP15x_STM32IMAGE) || defined(CONFIG_SPL)
partition@0 {
label = "fsbl";
reg = <0x00000000 0x00200000>;
};
partition@200000 {
label = "ssbl1";
reg = <0x00200000 0x00200000>;
};
partition@400000 {
label = "ssbl2";
reg = <0x00400000 0x00200000>;
};
partition@600000 {
label = "UBI";
reg = <0x00600000 0x3fa00000>;
};
#else
partition@0 {
label = "fsbl";
reg = <0x00000000 0x00200000>;
};
partition@200000 {
label = "fip1";
reg = <0x00200000 0x00400000>;
};
partition@600000 {
label = "fip2";
reg = <0x00600000 0x00400000>;
};
partition@1200000 {
label = "UBI";
reg = <0x00a00000 0x3f600000>;
};
#endif
};
};
};
};

&qspi {
Expand Down Expand Up @@ -55,4 +152,3 @@
bootph-pre-ram;
};
};

4 changes: 2 additions & 2 deletions configs/stm32mp15_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ CONFIG_ARCH_STM32MP=y
CONFIG_TFABOOT=y
CONFIG_SYS_MALLOC_F_LEN=0x80000
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc0100000
CONFIG_ENV_OFFSET=0x480000
CONFIG_ENV_OFFSET=0x900000
CONFIG_ENV_SECT_SIZE=0x40000
CONFIG_DEFAULT_DEVICE_TREE="stm32mp157c-ev1"
CONFIG_SYS_PROMPT="STM32MP> "
CONFIG_DDR_CACHEABLE_SIZE=0x10000000
CONFIG_CMD_STM32KEY=y
CONFIG_TYPEC_STUSB160X=y
CONFIG_TARGET_ST_STM32MP15x=y
CONFIG_ENV_OFFSET_REDUND=0x4C0000
CONFIG_ENV_OFFSET_REDUND=0x940000
CONFIG_CMD_STM32PROG=y
# CONFIG_ARMV7_NONSEC is not set
CONFIG_SYS_LOAD_ADDR=0xc2000000
Expand Down

0 comments on commit e91d3c6

Please sign in to comment.