From nobody Tue Feb 10 12:57:32 2026 Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC74F2D7DC8 for ; Wed, 24 Dec 2025 15:37:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.66 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766590680; cv=none; b=GiSd8TgSdXO/sVQ90Co6CjSyPw31OK8Wn1i4j5avf/UWlB++UmtN9rvUMGJaZ/+6KsbTZvjBbKB7n4ZTnt9mezZ0SxutlZdAi4ctTTKHP/CIwsraMEiCcAKWQUPc902iYDLBt8jXHJpKjrIKiMrVFopLeP75E7XRd1iBq8bxMxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766590680; c=relaxed/simple; bh=V8fJyoE3LNmPBgSO30v6KNG/sPF/vAGaGrWf60SkB60=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HFe5akNLCid/VujYJ+qPGUq9b9KTlws3XTSnqUiyWZQt7QieGoTr+uSdhB6aDKb8FUXmlS3yyPGExwJGtiVVRz3ZTsyqAN74azrUDJoHyvhstdhGycue8FsuizuPhm7eNudGGVWXlve1iqGcyITUXwW7hBMIVx0H7wKUWY7Zg8U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=osyx.tech; spf=fail smtp.mailfrom=osyx.tech; dkim=pass (2048-bit key) header.d=osyx-tech.20230601.gappssmtp.com header.i=@osyx-tech.20230601.gappssmtp.com header.b=lspV5/gc; arc=none smtp.client-ip=209.85.128.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=osyx.tech Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=osyx.tech Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=osyx-tech.20230601.gappssmtp.com header.i=@osyx-tech.20230601.gappssmtp.com header.b="lspV5/gc" Received: by mail-wm1-f66.google.com with SMTP id 5b1f17b1804b1-4779ce2a624so44920655e9.2 for ; Wed, 24 Dec 2025 07:37:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osyx-tech.20230601.gappssmtp.com; s=20230601; t=1766590676; x=1767195476; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ehfxbEVnQJDewCWJrGs2ak+KMNFyhQdtz7cgsTLXZDQ=; b=lspV5/gchyq4xWp86C72sTepEjpZdHeRIiVuv2WoESg6nplu/SfcHkz6D6eX5R1Qur GUdODIZmOEXW2ojXt93eHIa8aGk8G22q4+DstgKqrcrpAj1DC4Rn/QhZd4oSAmy25Ddx 3GWQiUenQ8i0OEwiEkKNbtUKycydOfeuRKfl+iNrjrvIX+nHDEdQwt2AkymF0TQvNr95 7qAx77yTrcYq4V0tgImQ1B6OGGIdYlD6/pfYsKoqk3ruTroANNoTY6EEFwwrxaH9NaUL obuoMTbCCcDCMbkZwVl9n+BBoPx7aZ31iIVz+tnf3QaPShbe1kIVhlcDATaecRyREzHY MzPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766590676; x=1767195476; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ehfxbEVnQJDewCWJrGs2ak+KMNFyhQdtz7cgsTLXZDQ=; b=hv8U8FQ156tvtywGCYYiZS7BzHEV36yy7zDuiwTQX/TQTEndBNQwZZfVmIL7iKfXXB Pm8QzOgeMMoP6vFFfMPNNiRgN086lvvhl8FmUvmWQ67gezGFZI1AVI0YIkju0x2n3UXW X+zLP2QvynN3gbpRusqn2q1+ZZbo7/YXVVRcnOvbGl5ZSv7SqcLojuHYKTdKbdMbEJNx n9OK4WQ9qgKC/RZmnbKBQnqe9kBtFAbXPd2dHYcT9ywf7sfKuYXx5MrJs3zsSm0LuiJg tRKl9mgKeI1cjmIVZ+VVa2qDamVrgrXd5wrVA3YyXXx7JCejruHMyO0DWNw3ShltI8HP nwCw== X-Gm-Message-State: AOJu0YwxebuDXqnR/iJOokryIo6Mp+n92jChmosUMEHaUuJxU9l/3pXa h2eOIbSTJGwrWrS2y0eaz5fPmbKcNTG+rW0f7Ij91FXYfTk4sWYLiDiq3rIME06VxsxJqPZvxp8 kbHDg09dN X-Gm-Gg: AY/fxX7LzkXNxqbTbk3fUrAJ1wjx6aXGNtvCQzQFRa84poTX/+TqjgzRzQh+h2rhPpl wn8KSBBBhbtP67s89/Olx7mjvqLfuUFngu8BrsW8vLqe2GUhkEvzSKPlpeCk705Tfc95RUrMvJV DKxRyIHM5JkWGbWpjk4k54KouySyLAZ4MGXrwjihjaWdg1sNLiUJePT5Euor74pp9bhd87aIpGr 8ZRxzIfPgKltaVUcH5cnMhQaOLmBHebudToJvrMv8n4dLAsnAICtvnSR5orn8IKwGRGSoXaq0WS RfSwyYlglO9oxn2ooiJO/HoFXLKsMKD1YoHvZP+tEXkW1IEwheHrtLVTN0qnu0YOlfeLQegOnvs e006WCoLxZGyowAXgTWZ3Qs80P4LaJIYwdjNvwM38c5CfZOiqWaMiWf0yEkdseWcEzYw4CyWfuR VNLLaqa4QpteiJ2oG1/Q== X-Google-Smtp-Source: AGHT+IFqP19dt2VG1hPpM2WYJhNqheRS/5whksM3UdvdL2gWh2MKdA11saX7GOb3KMgk63dxD3aa3A== X-Received: by 2002:a05:6000:2909:b0:42b:2dfd:5350 with SMTP id ffacd0b85a97d-4324e7077c8mr21170738f8f.56.1766584379482; Wed, 24 Dec 2025 05:52:59 -0800 (PST) Received: from jp-linux.Home ([2001:8a0:f59c:a900:39e4:e84d:192a:5c5c]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324eaa64cesm34494677f8f.35.2025.12.24.05.52.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Dec 2025 05:52:59 -0800 (PST) From: joaopeixoto@osyx.tech To: linux-kernel@vger.kernel.org Cc: ajd@linux.ibm.com, alex@ghiti.fr, aou@eecs.berkeley.edu, bagasdotme@gmail.com, catalin.marinas@arm.com, conor+dt@kernel.org, corbet@lwn.net, dan.j.williams@intel.com, davidmcerdeira@osyx.tech, devicetree@vger.kernel.org, dev@kael-k.io, gregkh@linuxfoundation.org, haren@linux.ibm.com, heiko@sntech.de, joaopeixoto@osyx.tech, jose@osyx.tech, kever.yang@rock-chips.com, krzk+dt@kernel.org, linux-arm-kernel@lists.infradead.org, linux@armlinux.org.uk, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, maddy@linux.ibm.com, mani@kernel.org, nathan@kernel.org, neil.armstrong@linaro.org, palmer@dabbelt.com, pjw@kernel.org, prabhakar.mahadev-lad.rj@bp.renesas.com, robh@kernel.org, will@kernel.org Subject: [PATCH 1/5] dt-bindings: Add Bao IPC shared memory driver binding Date: Wed, 24 Dec 2025 13:52:13 +0000 Message-ID: <20251224135217.25350-2-joaopeixoto@osyx.tech> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251224135217.25350-1-joaopeixoto@osyx.tech> References: <20251224135217.25350-1-joaopeixoto@osyx.tech> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Jo=C3=A3o Peixoto This patch adds a Device Tree binding for the Bao IPC shared memory device, which provides a standardized description of the hardware interface used for inter-VM communication in Bao-based systems. The binding documents the following properties: - compatible: "bao,ipcshmem" - reg: Memory region for the shared memory device - id: Unique device identifier - read-channel: [offset, size] for reading from the shared memory - write-channel: [offset, size] for writing to the shared memory - interrupts: Interrupts used by the device This enables kernel drivers and userspace tools to correctly instantiate and configure Bao IPC shared memory devices based on the DT description, facilitating efficient communication between VMs. Signed-off-by: Jo=C3=A3o Peixoto --- .../devicetree/bindings/bao/ipcshmem.yaml | 99 +++++++++++++++++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + 2 files changed, 101 insertions(+) create mode 100644 Documentation/devicetree/bindings/bao/ipcshmem.yaml diff --git a/Documentation/devicetree/bindings/bao/ipcshmem.yaml b/Document= ation/devicetree/bindings/bao/ipcshmem.yaml new file mode 100644 index 000000000000..398ac610c29f --- /dev/null +++ b/Documentation/devicetree/bindings/bao/ipcshmem.yaml @@ -0,0 +1,99 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/bao/ipcshmem.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Bao IPC Shared Memory Device + +maintainers: + - Jos=C3=A9 Martins + - David Cerdeira + - Jo=C3=A3o Peixoto + +description: | + Shared memory based communication device for Bao hypervisor guests. + It allows the kernel to interface with guests running under + the Bao hypervisor, providing a character device interface + for exchanging data through dedicated shared-memory regions. + +properties: + compatible: + const: "bao,ipcshmem" + + reg: + description: | + Memory resource for the shared memory device. + maxItems: 4 + type: array + items: + type: integer + + id: + description: Driver instance ID + type: integer + minimum: 0 + + read-channel: + description: | + Defines the shared-memory region used by the guest =E2=86=92 host da= ta path. + + The value is a 2-cell array describing a sub-region inside the main + `reg` area: + - The first cell is the byte offset from the beginning of the + shared-memory region specified in `reg`. + - The second cell is the size of the readable region in bytes. + + The driver will only read data from this sub-region. + type: array + items: + type: integer + minItems: 2 + maxItems: 2 + + write-channel: + description: | + Defines the shared-memory region used by the host =E2=86=92 guest da= ta path. + + The value is a 2-cell array describing a sub-region inside the main + `reg` area: + - The first cell is the byte offset from the beginning of the + shared-memory region specified in `reg`. + - The second cell is the size of the writable region in bytes. + + The driver will only write data into this sub-region. + type: array + items: + type: integer + minItems: 2 + maxItems: 2 + + interrupts: + description: | + Interrupt specification for the device. + type: array + items: + type: integer + minItems: 3 + maxItems: 3 + +required: + - compatible + - reg + - id + - read-channel + - write-channel + - interrupts + +additionalProperties: false + +examples: + - | + bao-ipc@f0000000 { + compatible =3D "bao,ipcshmem"; + reg =3D <0x0 0xf0000000 0x0 0x00010000>; + read-channel =3D <0x0 0x2000>; + write-channel =3D <0x2000 0x2000>; + interrupts =3D <0 52 1>; + id =3D <0>; + }; diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Docum= entation/devicetree/bindings/vendor-prefixes.yaml index c7591b2aec2a..c047fbd6b91a 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -223,6 +223,8 @@ patternProperties: description: Shenzhen AZW Technology Co., Ltd. "^baikal,.*": description: BAIKAL ELECTRONICS, JSC + "^bao,.*": + description: Bao Hypervisor "^bananapi,.*": description: BIPAI KEJI LIMITED "^beacon,.*": --=20 2.43.0