[RFC PATCH v3 1/6] dt-bindings: bao: add IPC shared-memory device

From: João Peixoto

Date: Fri Aug 07 2026 - 03:41:35 EST


Add the device-tree binding for the Bao hypervisor IPC shared-memory
device, used by a Bao guest to exchange data with a peer guest over a
shared-memory region.

Co-developed-by: José Martins <jose@xxxxxxxxx>
Signed-off-by: José Martins <jose@xxxxxxxxx>
Co-developed-by: David Cerdeira <davidmcerdeira@xxxxxxxxx>
Signed-off-by: David Cerdeira <davidmcerdeira@xxxxxxxxx>
Signed-off-by: João Peixoto <jpeixoto@xxxxxxxxx>
---
v3:
- Describe the read and write channels through reg/reg-names instead of the
custom read-channel/write-channel properties; drop those properties and the
"id" property; add a vendor "bao,id" for the hypercall channel id; use a
generic node name (shmem@...) (Krzysztof Kozlowski).
- Clarify the "bao" vendor-prefix description.
- Subject: drop the redundant trailing "binding" (Krzysztof Kozlowski).
- Add José's and David's Co-developed-by/Signed-off-by.

.../devicetree/bindings/bao/bao,ipcshmem.yaml | 59 +++++++++++++++++++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
2 files changed, 61 insertions(+)
create mode 100644 Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml

diff --git a/Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml b/Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml
new file mode 100644
index 000000000000..60947150d576
--- /dev/null
+++ b/Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bao/bao,ipcshmem.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bao Hypervisor IPC Shared Memory Device
+
+maintainers:
+ - João Peixoto <jpeixoto@xxxxxxxxx>
+ - José Martins <jose@xxxxxxxxx>
+ - David Cerdeira <davidmcerdeira@xxxxxxxxx>
+
+description: |
+ Shared-memory device exposed by the Bao hypervisor to a guest so that it
+ can exchange data with a peer guest. The hypervisor provides two
+ contiguous memory regions, one the guest reads from (written by the peer)
+ and one the guest writes to (read by the peer). A write is signalled to
+ the peer through a hypercall identified by bao,id.
+
+properties:
+ compatible:
+ const: bao,ipcshmem
+
+ reg:
+ items:
+ - description: region read by this guest and written by the peer
+ - description: region written by this guest and read by the peer
+
+ reg-names:
+ items:
+ - const: read
+ - const: write
+
+ bao,id:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Hypervisor-assigned identifier of this shared-memory channel. The
+ guest passes it to the Bao hypercall that notifies the peer of a
+ write, so it must match the identifier configured for the channel in
+ the hypervisor.
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - bao,id
+
+additionalProperties: false
+
+examples:
+ - |
+ shmem@f0000000 {
+ compatible = "bao,ipcshmem";
+ reg = <0xf0000000 0x2000>,
+ <0xf0002000 0x2000>;
+ reg-names = "read", "write";
+ bao,id = <0>;
+ };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 396044f368e7..b11b3dd995a5 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -231,6 +231,8 @@ patternProperties:
description: Shenzhen AZW Technology Co., Ltd.
"^baikal,.*":
description: BAIKAL ELECTRONICS, JSC
+ "^bao,.*":
+ description: Bao Project (https://github.com/bao-project)
"^bananapi,.*":
description: BIPAI KEJI LIMITED
"^beacon,.*":
--
2.43.0