[PATCH 4/9] arm64: zynqmp: Use fixed-partitions for MTD

Michal Simek michal.simek at amd.com
Tue Jun 9 09:48:18 CEST 2026


Describe flash and NAND MTD partitions using the fixed-partitions
compatible under a dedicated partitions subnode. U-Boot only creates
slave MTD devices from this binding in add_mtd_partitions_of(), so
mtd list can show named partitions.

Signed-off-by: Michal Simek <michal.simek at amd.com>
---

 arch/arm/dts/zynqmp-sc-revB.dts               | 170 +++++++++---------
 .../zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts  |  38 ++--
 arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts    |  14 +-
 arch/arm/dts/zynqmp-vpk120-revA.dts           |  14 +-
 arch/arm/dts/zynqmp-zc1232-revA.dts           |  40 +++--
 arch/arm/dts/zynqmp-zc1254-revA.dts           |  38 ++--
 arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts      |  38 ++--
 arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts      | 136 +++++++-------
 arch/arm/dts/zynqmp-zc1751-xm017-dc3.dts      | 109 +++++------
 arch/arm/dts/zynqmp-zc1751-xm018-dc4.dts      |  38 ++--
 arch/arm/dts/zynqmp-zcu102-revA.dts           |  38 ++--
 arch/arm/dts/zynqmp-zcu104-revA.dts           |  38 ++--
 arch/arm/dts/zynqmp-zcu104-revC.dts           |  38 ++--
 arch/arm/dts/zynqmp-zcu106-revA.dts           |  38 ++--
 arch/arm/dts/zynqmp-zcu111-revA.dts           |  38 ++--
 arch/arm/dts/zynqmp-zcu1275-revA.dts          |  38 ++--
 arch/arm/dts/zynqmp-zcu1275-revB.dts          |  38 ++--
 17 files changed, 491 insertions(+), 410 deletions(-)

diff --git a/arch/arm/dts/zynqmp-sc-revB.dts b/arch/arm/dts/zynqmp-sc-revB.dts
index 4367136cae8f..afaecfa5a27a 100644
--- a/arch/arm/dts/zynqmp-sc-revB.dts
+++ b/arch/arm/dts/zynqmp-sc-revB.dts
@@ -193,93 +193,97 @@
 	/* QSPI should also have PINCTRL setup */
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* mt25qu512abb8e12 512Mib */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <40000000>; /* 40MHz */
-		partition at 0 {
-			label = "Image Selector";
-			reg = <0x0 0x80000>; /* 512KB */
-			read-only;
-			lock;
-		};
-		partition at 80000 {
-			label = "Image Selector Golden";
-			reg = <0x80000 0x80000>; /* 512KB */
-			read-only;
-			lock;
-		};
-		partition at 100000 {
-			label = "Persistent Register";
-			reg = <0x100000 0x20000>; /* 128KB */
-		};
-		partition at 120000 {
-			label = "Persistent Register Backup";
-			reg = <0x120000 0x20000>; /* 128KB */
-		};
-		partition at 140000 {
-			label = "Open_1";
-			reg = <0x140000 0xc0000>; /* 768KB */
-		};
-		partition at 200000 {
-			label = "Image A (FSBL, PMU, ATF, U-Boot)";
-			reg = <0x200000 0xd00000>; /* 13MB */
-		};
-		partition at f00000 {
-			label = "ImgSel Image A Catch";
-			reg = <0xf00000 0x80000>; /* 512KB */
-			read-only;
-			lock;
-		};
-		partition at f80000 {
-			label = "Image B (FSBL, PMU, ATF, U-Boot)";
-			reg = <0xf80000 0xd00000>; /* 13MB */
-		};
-		partition at 1c80000 {
-			label = "ImgSel Image B Catch";
-			reg = <0x1c80000 0x80000>; /* 512KB */
-			read-only;
-			lock;
-		};
-		partition at 1d00000 {
-			label = "Open_2";
-			reg = <0x1d00000 0x100000>; /* 1MB */
-		};
-		partition at 1e00000 {
-			label = "Recovery Image";
-			reg = <0x1e00000 0x200000>; /* 2MB */
-			read-only;
-			lock;
-		};
-		partition at 2000000 {
-			label = "Recovery Image Backup";
-			reg = <0x2000000 0x200000>; /* 2MB */
-			read-only;
-			lock;
-		};
-		partition at 2200000 {
-			label = "U-Boot storage variables";
-			reg = <0x2200000 0x20000>; /* 128KB */
-		};
-		partition at 2220000 {
-			label = "U-Boot storage variables backup";
-			reg = <0x2220000 0x20000>; /* 128KB */
-		};
-		partition at 2240000 {
-			label = "SHA256";
-			reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
-			read-only;
-			lock;
-		};
-		partition at 2280000 {
-			label = "Secure OS Storage";
-			reg = <0x2280000 0x20000>; /* 128KB */
-		};
-		partition at 22a0000 {
-			label = "User";
-			reg = <0x22a0000 0x1d60000>; /* 29.375 MB */
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "Image Selector";
+				reg = <0x0 0x80000>; /* 512KB */
+				read-only;
+				lock;
+			};
+			partition at 80000 {
+				label = "Image Selector Golden";
+				reg = <0x80000 0x80000>; /* 512KB */
+				read-only;
+				lock;
+			};
+			partition at 100000 {
+				label = "Persistent Register";
+				reg = <0x100000 0x20000>; /* 128KB */
+			};
+			partition at 120000 {
+				label = "Persistent Register Backup";
+				reg = <0x120000 0x20000>; /* 128KB */
+			};
+			partition at 140000 {
+				label = "Open_1";
+				reg = <0x140000 0xc0000>; /* 768KB */
+			};
+			partition at 200000 {
+				label = "Image A (FSBL, PMU, ATF, U-Boot)";
+				reg = <0x200000 0xd00000>; /* 13MB */
+			};
+			partition at f00000 {
+				label = "ImgSel Image A Catch";
+				reg = <0xf00000 0x80000>; /* 512KB */
+				read-only;
+				lock;
+			};
+			partition at f80000 {
+				label = "Image B (FSBL, PMU, ATF, U-Boot)";
+				reg = <0xf80000 0xd00000>; /* 13MB */
+			};
+			partition at 1c80000 {
+				label = "ImgSel Image B Catch";
+				reg = <0x1c80000 0x80000>; /* 512KB */
+				read-only;
+				lock;
+			};
+			partition at 1d00000 {
+				label = "Open_2";
+				reg = <0x1d00000 0x100000>; /* 1MB */
+			};
+			partition at 1e00000 {
+				label = "Recovery Image";
+				reg = <0x1e00000 0x200000>; /* 2MB */
+				read-only;
+				lock;
+			};
+			partition at 2000000 {
+				label = "Recovery Image Backup";
+				reg = <0x2000000 0x200000>; /* 2MB */
+				read-only;
+				lock;
+			};
+			partition at 2200000 {
+				label = "U-Boot storage variables";
+				reg = <0x2200000 0x20000>; /* 128KB */
+			};
+			partition at 2220000 {
+				label = "U-Boot storage variables backup";
+				reg = <0x2220000 0x20000>; /* 128KB */
+			};
+			partition at 2240000 {
+				label = "SHA256";
+				reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
+				read-only;
+				lock;
+			};
+			partition at 2280000 {
+				label = "Secure OS Storage";
+				reg = <0x2280000 0x20000>; /* 128KB */
+			};
+			partition at 22a0000 {
+				label = "User";
+				reg = <0x22a0000 0x1d60000>; /* 29.375 MB */
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts b/arch/arm/dts/zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts
index 2037686b9b45..1dc0414b33d6 100644
--- a/arch/arm/dts/zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts
+++ b/arch/arm/dts/zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts
@@ -63,23 +63,27 @@
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <166000000>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		partition at 0 {
-			label = "qspi-boot-bin";
-			reg = <0x00000 0x60000>;
-		};
-		partition at 60000 {
-			label = "qspi-u-boot-itb";
-			reg = <0x60000 0x100000>;
-		};
-		partition at 160000 {
-			label = "qspi-u-boot-env";
-			reg = <0x160000 0x20000>;
-		};
-		partition at 200000 {
-			label = "qspi-rootfs";
-			reg = <0x200000 0x1e00000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "qspi-boot-bin";
+				reg = <0x00000 0x60000>;
+			};
+			partition at 60000 {
+				label = "qspi-u-boot-itb";
+				reg = <0x60000 0x100000>;
+			};
+			partition at 160000 {
+				label = "qspi-u-boot-env";
+				reg = <0x160000 0x20000>;
+			};
+			partition at 200000 {
+				label = "qspi-rootfs";
+				reg = <0x200000 0x1e00000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts b/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
index e9c6d249a8d1..94167770ed60 100644
--- a/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
+++ b/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
@@ -88,15 +88,19 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* u285 - mt25qu512abb8e12 512Mib */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>;
 		spi-tx-bus-width = <4>; /* maybe 4 here */
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <108000000>;
-		partition at 0 { /* for testing purpose */
-			label = "qspi";
-			reg = <0 0x4000000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi";
+				reg = <0 0x4000000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-vpk120-revA.dts b/arch/arm/dts/zynqmp-vpk120-revA.dts
index bd1e25571870..3e461d9c4d06 100644
--- a/arch/arm/dts/zynqmp-vpk120-revA.dts
+++ b/arch/arm/dts/zynqmp-vpk120-revA.dts
@@ -88,15 +88,19 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* mt25qu512abb8e12 512Mib */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <108000000>;
-		partition at 0 { /* for testing purpose */
-			label = "qspi";
-			reg = <0 0x4000000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi";
+				reg = <0 0x4000000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zc1232-revA.dts b/arch/arm/dts/zynqmp-zc1232-revA.dts
index 9dcb90953712..34e5b6edab10 100644
--- a/arch/arm/dts/zynqmp-zc1232-revA.dts
+++ b/arch/arm/dts/zynqmp-zc1232-revA.dts
@@ -40,28 +40,32 @@
 &qspi {
 	status = "okay";
 	flash at 0 {
-		compatible = "m25p80", "jedec,spi-nor"; /* 32MB FIXME */
-		#address-cells = <1>;
-		#size-cells = <1>;
+		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
 		reg = <0x0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zc1254-revA.dts b/arch/arm/dts/zynqmp-zc1254-revA.dts
index cf3e95832040..827143377b96 100644
--- a/arch/arm/dts/zynqmp-zc1254-revA.dts
+++ b/arch/arm/dts/zynqmp-zc1254-revA.dts
@@ -42,27 +42,31 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0x0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts b/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts
index 32f317f3df40..33efdbf0e25e 100644
--- a/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts
+++ b/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts
@@ -357,28 +357,32 @@
 	num-cs = <2>;
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* Micron MT25QU512ABB8ESF */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>, <1>;
 		parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 64MB */
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts b/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts
index e3d5cf972e83..13c304520a60 100644
--- a/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts
+++ b/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts
@@ -138,8 +138,6 @@
 
 	nand at 0 {
 		reg = <0x0>;
-		#address-cells = <0x2>;
-		#size-cells = <0x1>;
 		nand-ecc-mode = "hw";
 		nand-rb = <0>;
 		label = "main-storage-0";
@@ -147,35 +145,39 @@
 		nand-ecc-strength = <24>;
 		nand-on-flash-bbt;
 
-		partition at 0 {	/* for testing purpose */
-			label = "nand-fsbl-uboot";
-			reg = <0x0 0x0 0x400000>;
-		};
-		partition at 1 {	/* for testing purpose */
-			label = "nand-linux";
-			reg = <0x0 0x400000 0x1400000>;
-		};
-		partition at 2 {	/* for testing purpose */
-			label = "nand-device-tree";
-			reg = <0x0 0x1800000 0x400000>;
-		};
-		partition at 3 {	/* for testing purpose */
-			label = "nand-rootfs";
-			reg = <0x0 0x1c00000 0x1400000>;
-		};
-		partition at 4 {	/* for testing purpose */
-			label = "nand-bitstream";
-			reg = <0x0 0x3000000 0x400000>;
-		};
-		partition at 5 {	/* for testing purpose */
-			label = "nand-misc";
-			reg = <0x0 0x3400000 0xfcc00000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <2>;
+			#size-cells = <1>;
+
+			partition at 0 {	/* for testing purpose */
+				label = "nand-fsbl-uboot";
+				reg = <0x0 0x0 0x400000>;
+			};
+			partition at 1 {	/* for testing purpose */
+				label = "nand-linux";
+				reg = <0x0 0x400000 0x1400000>;
+			};
+			partition at 2 {	/* for testing purpose */
+				label = "nand-device-tree";
+				reg = <0x0 0x1800000 0x400000>;
+			};
+			partition at 3 {	/* for testing purpose */
+				label = "nand-rootfs";
+				reg = <0x0 0x1c00000 0x1400000>;
+			};
+			partition at 4 {	/* for testing purpose */
+				label = "nand-bitstream";
+				reg = <0x0 0x3000000 0x400000>;
+			};
+			partition at 5 {	/* for testing purpose */
+				label = "nand-misc";
+				reg = <0x0 0x3400000 0xfcc00000>;
+			};
 		};
 	};
 	nand at 1 {
 		reg = <0x1>;
-		#address-cells = <0x2>;
-		#size-cells = <0x1>;
 		nand-ecc-mode = "hw";
 		nand-rb = <0>;
 		label = "main-storage-1";
@@ -183,29 +185,35 @@
 		nand-ecc-strength = <24>;
 		nand-on-flash-bbt;
 
-		partition at 0 {	/* for testing purpose */
-			label = "nand1-fsbl-uboot";
-			reg = <0x0 0x0 0x400000>;
-		};
-		partition at 1 {	/* for testing purpose */
-			label = "nand1-linux";
-			reg = <0x0 0x400000 0x1400000>;
-		};
-		partition at 2 {	/* for testing purpose */
-			label = "nand1-device-tree";
-			reg = <0x0 0x1800000 0x400000>;
-		};
-		partition at 3 {	/* for testing purpose */
-			label = "nand1-rootfs";
-			reg = <0x0 0x1c00000 0x1400000>;
-		};
-		partition at 4 {	/* for testing purpose */
-			label = "nand1-bitstream";
-			reg = <0x0 0x3000000 0x400000>;
-		};
-		partition at 5 {	/* for testing purpose */
-			label = "nand1-misc";
-			reg = <0x0 0x3400000 0xfcc00000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <2>;
+			#size-cells = <1>;
+
+			partition at 0 {	/* for testing purpose */
+				label = "nand1-fsbl-uboot";
+				reg = <0x0 0x0 0x400000>;
+			};
+			partition at 1 {	/* for testing purpose */
+				label = "nand1-linux";
+				reg = <0x0 0x400000 0x1400000>;
+			};
+			partition at 2 {	/* for testing purpose */
+				label = "nand1-device-tree";
+				reg = <0x0 0x1800000 0x400000>;
+			};
+			partition at 3 {	/* for testing purpose */
+				label = "nand1-rootfs";
+				reg = <0x0 0x1c00000 0x1400000>;
+			};
+			partition at 4 {	/* for testing purpose */
+				label = "nand1-bitstream";
+				reg = <0x0 0x3000000 0x400000>;
+			};
+			partition at 5 {	/* for testing purpose */
+				label = "nand1-misc";
+				reg = <0x0 0x3400000 0xfcc00000>;
+			};
 		};
 	};
 };
@@ -503,15 +511,18 @@
 	pinctrl-0 = <&pinctrl_spi0_default>;
 
 	spi0_flash0: flash at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
 		compatible = "sst,sst25wf080", "jedec,spi-nor";
 		spi-max-frequency = <50000000>;
 		reg = <0>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		partition at 0 {
-			label = "spi0-data";
-			reg = <0x0 0x100000>;
+			partition at 0 {
+				label = "spi0-data";
+				reg = <0x0 0x100000>;
+			};
 		};
 	};
 };
@@ -523,15 +534,18 @@
 	pinctrl-0 = <&pinctrl_spi1_default>;
 
 	spi1_flash0: flash at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
 		compatible = "atmel,at45db041e", "atmel,at45", "atmel,dataflash";
 		spi-max-frequency = <20000000>;
 		reg = <0>;
-
-		partition at 0 {
-			label = "spi1-data";
-			reg = <0x0 0x84000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "spi1-data";
+				reg = <0x0 0x84000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zc1751-xm017-dc3.dts b/arch/arm/dts/zynqmp-zc1751-xm017-dc3.dts
index a8856c20f5b5..796669fc92c0 100644
--- a/arch/arm/dts/zynqmp-zc1751-xm017-dc3.dts
+++ b/arch/arm/dts/zynqmp-zc1751-xm017-dc3.dts
@@ -133,8 +133,6 @@
 
 	nand at 0 {
 		reg = <0x0>;
-		#address-cells = <0x2>;
-		#size-cells = <0x1>;
 		nand-ecc-mode = "hw";
 		nand-rb = <0>;
 		label = "main-storage-0";
@@ -142,65 +140,74 @@
 		nand-ecc-strength = <24>;
 		nand-on-flash-bbt;
 
-		partition at 0 {	/* for testing purpose */
-			label = "nand-fsbl-uboot";
-			reg = <0x0 0x0 0x400000>;
-		};
-		partition at 1 {	/* for testing purpose */
-			label = "nand-linux";
-			reg = <0x0 0x400000 0x1400000>;
-		};
-		partition at 2 {	/* for testing purpose */
-			label = "nand-device-tree";
-			reg = <0x0 0x1800000 0x400000>;
-		};
-		partition at 3 {	/* for testing purpose */
-			label = "nand-rootfs";
-			reg = <0x0 0x1c00000 0x1400000>;
-		};
-		partition at 4 {	/* for testing purpose */
-			label = "nand-bitstream";
-			reg = <0x0 0x3000000 0x400000>;
-		};
-		partition at 5 {	/* for testing purpose */
-			label = "nand-misc";
-			reg = <0x0 0x3400000 0xfcc00000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <2>;
+			#size-cells = <1>;
+
+			partition at 0 {	/* for testing purpose */
+				label = "nand-fsbl-uboot";
+				reg = <0x0 0x0 0x400000>;
+			};
+			partition at 1 {	/* for testing purpose */
+				label = "nand-linux";
+				reg = <0x0 0x400000 0x1400000>;
+			};
+			partition at 2 {	/* for testing purpose */
+				label = "nand-device-tree";
+				reg = <0x0 0x1800000 0x400000>;
+			};
+			partition at 3 {	/* for testing purpose */
+				label = "nand-rootfs";
+				reg = <0x0 0x1c00000 0x1400000>;
+			};
+			partition at 4 {	/* for testing purpose */
+				label = "nand-bitstream";
+				reg = <0x0 0x3000000 0x400000>;
+			};
+			partition at 5 {	/* for testing purpose */
+				label = "nand-misc";
+				reg = <0x0 0x3400000 0xfcc00000>;
+			};
 		};
 	};
 	nand at 1 {
 		reg = <0x1>;
-		#address-cells = <0x2>;
-		#size-cells = <0x1>;
 		nand-ecc-mode = "hw";
 		nand-rb = <0>;
 		label = "main-storage-1";
 		nand-ecc-step-size = <1024>;
 		nand-ecc-strength = <24>;
 		nand-on-flash-bbt;
-
-		partition at 0 {	/* for testing purpose */
-			label = "nand1-fsbl-uboot";
-			reg = <0x0 0x0 0x400000>;
-		};
-		partition at 1 {	/* for testing purpose */
-			label = "nand1-linux";
-			reg = <0x0 0x400000 0x1400000>;
-		};
-		partition at 2 {	/* for testing purpose */
-			label = "nand1-device-tree";
-			reg = <0x0 0x1800000 0x400000>;
-		};
-		partition at 3 {	/* for testing purpose */
-			label = "nand1-rootfs";
-			reg = <0x0 0x1c00000 0x1400000>;
-		};
-		partition at 4 {	/* for testing purpose */
-			label = "nand1-bitstream";
-			reg = <0x0 0x3000000 0x400000>;
-		};
-		partition at 5 {	/* for testing purpose */
-			label = "nand1-misc";
-			reg = <0x0 0x3400000 0xfcc00000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <2>;
+			#size-cells = <1>;
+
+			partition at 0 {	/* for testing purpose */
+				label = "nand1-fsbl-uboot";
+				reg = <0x0 0x0 0x400000>;
+			};
+			partition at 1 {	/* for testing purpose */
+				label = "nand1-linux";
+				reg = <0x0 0x400000 0x1400000>;
+			};
+			partition at 2 {	/* for testing purpose */
+				label = "nand1-device-tree";
+				reg = <0x0 0x1800000 0x400000>;
+			};
+			partition at 3 {	/* for testing purpose */
+				label = "nand1-rootfs";
+				reg = <0x0 0x1c00000 0x1400000>;
+			};
+			partition at 4 {	/* for testing purpose */
+				label = "nand1-bitstream";
+				reg = <0x0 0x3000000 0x400000>;
+			};
+			partition at 5 {	/* for testing purpose */
+				label = "nand1-misc";
+				reg = <0x0 0x3400000 0xfcc00000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zc1751-xm018-dc4.dts b/arch/arm/dts/zynqmp-zc1751-xm018-dc4.dts
index 3b03b39e456a..cd80aed9a388 100644
--- a/arch/arm/dts/zynqmp-zc1751-xm018-dc4.dts
+++ b/arch/arm/dts/zynqmp-zc1751-xm018-dc4.dts
@@ -174,27 +174,31 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0x0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>; /* also DUAL configuration possible */
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu102-revA.dts b/arch/arm/dts/zynqmp-zcu102-revA.dts
index 3d71742fcbee..9590dd1cd92a 100644
--- a/arch/arm/dts/zynqmp-zcu102-revA.dts
+++ b/arch/arm/dts/zynqmp-zcu102-revA.dts
@@ -986,28 +986,32 @@
 	num-cs = <2>;
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>, <1>;
 		parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 64MB */
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu104-revA.dts b/arch/arm/dts/zynqmp-zcu104-revA.dts
index b4e62bf6bb61..3fe7cb410bcf 100644
--- a/arch/arm/dts/zynqmp-zcu104-revA.dts
+++ b/arch/arm/dts/zynqmp-zcu104-revA.dts
@@ -452,27 +452,31 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* n25q512a 128MiB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0x0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu104-revC.dts b/arch/arm/dts/zynqmp-zcu104-revC.dts
index f7a91402a097..21ce50e1da93 100644
--- a/arch/arm/dts/zynqmp-zcu104-revC.dts
+++ b/arch/arm/dts/zynqmp-zcu104-revC.dts
@@ -464,27 +464,31 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* n25q512a 128MiB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0x0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>;
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu106-revA.dts b/arch/arm/dts/zynqmp-zcu106-revA.dts
index 5eb5f77220d6..0ac1472c55dd 100644
--- a/arch/arm/dts/zynqmp-zcu106-revA.dts
+++ b/arch/arm/dts/zynqmp-zcu106-revA.dts
@@ -980,28 +980,32 @@
 	num-cs = <2>;
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>, <1>;
 		parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 64MB */
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu111-revA.dts b/arch/arm/dts/zynqmp-zcu111-revA.dts
index 72d331a740fa..7894daeca943 100644
--- a/arch/arm/dts/zynqmp-zcu111-revA.dts
+++ b/arch/arm/dts/zynqmp-zcu111-revA.dts
@@ -803,28 +803,32 @@
 	num-cs = <2>;
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0>, <1>;
 		parallel-memories = /bits/ 64 <0x10000000 0x10000000>; /* 256MB */
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu1275-revA.dts b/arch/arm/dts/zynqmp-zcu1275-revA.dts
index cc9f5b160254..b9d51fadc2ab 100644
--- a/arch/arm/dts/zynqmp-zcu1275-revA.dts
+++ b/arch/arm/dts/zynqmp-zcu1275-revA.dts
@@ -46,27 +46,31 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0x0>;
 		spi-tx-bus-width = <4>;
 		spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/zynqmp-zcu1275-revB.dts b/arch/arm/dts/zynqmp-zcu1275-revB.dts
index f78da0362800..f26d9843243b 100644
--- a/arch/arm/dts/zynqmp-zcu1275-revB.dts
+++ b/arch/arm/dts/zynqmp-zcu1275-revB.dts
@@ -73,27 +73,31 @@
 	status = "okay";
 	flash at 0 {
 		compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
-		#address-cells = <1>;
-		#size-cells = <1>;
 		reg = <0x0>;
 		spi-tx-bus-width = <1>;
 		spi-rx-bus-width = <1>;
 		spi-max-frequency = <108000000>; /* Based on DC1 spec */
-		partition at 0 { /* for testing purpose */
-			label = "qspi-fsbl-uboot";
-			reg = <0x0 0x100000>;
-		};
-		partition at 100000 { /* for testing purpose */
-			label = "qspi-linux";
-			reg = <0x100000 0x500000>;
-		};
-		partition at 600000 { /* for testing purpose */
-			label = "qspi-device-tree";
-			reg = <0x600000 0x20000>;
-		};
-		partition at 620000 { /* for testing purpose */
-			label = "qspi-rootfs";
-			reg = <0x620000 0x5e0000>;
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 { /* for testing purpose */
+				label = "qspi-fsbl-uboot";
+				reg = <0x0 0x100000>;
+			};
+			partition at 100000 { /* for testing purpose */
+				label = "qspi-linux";
+				reg = <0x100000 0x500000>;
+			};
+			partition at 600000 { /* for testing purpose */
+				label = "qspi-device-tree";
+				reg = <0x600000 0x20000>;
+			};
+			partition at 620000 { /* for testing purpose */
+				label = "qspi-rootfs";
+				reg = <0x620000 0x5e0000>;
+			};
 		};
 	};
 };
-- 
2.43.0



More information about the U-Boot mailing list