public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Herve Codina <herve.codina@bootlin.com>
To: David Gibson <david@gibson.dropbear.id.au>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: Ayush Singh <ayush@beagleboard.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	devicetree-compiler@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, devicetree-spec@vger.kernel.org,
	Hui Pu <hui.pu@gehealthcare.com>,
	Ian Ray <ian.ray@gehealthcare.com>,
	Luca Ceresoli <luca.ceresoli@bootlin.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Herve Codina <herve.codina@bootlin.com>
Subject: [RFC PATCH 77/77] tests: fdtaddon: Add a test using more realistic dts and dtsa
Date: Mon, 12 Jan 2026 15:20:07 +0100	[thread overview]
Message-ID: <20260112142009.1006236-78-herve.codina@bootlin.com> (raw)
In-Reply-To: <20260112142009.1006236-1-herve.codina@bootlin.com>

The dts and dtsa files used in the fdtaddon tests were centered on
specific addon features in order to test those specific features.

In term of structure or naming, they are not representative of real
use-cases.

This new test uses realistic dts and dtsa files with naming and
structures tradidionally found in real cases.

The dts describes the hardware of the base board.

The hardware structure of the base board is the following:

       +--------------+
       | 5V regulator +-------+
       +--------------+       |
                              |
  +----------------------+    |       +----------------+
  |        SOC           |    |       | Connector A    |
  |                      |    |       |                |
  | +-----------------+  |    +-------+ 5v             |
  | + i2c1 controller +---------------+ i2c bus        |
  | +-----------------+  |    +-------+ gpio 0 / irq 0 |
  |                      |    |   +---+ gpio 1 / irq 1 |
  | +------------------+ |    |   |   +----------------+
  | | gpio1 controller | |    |   |
  | |         gpio #10 +------+   |
  | +------------------+ |        |
  |                      |        |
  | +---------------- -+ |        |
  | | gpio2 controller | |        |
  | |          gpio #3 +----------+
  | +------------------+ |
  +----------------------+

The connector 'Connector A' is the connector where the
pluggable board can be connected to. It is described in the dts and
related export symbols are set in order to be usable by the dtsa
describing the pluggable board.

The hardware structure of the pluggable board is the following:

                               +---------------+
                               | EEPROM        |
                               | i2c addr 0x51 |
                               |               +
                       +-------+ i2c           |
                       |       +---------------+
                       |
                       |       +---------------+
                       |       | Expander IO   |
  +----------------+   |       | i2c addr 0x23 |
  |   Connector    |   |       |               |
  |                |   |   +---+ Vcc1          |
  |             5v +---|---+---+ Vcc2          |
  |        i2c bus +---+-------+ i2c           |
  | gpio 0 / irq 0 +-----------+ irq           |
  | gpio 1 / irq 1 +-----------+ reset         |
  +----------------+           +---------------+

This structure is described in the addon dtsa. This addon dtsa is
expected to be applied to the base device tree node describing the
connector the pluggable board is connected to.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
 ...ddon_realistic_addon-merged.dtb.dts.expect | 91 ++++++++++++++++++
 ...fdtaddon_realistic_addon-merged.dtb.expect | 93 +++++++++++++++++++
 tests/fdtaddon_realistic_addon.dtba.expect    | 32 +++++++
 tests/fdtaddon_realistic_addon.dtsa           | 50 ++++++++++
 tests/fdtaddon_realistic_base.dtb.expect      | 72 ++++++++++++++
 tests/fdtaddon_realistic_base.dts             | 74 +++++++++++++++
 tests/run_tests.sh                            | 14 +++
 7 files changed, 426 insertions(+)
 create mode 100644 tests/fdtaddon_realistic_addon-merged.dtb.dts.expect
 create mode 100644 tests/fdtaddon_realistic_addon-merged.dtb.expect
 create mode 100644 tests/fdtaddon_realistic_addon.dtba.expect
 create mode 100644 tests/fdtaddon_realistic_addon.dtsa
 create mode 100644 tests/fdtaddon_realistic_base.dtb.expect
 create mode 100644 tests/fdtaddon_realistic_base.dts

diff --git a/tests/fdtaddon_realistic_addon-merged.dtb.dts.expect b/tests/fdtaddon_realistic_addon-merged.dtb.dts.expect
new file mode 100644
index 0000000..49aa950
--- /dev/null
+++ b/tests/fdtaddon_realistic_addon-merged.dtb.dts.expect
@@ -0,0 +1,91 @@
+/dts-v1/;
+
+/ {
+
+	regulator {
+		compatible = "regulator-fixed";
+		regulator-min-microvolt = <0x4c4b40>;
+		regulator-max-microvolt = <0x4c4b40>;
+		gpios = <&{/soc/gpio@2000} 0x05 0x00>;
+		phandle = <0x05>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <0x01>;
+		#size-cells = <0x01>;
+
+		i2c@1000 {
+			compatible = "xyz,i2c-controller";
+			reg = <0x1000 0x100>;
+			#address-cells = <0x01>;
+			#size-cells = <0x00>;
+			phandle = <0x06>;
+		};
+
+		gpio@2000 {
+			compatible = "xyz,gpio-controller";
+			reg = <0x2000 0x100>;
+			gpio-controller;
+			#gpio-cells = <0x02>;
+			interrupt-controller;
+			#interrupt-cells = <0x02>;
+			#address-cells = <0x00>;
+			phandle = <0x01>;
+		};
+
+		gpio@3000 {
+			compatible = "xyz,gpio-controller";
+			reg = <0x3000 0x100>;
+			gpio-controller;
+			#gpio-cells = <0x02>;
+			interrupt-controller;
+			#interrupt-cells = <0x02>;
+			#address-cells = <0x00>;
+			phandle = <0x02>;
+		};
+	};
+
+	connector-a {
+		compatible = "abc,foo-connector";
+		#address-cells = <0x00>;
+		#interrupt-cells = <0x02>;
+		interrupt-map = <0x00 0x00 &{/soc/gpio@2000} 0x0a 0x00 0x00 0x100 &{/soc/gpio@2000} 0x0a 0x100 0x01 0x00 &{/soc/gpio@3000} 0x03 0x00 0x01 0x100 &{/soc/gpio@3000} 0x03 0x100>;
+		#gpio-cells = <0x02>;
+		gpio-map-mask = <0x0f 0x00>;
+		gpio-map-pass-thru = <0x00 0x0f>;
+		gpio-map = <0x00 0x00 &{/soc/gpio@2000} 0x0a 0x00 0x01 0x00 &{/soc/gpio@3000} 0x03 0x00>;
+		phandle = <0x03>;
+
+		/export/ connector: &{/connector-a};
+		/export/ conn_i2c: &{/connector-a/conn-i2c};
+		/export/ conn_5v: &{/regulator};
+
+		conn-i2c {
+			compatible = "i2c-bus-extension";
+			i2c-parent = <&{/soc/i2c@1000}>;
+			#address-cells = <0x01>;
+			#size-cells = <0x00>;
+			phandle = <0x04>;
+
+			eeprom@51 {
+				reg = <0x51>;
+				compatible = "xxx,eeprom";
+			};
+
+			gpio@23 {
+				reset-gpios = <&{/connector-a} 0x01 0x00>;
+				vcc2-supply = <&{/regulator}>;
+				vcc1-supply = <&{/regulator}>;
+				#interrupt-cells = <0x02>;
+				interrupt-controller;
+				interrupts = <0x00 0x100>;
+				interrupt-parent = <&{/connector-a}>;
+				#gpio-cells = <0x02>;
+				gpio-controller;
+				reg = <0x23>;
+				compatible = "xxx,expander-io";
+			};
+		};
+	};
+};
diff --git a/tests/fdtaddon_realistic_addon-merged.dtb.expect b/tests/fdtaddon_realistic_addon-merged.dtb.expect
new file mode 100644
index 0000000..fbebb4c
--- /dev/null
+++ b/tests/fdtaddon_realistic_addon-merged.dtb.expect
@@ -0,0 +1,93 @@
+/dts-v1/;
+
+/ {
+    regulator {
+        compatible = "regulator-fixed";
+        regulator-min-microvolt = <0x004c4b40>;
+        regulator-max-microvolt = <0x004c4b40>;
+        gpios = <0x00000001 0x00000005 0x00000000>;
+        // [FDT_REF_LOCAL] gpios[0]
+        phandle = <0x00000005>;
+    };
+    soc {
+        compatible = "simple-bus";
+        #address-cells = <0x00000001>;
+        #size-cells = <0x00000001>;
+        i2c@1000 {
+            compatible = "xyz,i2c-controller";
+            reg = <0x00001000 0x00000100>;
+            #address-cells = <0x00000001>;
+            #size-cells = <0x00000000>;
+            phandle = <0x00000006>;
+        };
+        gpio@2000 {
+            compatible = "xyz,gpio-controller";
+            reg = <0x00002000 0x00000100>;
+            gpio-controller;
+            #gpio-cells = <0x00000002>;
+            interrupt-controller;
+            #interrupt-cells = <0x00000002>;
+            #address-cells = <0x00000000>;
+            phandle = <0x00000001>;
+        };
+        gpio@3000 {
+            compatible = "xyz,gpio-controller";
+            reg = <0x00003000 0x00000100>;
+            gpio-controller;
+            #gpio-cells = <0x00000002>;
+            interrupt-controller;
+            #interrupt-cells = <0x00000002>;
+            #address-cells = <0x00000000>;
+            phandle = <0x00000002>;
+        };
+    };
+    connector-a {
+        compatible = "abc,foo-connector";
+        #address-cells = <0x00000000>;
+        #interrupt-cells = <0x00000002>;
+        interrupt-map = <0x00000000 0x00000000 0x00000001 0x0000000a 0x00000000 0x00000000 0x00000100 0x00000001 0x0000000a 0x00000100 0x00000001 0x00000000 0x00000002 0x00000003 0x00000000 0x00000001 0x00000100 0x00000002 0x00000003 0x00000100>;
+        // [FDT_REF_LOCAL] interrupt-map[8]
+        // [FDT_REF_LOCAL] interrupt-map[28]
+        // [FDT_REF_LOCAL] interrupt-map[48]
+        // [FDT_REF_LOCAL] interrupt-map[68]
+        #gpio-cells = <0x00000002>;
+        gpio-map-mask = <0x0000000f 0x00000000>;
+        gpio-map-pass-thru = <0x00000000 0x0000000f>;
+        gpio-map = <0x00000000 0x00000000 0x00000001 0x0000000a 0x00000000 0x00000001 0x00000000 0x00000002 0x00000003 0x00000000>;
+        // [FDT_REF_LOCAL] gpio-map[8]
+        // [FDT_REF_LOCAL] gpio-map[28]
+        phandle = <0x00000003>;
+        // [FDT_EXPORT_SYM] 'connector' -> phandle 0x00000003
+        // [FDT_EXPORT_SYM] 'conn_i2c' -> phandle 0x00000004
+        // [FDT_EXPORT_SYM] 'conn_5v' -> phandle 0x00000005
+        conn-i2c {
+            compatible = "i2c-bus-extension";
+            i2c-parent = <0x00000006>;
+            // [FDT_REF_LOCAL] i2c-parent[0]
+            #address-cells = <0x00000001>;
+            #size-cells = <0x00000000>;
+            phandle = <0x00000004>;
+            eeprom@51 {
+                reg = <0x00000051>;
+                compatible = "xxx,eeprom";
+            };
+            gpio@23 {
+                reset-gpios = <0x00000003 0x00000001 0x00000000>;
+                // [FDT_REF_LOCAL] reset-gpios[0]
+                vcc2-supply = <0x00000005>;
+                // [FDT_REF_LOCAL] vcc2-supply[0]
+                vcc1-supply = <0x00000005>;
+                // [FDT_REF_LOCAL] vcc1-supply[0]
+                #interrupt-cells = <0x00000002>;
+                interrupt-controller;
+                interrupts = <0x00000000 0x00000100>;
+                interrupt-parent = <0x00000003>;
+                // [FDT_REF_LOCAL] interrupt-parent[0]
+                #gpio-cells = <0x00000002>;
+                gpio-controller;
+                reg = <0x00000023>;
+                compatible = "xxx,expander-io";
+            };
+        };
+    };
+};
diff --git a/tests/fdtaddon_realistic_addon.dtba.expect b/tests/fdtaddon_realistic_addon.dtba.expect
new file mode 100644
index 0000000..bc2efd4
--- /dev/null
+++ b/tests/fdtaddon_realistic_addon.dtba.expect
@@ -0,0 +1,32 @@
+/dts-v1/;
+/addon/;
+
+// [FDT_IMPORT_SYM] 'connector' (abc,foo-connector)
+// [FDT_IMPORT_SYM] 'conn_5v' ()
+&connector {
+    conn-i2c {
+        gpio@23 {
+            compatible = "xxx,expander-io";
+            reg = <0x00000023>;
+            gpio-controller;
+            #gpio-cells = <0x00000002>;
+            interrupt-parent = <0xffffffff>;
+            // [FDT_REF_PHANDLE] interrupt-parent[0], ref = connector
+            interrupts = <0x00000000 0x00000100>;
+            interrupt-controller;
+            #interrupt-cells = <0x00000002>;
+            vcc1-supply = <0xffffffff>;
+            // [FDT_REF_PHANDLE] vcc1-supply[0], ref = conn_5v
+            vcc2-supply = <0xffffffff>;
+            // [FDT_REF_PHANDLE] vcc2-supply[0], ref = connector.conn_5v
+            reset-gpios = <0xffffffff 0x00000001 0x00000000>;
+            // [FDT_REF_PHANDLE] reset-gpios[0], ref = connector
+        };
+    };
+};
+&connector.conn_i2c {
+    eeprom@51 {
+        compatible = "xxx,eeprom";
+        reg = <0x00000051>;
+    };
+};
diff --git a/tests/fdtaddon_realistic_addon.dtsa b/tests/fdtaddon_realistic_addon.dtsa
new file mode 100644
index 0000000..255a1ff
--- /dev/null
+++ b/tests/fdtaddon_realistic_addon.dtsa
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * Copyright (C) 2026 Bootlin
+ */
+
+/dts-v1/;
+/addon/;
+
+/import/ connector: "abc,foo-connector";
+/import/ conn_5v: "";
+
+&connector {
+	/*
+	 * Add a gpio expander at the conn-i2c node (i2c extension bus)
+	 * available at the connector node
+	 */
+	conn-i2c {
+		gpio@23 {
+			compatible = "xxx,expander-io";
+			reg = <0x23>;
+			gpio-controller;
+			#gpio-cells = <2>;
+
+			/* Use the connector interrupt number 0 */
+			interrupt-parent = <&connector>;
+			interrupts = <0 0x100>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+
+			/* Use 5V power-supply wired to the connector */
+			vcc1-supply = <&conn_5v>; /* Need to be an imported symbol */
+			vcc2-supply = <&connector.conn_5v>; /* Only connector need to be imported */
+
+			/* Use the connector gpio number 1 */
+			reset-gpios = <&connector 1 0>;
+		};
+	};
+};
+
+/*
+ * Use namespace reference to add an EEPROM at i2c bus connected
+ * to the connector. It can be an i2c extension or the i2c controller itself.
+ * We don't know and we don't have to know.
+ */
+&connector.conn_i2c {
+	eeprom@51 {
+		compatible = "xxx,eeprom";
+		reg = <0x51>;
+	};
+};
diff --git a/tests/fdtaddon_realistic_base.dtb.expect b/tests/fdtaddon_realistic_base.dtb.expect
new file mode 100644
index 0000000..9064a7a
--- /dev/null
+++ b/tests/fdtaddon_realistic_base.dtb.expect
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+/ {
+    regulator {
+        compatible = "regulator-fixed";
+        regulator-min-microvolt = <0x004c4b40>;
+        regulator-max-microvolt = <0x004c4b40>;
+        gpios = <0x00000001 0x00000005 0x00000000>;
+        // [FDT_REF_LOCAL] gpios[0]
+        phandle = <0x00000005>;
+    };
+    soc {
+        compatible = "simple-bus";
+        #address-cells = <0x00000001>;
+        #size-cells = <0x00000001>;
+        i2c@1000 {
+            compatible = "xyz,i2c-controller";
+            reg = <0x00001000 0x00000100>;
+            #address-cells = <0x00000001>;
+            #size-cells = <0x00000000>;
+            phandle = <0x00000006>;
+        };
+        gpio@2000 {
+            compatible = "xyz,gpio-controller";
+            reg = <0x00002000 0x00000100>;
+            gpio-controller;
+            #gpio-cells = <0x00000002>;
+            interrupt-controller;
+            #interrupt-cells = <0x00000002>;
+            #address-cells = <0x00000000>;
+            phandle = <0x00000001>;
+        };
+        gpio@3000 {
+            compatible = "xyz,gpio-controller";
+            reg = <0x00003000 0x00000100>;
+            gpio-controller;
+            #gpio-cells = <0x00000002>;
+            interrupt-controller;
+            #interrupt-cells = <0x00000002>;
+            #address-cells = <0x00000000>;
+            phandle = <0x00000002>;
+        };
+    };
+    connector-a {
+        compatible = "abc,foo-connector";
+        #address-cells = <0x00000000>;
+        #interrupt-cells = <0x00000002>;
+        interrupt-map = <0x00000000 0x00000000 0x00000001 0x0000000a 0x00000000 0x00000000 0x00000100 0x00000001 0x0000000a 0x00000100 0x00000001 0x00000000 0x00000002 0x00000003 0x00000000 0x00000001 0x00000100 0x00000002 0x00000003 0x00000100>;
+        // [FDT_REF_LOCAL] interrupt-map[8]
+        // [FDT_REF_LOCAL] interrupt-map[28]
+        // [FDT_REF_LOCAL] interrupt-map[48]
+        // [FDT_REF_LOCAL] interrupt-map[68]
+        #gpio-cells = <0x00000002>;
+        gpio-map-mask = <0x0000000f 0x00000000>;
+        gpio-map-pass-thru = <0x00000000 0x0000000f>;
+        gpio-map = <0x00000000 0x00000000 0x00000001 0x0000000a 0x00000000 0x00000001 0x00000000 0x00000002 0x00000003 0x00000000>;
+        // [FDT_REF_LOCAL] gpio-map[8]
+        // [FDT_REF_LOCAL] gpio-map[28]
+        phandle = <0x00000003>;
+        // [FDT_EXPORT_SYM] 'connector' -> phandle 0x00000003
+        // [FDT_EXPORT_SYM] 'conn_i2c' -> phandle 0x00000004
+        // [FDT_EXPORT_SYM] 'conn_5v' -> phandle 0x00000005
+        conn-i2c {
+            compatible = "i2c-bus-extension";
+            i2c-parent = <0x00000006>;
+            // [FDT_REF_LOCAL] i2c-parent[0]
+            #address-cells = <0x00000001>;
+            #size-cells = <0x00000000>;
+            phandle = <0x00000004>;
+        };
+    };
+};
diff --git a/tests/fdtaddon_realistic_base.dts b/tests/fdtaddon_realistic_base.dts
new file mode 100644
index 0000000..0c13f1a
--- /dev/null
+++ b/tests/fdtaddon_realistic_base.dts
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+/*
+ * Copyright (C) 2026 Bootlin
+ */
+
+/dts-v1/;
+
+/ {
+	conn_a_5v: regulator {
+		compatible = "regulator-fixed";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio1 5 0>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		i2c1: i2c@1000 {
+			compatible = "xyz,i2c-controller";
+			reg = <0x1000 0x100>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		gpio1: gpio@2000 {
+			compatible = "xyz,gpio-controller";
+			reg = <0x2000 0x100>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			#address-cells = <0>; /* interrupt-map usage */
+		};
+
+		gpio2: gpio@3000 {
+			compatible = "xyz,gpio-controller";
+			reg = <0x3000 0x100>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			#address-cells = <0>; /* interrupt-map usage */
+		};
+	};
+
+	conn_a: connector-a {
+		compatible = "abc,foo-connector";
+		#address-cells = <0>;
+		#interrupt-cells = <2>;
+		interrupt-map = <0 0     &gpio1 10 0>,
+				<0 0x100 &gpio1 10 0x100>,
+				<1 0     &gpio2 3 0>,
+				<1 0x100 &gpio2 3 0x100>;
+		#gpio-cells = <2>;
+		gpio-map-mask = <0xf 0x0>;
+		gpio-map-pass-thru = <0x0 0xf>;
+		gpio-map = <0 0 &gpio1 10 0>,
+			   <1 0 &gpio2 3 0>;
+
+		/export/ connector: &conn_a;
+		/export/ conn_i2c: &conn_a_i2c;
+		/export/ conn_5v: &conn_a_5v;
+
+		conn_a_i2c: conn-i2c {
+			compatible = "i2c-bus-extension";
+			i2c-parent = <&i2c1>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+	};
+};
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index 69ca39e..a6213ab 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -1242,6 +1242,20 @@ fdtaddon_tests() {
 
 	run_dtc_test -I dtb -O dts -o fdtaddon_stack_2nd-merged.dtb.dts fdtaddon_stack_2nd-merged.dtb
 	check_dts fdtaddon_stack_2nd-merged.dtb.dts
+
+	# More realistic dts and dtsa input files
+	run_dtc_test -I dts -O dtb -o fdtaddon_realistic_base.dtb "$SRCDIR/fdtaddon_realistic_base.dts"
+	check_dtb fdtaddon_realistic_base.dtb
+
+	run_dtc_test -I dts -O dtb -o fdtaddon_realistic_addon.dtba "$SRCDIR/fdtaddon_realistic_addon.dtsa"
+	check_dtb fdtaddon_realistic_addon.dtba
+
+	run_fdtaddon_test -i fdtaddon_realistic_base.dtb -o fdtaddon_realistic_addon-merged.dtb \
+			  -t "/connector-a" fdtaddon_realistic_addon.dtba
+	check_dtb fdtaddon_realistic_addon-merged.dtb
+
+	run_dtc_test -I dtb -O dts -o fdtaddon_realistic_addon-merged.dtb.dts fdtaddon_realistic_addon-merged.dtb
+	check_dts fdtaddon_realistic_addon-merged.dtb.dts
 }
 
 pylibfdt_tests () {
-- 
2.52.0


  parent reply	other threads:[~2026-01-12 14:22 UTC|newest]

Thread overview: 160+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-12 14:18 [RFC PATCH 00/77] Add support for dtb metadata and addon device-trees Herve Codina
2026-01-12 14:18 ` [RFC PATCH 01/77] checks: Use consistent type for strspn() returned value Herve Codina
2026-01-12 14:55   ` Ayush Singh
2026-01-13  3:08   ` David Gibson
2026-01-13  4:42     ` David Gibson
2026-01-13  8:02       ` Herve Codina
2026-01-12 14:18 ` [RFC PATCH 02/77] Introduce v18 dtb version Herve Codina
2026-01-15  0:12   ` David Gibson
2026-01-16  9:09     ` Herve Codina
2026-01-19  5:13       ` David Gibson
2026-01-19  9:48         ` Herve Codina
2026-01-28  1:49           ` David Gibson
2026-01-20 20:38         ` Rob Herring
2026-01-29  1:40           ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 03/77] libfdt: Introduce fdt_next_tag_full() and use it in fdt_next_tag() Herve Codina
2026-01-15  0:17   ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 04/77] dtc: Allow to use data_append_markers() out of data.c Herve Codina
2026-01-15  0:18   ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 05/77] fdtdump: Change FDT_PROP prob handling to ease future addition Herve Codina
2026-01-12 15:41   ` Ayush Singh
2026-01-15  0:28     ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 06/77] Add support for FDT_REF_LOCAL dtb tag Herve Codina
2026-01-13 19:22   ` Rob Herring
2026-01-15  0:34     ` David Gibson
2026-01-15 15:54       ` Rob Herring
2026-01-16 10:16         ` Herve Codina
2026-01-16 10:17           ` Herve Codina
2026-01-19  6:16         ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 07/77] livetree: Improve get_node_by_phandle() Herve Codina
2026-01-15  0:41   ` David Gibson
2026-01-16 10:52     ` Herve Codina
2026-01-19  5:18       ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 08/77] dtc: Introduce update_phandles_ref() Herve Codina
2026-01-15  0:46   ` David Gibson
2026-01-16 11:26     ` Herve Codina
2026-01-19  5:21       ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 09/77] dtc: Introduce mark_local_phandles() Herve Codina
2026-01-15  0:48   ` David Gibson
2026-01-16 13:09     ` Herve Codina
2026-01-19  5:46       ` David Gibson
2026-01-19 12:14         ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 10/77] tests: Add basic metadata tests Herve Codina
2026-01-15  0:50   ` David Gibson
2026-01-16 13:36     ` Herve Codina
2026-01-19  5:32       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 11/77] Add support for FDT_REF_PHANDLE dtb tag Herve Codina
2026-01-15  1:24   ` David Gibson
2026-01-16 15:17     ` Herve Codina
2026-01-19  5:40       ` David Gibson
2026-01-19 13:19         ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 12/77] tests: metadata: Add external phandle reference tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 13/77] Introduce dt_flags field in dtb header Herve Codina
2026-01-15  1:29   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 14/77] tests: metadata: Add a first test related to the dt_flags header field Herve Codina
2026-01-12 14:19 ` [RFC PATCH 15/77] Add support for /addon/ keyword Herve Codina
2026-01-12 14:19 ` [RFC PATCH 16/77] tests: metadata: Add a test related to addon dt_flags header value Herve Codina
2026-01-12 14:19 ` [RFC PATCH 17/77] tests: metadata: Add a basic addon test Herve Codina
2026-01-12 14:19 ` [RFC PATCH 18/77] dtc-parser.y: Avoid an empty proplist Herve Codina
2026-01-15  1:34   ` David Gibson
2026-01-16 16:22     ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 19/77] dtc: Introduce export symbols Herve Codina
2026-01-15  5:52   ` David Gibson
2026-01-16 16:27     ` Herve Codina
2026-01-19  5:51       ` David Gibson
2026-01-19 13:51         ` Herve Codina
2026-01-21  2:35           ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 20/77] dtc: Add support for /export/ dts keyword parsing Herve Codina
2026-01-15  5:57   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 21/77] checks: Handle export symbols in fixup_phandle_references() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 22/77] dtc: Add export symbols (/export/ keyword) in generated dts file Herve Codina
2026-01-12 14:19 ` [RFC PATCH 23/77] dtc: Introduce mark_local_exports() Herve Codina
2026-01-15  6:01   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 24/77] dtc: Introduce update_exports_ref() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 25/77] Add support for FDT_EXPORT_SYM dtb tag Herve Codina
2026-01-15  6:23   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 26/77] tests: metadata: Add export symbols with local references tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 27/77] dtc: Add support for export symbols sorting Herve Codina
2026-01-12 14:19 ` [RFC PATCH 28/77] tests: metadata: Add a test " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 29/77] Add support for FDT_EXPORT_SYM_REF dtb tag Herve Codina
2026-01-15  6:25   ` David Gibson
2026-01-19 15:46     ` Herve Codina
2026-01-29  1:36       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 30/77] tests: metadata: Add export symbols with external references tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 31/77] dtc: Introduce import symbols Herve Codina
2026-01-12 14:19 ` [RFC PATCH 32/77] dtc-parser: Introduce last_header_flags Herve Codina
2026-01-15  6:31   ` David Gibson
2026-01-19 14:11     ` Herve Codina
2026-01-21  2:37       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 33/77] dtc: Add support for /import/ dts keyword parsing Herve Codina
2026-01-12 14:19 ` [RFC PATCH 34/77] dtc: Add import symbols (/import/ keyword) in generated dts file Herve Codina
2026-01-12 14:19 ` [RFC PATCH 35/77] Add support for FDT_IMPORT_SYM dtb tag Herve Codina
2026-01-15  6:41   ` David Gibson
2026-01-19 14:36     ` Herve Codina
2026-01-28  2:25       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 36/77] tests: metadata: Add import symbols tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 37/77] dtc: Add support for import symbols sorting Herve Codina
2026-01-12 14:19 ` [RFC PATCH 38/77] tests: metadata: Improve sort test to check " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 39/77] check: Get 'chosen' node using get_subnode() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 40/77] dtc: Introduce dti_get_node_by_path() Herve Codina
2026-01-15  6:47   ` David Gibson
2026-01-19 15:52     ` Herve Codina
2026-01-29  1:38       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 41/77] dtc: Introduce dti_get_node_by_label() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 42/77] dtc: Introduce dti_get_node_by_phandle() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 43/77] dtc: Introduce dti_get_node_by_ref() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 44/77] dtc: Introduce dti_get_node_phandle() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 45/77] dtc: Introduce dti_get_property_by_label() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 46/77] dtc: Introduce dti_get_marker_label() Herve Codina
2026-01-15  6:51   ` David Gibson
2026-01-19 16:02     ` Herve Codina
2026-01-21  9:02       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 47/77] dtc: Introduce dti_fill_fullpaths() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 48/77] dtc: Introduce orphan nodes Herve Codina
2026-01-12 14:19 ` [RFC PATCH 49/77] dtc: Handle orphan nodes in dti_get_xxx_by_yyy() Herve Codina
2026-01-15  6:55   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 50/77] dtc: Handle orphan nodes in mark_local_xxx() and update_xxx_ref() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 51/77] dtc: Avoid NULL fullpath for nodes in orphan trees Herve Codina
2026-01-15  6:56   ` David Gibson
2026-01-19 16:11     ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 52/77] checks: Perform checks for orphan nodes Herve Codina
2026-01-12 14:19 ` [RFC PATCH 53/77] dtc: Rename add_orphan_node() to plugin_add_orphan_node() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 54/77] dtc: Add basic support for addon orphan nodes dts parsing Herve Codina
2026-01-12 14:19 ` [RFC PATCH 55/77] dtc: Add orphan nodes in generated dts file Herve Codina
2026-01-12 14:19 ` [RFC PATCH 56/77] Add support for FDT_BEGIN_NODE_REF_SYM dtb tag Herve Codina
2026-01-12 14:19 ` [RFC PATCH 57/77] tests: metadata: Add basic test for addon orphan nodes Herve Codina
2026-01-12 14:19 ` [RFC PATCH 58/77] dtc: Add support for missing root node in addon device-tree Herve Codina
2026-01-12 14:19 ` [RFC PATCH 59/77] tests: metadata: Add a test for addon without root node Herve Codina
2026-01-12 14:19 ` [RFC PATCH 60/77] dtc: Allow parser_get_node_by_ref() to return an orphan node for merging purpose Herve Codina
2026-01-12 14:19 ` [RFC PATCH 61/77] tests: metadata: Add a test related to orphan node merging Herve Codina
2026-01-12 14:19 ` [RFC PATCH 62/77] dtc: Add support for orphan nodes sorting Herve Codina
2026-01-12 14:19 ` [RFC PATCH 63/77] tests: metadata: Improve sort test to check " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 64/77] dtc: Add support for references by path involving orphan nodes Herve Codina
2026-01-15  7:01   ` David Gibson
2026-01-19 16:38     ` Herve Codina
2026-01-21  9:06       ` David Gibson
2026-01-21 16:30         ` Herve Codina
2026-01-29  2:00           ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 65/77] tests: metadata: Add a test " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 66/77] dtc: Add support for namespace labels references Herve Codina
2026-01-12 14:19 ` [RFC PATCH 67/77] tests: metadata: Add a test " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 68/77] libfdt: Introduce fdt_getprop_by_offset_w() Herve Codina
2026-01-15  7:05   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 69/77] libfdt: Introduce fdt_getprop_offset() Herve Codina
2026-01-12 14:20 ` [RFC PATCH 70/77] libfdt: Add support for applying an addon on a base device-tree blob Herve Codina
2026-01-12 14:20 ` [RFC PATCH 71/77] Add fdtaddon tool to apply an addon Herve Codina
2026-01-12 14:20 ` [RFC PATCH 72/77] tests: Add a first basic test for fdtaddon Herve Codina
2026-01-12 14:20 ` [RFC PATCH 73/77] tests: fdtaddon: Add a basic test for addons using an orphan nodes Herve Codina
2026-01-12 14:20 ` [RFC PATCH 74/77] tests: fdtaddon: Add a basic test for addons with unresolved phandle references Herve Codina
2026-01-12 14:20 ` [RFC PATCH 75/77] tests: fdtaddon: Add a test for addons using namespace label references Herve Codina
2026-01-12 14:20 ` [RFC PATCH 76/77] tests: fdtaddon: Add a test for using 'stacked' addons Herve Codina
2026-01-12 14:20 ` Herve Codina [this message]
2026-01-12 14:49 ` [RFC PATCH 00/77] Add support for dtb metadata and addon device-trees Ayush Singh
2026-01-13 18:44 ` Rob Herring
2026-01-14 16:18   ` Herve Codina
2026-01-19  6:00     ` David Gibson
2026-01-27 15:19       ` Herve Codina
2026-01-27 22:06         ` Rob Herring
2026-01-29  5:08           ` David Gibson
2026-01-15  0:08 ` David Gibson
2026-01-15  7:11   ` David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260112142009.1006236-78-herve.codina@bootlin.com \
    --to=herve.codina@bootlin.com \
    --cc=ayush@beagleboard.org \
    --cc=conor+dt@kernel.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=devicetree-compiler@vger.kernel.org \
    --cc=devicetree-spec@vger.kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=hui.pu@gehealthcare.com \
    --cc=ian.ray@gehealthcare.com \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=robh@kernel.org \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox