2023-05-22 15:16:35

by Michal Simek

[permalink] [raw]
Subject: [PATCH v2 6/6] arm64: zynqmp: Used fixed-partitions for QSPI in k26

Using fixed partitions is recommended way how to describe QSPI. Also add
label for qspi flash memory to be able to reference it in future.

Signed-off-by: Michal Simek <[email protected]>
---

(no changes since v1)

---
.../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 169 +++++++++---------
1 file changed, 88 insertions(+), 81 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index 84e18fdce775..dfd1a18f5a10 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -127,87 +127,94 @@ spi_flash: flash@0 { /* MT25QU512A */
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
spi-max-frequency = <40000000>; /* 40MHz */
- partition@0 {
- label = "Image Selector";
- reg = <0x0 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@80000 {
- label = "Image Selector Golden";
- reg = <0x80000 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@100000 {
- label = "Persistent Register";
- reg = <0x100000 0x20000>; /* 128KB */
- };
- partition@120000 {
- label = "Persistent Register Backup";
- reg = <0x120000 0x20000>; /* 128KB */
- };
- partition@140000 {
- label = "Open_1";
- reg = <0x140000 0xC0000>; /* 768KB */
- };
- partition@200000 {
- label = "Image A (FSBL, PMU, ATF, U-Boot)";
- reg = <0x200000 0xD00000>; /* 13MB */
- };
- partition@f00000 {
- label = "ImgSel Image A Catch";
- reg = <0xF00000 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@f80000 {
- label = "Image B (FSBL, PMU, ATF, U-Boot)";
- reg = <0xF80000 0xD00000>; /* 13MB */
- };
- partition@1c80000 {
- label = "ImgSel Image B Catch";
- reg = <0x1C80000 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@1d00000 {
- label = "Open_2";
- reg = <0x1D00000 0x100000>; /* 1MB */
- };
- partition@1e00000 {
- label = "Recovery Image";
- reg = <0x1E00000 0x200000>; /* 2MB */
- read-only;
- lock;
- };
- partition@2000000 {
- label = "Recovery Image Backup";
- reg = <0x2000000 0x200000>; /* 2MB */
- read-only;
- lock;
- };
- partition@2200000 {
- label = "U-Boot storage variables";
- reg = <0x2200000 0x20000>; /* 128KB */
- };
- partition@2220000 {
- label = "U-Boot storage variables backup";
- reg = <0x2220000 0x20000>; /* 128KB */
- };
- partition@2240000 {
- label = "SHA256";
- reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
- read-only;
- lock;
- };
- partition@2280000 {
- label = "Secure OS Storage";
- reg = <0x2280000 0x20000>; /* 128KB */
- };
- partition@22A0000 {
- label = "User";
- reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "Image Selector";
+ reg = <0x0 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@80000 {
+ label = "Image Selector Golden";
+ reg = <0x80000 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@100000 {
+ label = "Persistent Register";
+ reg = <0x100000 0x20000>; /* 128KB */
+ };
+ partition@120000 {
+ label = "Persistent Register Backup";
+ reg = <0x120000 0x20000>; /* 128KB */
+ };
+ partition@140000 {
+ label = "Open_1";
+ reg = <0x140000 0xC0000>; /* 768KB */
+ };
+ partition@200000 {
+ label = "Image A (FSBL, PMU, ATF, U-Boot)";
+ reg = <0x200000 0xD00000>; /* 13MB */
+ };
+ partition@f00000 {
+ label = "ImgSel Image A Catch";
+ reg = <0xF00000 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@f80000 {
+ label = "Image B (FSBL, PMU, ATF, U-Boot)";
+ reg = <0xF80000 0xD00000>; /* 13MB */
+ };
+ partition@1c80000 {
+ label = "ImgSel Image B Catch";
+ reg = <0x1C80000 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@1d00000 {
+ label = "Open_2";
+ reg = <0x1D00000 0x100000>; /* 1MB */
+ };
+ partition@1e00000 {
+ label = "Recovery Image";
+ reg = <0x1E00000 0x200000>; /* 2MB */
+ read-only;
+ lock;
+ };
+ partition@2000000 {
+ label = "Recovery Image Backup";
+ reg = <0x2000000 0x200000>; /* 2MB */
+ read-only;
+ lock;
+ };
+ partition@2200000 {
+ label = "U-Boot storage variables";
+ reg = <0x2200000 0x20000>; /* 128KB */
+ };
+ partition@2220000 {
+ label = "U-Boot storage variables backup";
+ reg = <0x2220000 0x20000>; /* 128KB */
+ };
+ partition@2240000 {
+ label = "SHA256";
+ reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
+ read-only;
+ lock;
+ };
+ partition@2280000 {
+ label = "Secure OS Storage";
+ reg = <0x2280000 0x20000>; /* 128KB */
+ };
+ partition@22A0000 {
+ label = "User";
+ reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
+ };
};
};
};
--
2.36.1



2023-06-05 11:29:29

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH v2 6/6] arm64: zynqmp: Used fixed-partitions for QSPI in k26



On 5/22/23 16:59, Michal Simek wrote:
> Using fixed partitions is recommended way how to describe QSPI. Also add
> label for qspi flash memory to be able to reference it in future.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> (no changes since v1)
>
> ---
> .../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 169 +++++++++---------
> 1 file changed, 88 insertions(+), 81 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> index 84e18fdce775..dfd1a18f5a10 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> @@ -127,87 +127,94 @@ spi_flash: flash@0 { /* MT25QU512A */
> spi-tx-bus-width = <4>;
> spi-rx-bus-width = <4>;
> spi-max-frequency = <40000000>; /* 40MHz */
> - partition@0 {
> - label = "Image Selector";
> - reg = <0x0 0x80000>; /* 512KB */
> - read-only;
> - lock;
> - };
> - partition@80000 {
> - label = "Image Selector Golden";
> - reg = <0x80000 0x80000>; /* 512KB */
> - read-only;
> - lock;
> - };
> - partition@100000 {
> - label = "Persistent Register";
> - reg = <0x100000 0x20000>; /* 128KB */
> - };
> - partition@120000 {
> - label = "Persistent Register Backup";
> - reg = <0x120000 0x20000>; /* 128KB */
> - };
> - partition@140000 {
> - label = "Open_1";
> - reg = <0x140000 0xC0000>; /* 768KB */
> - };
> - partition@200000 {
> - label = "Image A (FSBL, PMU, ATF, U-Boot)";
> - reg = <0x200000 0xD00000>; /* 13MB */
> - };
> - partition@f00000 {
> - label = "ImgSel Image A Catch";
> - reg = <0xF00000 0x80000>; /* 512KB */
> - read-only;
> - lock;
> - };
> - partition@f80000 {
> - label = "Image B (FSBL, PMU, ATF, U-Boot)";
> - reg = <0xF80000 0xD00000>; /* 13MB */
> - };
> - partition@1c80000 {
> - label = "ImgSel Image B Catch";
> - reg = <0x1C80000 0x80000>; /* 512KB */
> - read-only;
> - lock;
> - };
> - partition@1d00000 {
> - label = "Open_2";
> - reg = <0x1D00000 0x100000>; /* 1MB */
> - };
> - partition@1e00000 {
> - label = "Recovery Image";
> - reg = <0x1E00000 0x200000>; /* 2MB */
> - read-only;
> - lock;
> - };
> - partition@2000000 {
> - label = "Recovery Image Backup";
> - reg = <0x2000000 0x200000>; /* 2MB */
> - read-only;
> - lock;
> - };
> - partition@2200000 {
> - label = "U-Boot storage variables";
> - reg = <0x2200000 0x20000>; /* 128KB */
> - };
> - partition@2220000 {
> - label = "U-Boot storage variables backup";
> - reg = <0x2220000 0x20000>; /* 128KB */
> - };
> - partition@2240000 {
> - label = "SHA256";
> - reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
> - read-only;
> - lock;
> - };
> - partition@2280000 {
> - label = "Secure OS Storage";
> - reg = <0x2280000 0x20000>; /* 128KB */
> - };
> - partition@22A0000 {
> - label = "User";
> - reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + partition@0 {
> + label = "Image Selector";
> + reg = <0x0 0x80000>; /* 512KB */
> + read-only;
> + lock;
> + };
> + partition@80000 {
> + label = "Image Selector Golden";
> + reg = <0x80000 0x80000>; /* 512KB */
> + read-only;
> + lock;
> + };
> + partition@100000 {
> + label = "Persistent Register";
> + reg = <0x100000 0x20000>; /* 128KB */
> + };
> + partition@120000 {
> + label = "Persistent Register Backup";
> + reg = <0x120000 0x20000>; /* 128KB */
> + };
> + partition@140000 {
> + label = "Open_1";
> + reg = <0x140000 0xC0000>; /* 768KB */
> + };
> + partition@200000 {
> + label = "Image A (FSBL, PMU, ATF, U-Boot)";
> + reg = <0x200000 0xD00000>; /* 13MB */
> + };
> + partition@f00000 {
> + label = "ImgSel Image A Catch";
> + reg = <0xF00000 0x80000>; /* 512KB */
> + read-only;
> + lock;
> + };
> + partition@f80000 {
> + label = "Image B (FSBL, PMU, ATF, U-Boot)";
> + reg = <0xF80000 0xD00000>; /* 13MB */
> + };
> + partition@1c80000 {
> + label = "ImgSel Image B Catch";
> + reg = <0x1C80000 0x80000>; /* 512KB */
> + read-only;
> + lock;
> + };
> + partition@1d00000 {
> + label = "Open_2";
> + reg = <0x1D00000 0x100000>; /* 1MB */
> + };
> + partition@1e00000 {
> + label = "Recovery Image";
> + reg = <0x1E00000 0x200000>; /* 2MB */
> + read-only;
> + lock;
> + };
> + partition@2000000 {
> + label = "Recovery Image Backup";
> + reg = <0x2000000 0x200000>; /* 2MB */
> + read-only;
> + lock;
> + };
> + partition@2200000 {
> + label = "U-Boot storage variables";
> + reg = <0x2200000 0x20000>; /* 128KB */
> + };
> + partition@2220000 {
> + label = "U-Boot storage variables backup";
> + reg = <0x2220000 0x20000>; /* 128KB */
> + };
> + partition@2240000 {
> + label = "SHA256";
> + reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
> + read-only;
> + lock;
> + };
> + partition@2280000 {
> + label = "Secure OS Storage";
> + reg = <0x2280000 0x20000>; /* 128KB */
> + };
> + partition@22A0000 {
> + label = "User";
> + reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
> + };
> };
> };
> };

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs