[PATCH v2 0/6] virt: Add Bao hypervisor IPC and I/O dispatcher drivers

joaopeixoto@osyx.tech posted 6 patches 1 month ago
.../bindings/bao/bao,io-dispatcher.yaml       |  75 ++++
.../devicetree/bindings/bao/bao,ipcshmem.yaml |  82 ++++
.../devicetree/bindings/vendor-prefixes.yaml  |   2 +
.../userspace-api/ioctl/ioctl-number.rst      |   2 +
MAINTAINERS                                   |  13 +
arch/arm/include/asm/bao.h                    |  60 +++
arch/arm64/include/asm/bao.h                  |  60 +++
arch/riscv/include/asm/bao.h                  |  60 +++
drivers/virt/Kconfig                          |   2 +
drivers/virt/Makefile                         |   2 +
drivers/virt/bao/Kconfig                      |   5 +
drivers/virt/bao/Makefile                     |   4 +
drivers/virt/bao/io-dispatcher/Kconfig        |  15 +
drivers/virt/bao/io-dispatcher/Makefile       |   4 +
drivers/virt/bao/io-dispatcher/bao_drv.h      | 361 ++++++++++++++++
drivers/virt/bao/io-dispatcher/dm.c           | 405 ++++++++++++++++++
drivers/virt/bao/io-dispatcher/driver.c       | 185 ++++++++
drivers/virt/bao/io-dispatcher/intc.c         |  64 +++
drivers/virt/bao/io-dispatcher/io_client.c    | 405 ++++++++++++++++++
.../virt/bao/io-dispatcher/io_dispatcher.c    | 179 ++++++++
drivers/virt/bao/io-dispatcher/ioeventfd.c    | 323 ++++++++++++++
drivers/virt/bao/io-dispatcher/irqfd.c        | 314 ++++++++++++++
drivers/virt/bao/ipcshmem/Kconfig             |   8 +
drivers/virt/bao/ipcshmem/Makefile            |   3 +
drivers/virt/bao/ipcshmem/ipcshmem.c          | 252 +++++++++++
include/linux/bao.h                           |  44 ++
include/uapi/linux/bao.h                      |  98 +++++
27 files changed, 3027 insertions(+)
create mode 100644 Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml
create mode 100644 Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml
create mode 100644 arch/arm/include/asm/bao.h
create mode 100644 arch/arm64/include/asm/bao.h
create mode 100644 arch/riscv/include/asm/bao.h
create mode 100644 drivers/virt/bao/Kconfig
create mode 100644 drivers/virt/bao/Makefile
create mode 100644 drivers/virt/bao/io-dispatcher/Kconfig
create mode 100644 drivers/virt/bao/io-dispatcher/Makefile
create mode 100644 drivers/virt/bao/io-dispatcher/bao_drv.h
create mode 100644 drivers/virt/bao/io-dispatcher/dm.c
create mode 100644 drivers/virt/bao/io-dispatcher/driver.c
create mode 100644 drivers/virt/bao/io-dispatcher/intc.c
create mode 100644 drivers/virt/bao/io-dispatcher/io_client.c
create mode 100644 drivers/virt/bao/io-dispatcher/io_dispatcher.c
create mode 100644 drivers/virt/bao/io-dispatcher/ioeventfd.c
create mode 100644 drivers/virt/bao/io-dispatcher/irqfd.c
create mode 100644 drivers/virt/bao/ipcshmem/Kconfig
create mode 100644 drivers/virt/bao/ipcshmem/Makefile
create mode 100644 drivers/virt/bao/ipcshmem/ipcshmem.c
create mode 100644 include/linux/bao.h
create mode 100644 include/uapi/linux/bao.h
[PATCH v2 0/6] virt: Add Bao hypervisor IPC and I/O dispatcher drivers
Posted by joaopeixoto@osyx.tech 1 month ago
From: João Peixoto <joaopeixoto@osyx.tech>

This series introduces support for Bao hypervisor guest-side drivers
under drivers/virt/bao, along with the associated Device Tree bindings,
UAPI headers, and MAINTAINERS entries.

Bao is a lightweight static-partitioning hypervisor for embedded and
safety-critical systems. This series adds:
- Bao IPC shared memory driver: Enables Linux guests to communicate
with each other via shared memory regions.
- Bao I/O Dispatcher driver: Allows Bao VMs to share I/O devices using
device paravirtualization (VirtIO).

Key updates in this version to align with upstream requirements:
1. Switched to misc device API: Removed all cdev, class, and
alloc_chrdev_region code in favor of misc_register() for simpler,
standard device management.
2. Clean kernel style and formatting: All code passes checkpatch.pl,
with consistent variable declaration, function naming, and comment style.
3. Architecture abstraction: Consolidated ARM, ARM64, and RISC-V hypercall
logic into architecture-specific headers, removing in-driver #ifdefs.
4. Commit messages: Now concise and Linux-kernel-style, describing
behavior and impact clearly.
5. Device Tree compliance: Fixed all make dt_binding_check errors to
ensure DT binding correctness.

This series has been validated on Linux guests running under Bao
hypervisor, confirming correct initialization, IPC shared-memory
read/write operations, and I/O Dispatcher functionality for
backend VMs.

Feedback and review from maintainers of virtualization,
architecture-specific code (ARM, ARM64, RISC-V), Device Tree
bindings, and UAPI are welcome.

João Peixoto (6):
  dt-bindings: Add Bao IPC shared memory driver binding
  virt: bao: Add Bao IPC shared memory driver
  dt-bindings: Add Bao I/O dispatcher driver binding
  virt: bao: Add Bao I/O dispatcher driver
  virt: bao: Move BAO_IPCSHMEM_HYPERCALL_ID to common header
  MAINTAINERS: Add entries for Bao hypervisor drivers, headers, and DT
    bindings

 .../bindings/bao/bao,io-dispatcher.yaml       |  75 ++++
 .../devicetree/bindings/bao/bao,ipcshmem.yaml |  82 ++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 .../userspace-api/ioctl/ioctl-number.rst      |   2 +
 MAINTAINERS                                   |  13 +
 arch/arm/include/asm/bao.h                    |  60 +++
 arch/arm64/include/asm/bao.h                  |  60 +++
 arch/riscv/include/asm/bao.h                  |  60 +++
 drivers/virt/Kconfig                          |   2 +
 drivers/virt/Makefile                         |   2 +
 drivers/virt/bao/Kconfig                      |   5 +
 drivers/virt/bao/Makefile                     |   4 +
 drivers/virt/bao/io-dispatcher/Kconfig        |  15 +
 drivers/virt/bao/io-dispatcher/Makefile       |   4 +
 drivers/virt/bao/io-dispatcher/bao_drv.h      | 361 ++++++++++++++++
 drivers/virt/bao/io-dispatcher/dm.c           | 405 ++++++++++++++++++
 drivers/virt/bao/io-dispatcher/driver.c       | 185 ++++++++
 drivers/virt/bao/io-dispatcher/intc.c         |  64 +++
 drivers/virt/bao/io-dispatcher/io_client.c    | 405 ++++++++++++++++++
 .../virt/bao/io-dispatcher/io_dispatcher.c    | 179 ++++++++
 drivers/virt/bao/io-dispatcher/ioeventfd.c    | 323 ++++++++++++++
 drivers/virt/bao/io-dispatcher/irqfd.c        | 314 ++++++++++++++
 drivers/virt/bao/ipcshmem/Kconfig             |   8 +
 drivers/virt/bao/ipcshmem/Makefile            |   3 +
 drivers/virt/bao/ipcshmem/ipcshmem.c          | 252 +++++++++++
 include/linux/bao.h                           |  44 ++
 include/uapi/linux/bao.h                      |  98 +++++
 27 files changed, 3027 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml
 create mode 100644 Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml
 create mode 100644 arch/arm/include/asm/bao.h
 create mode 100644 arch/arm64/include/asm/bao.h
 create mode 100644 arch/riscv/include/asm/bao.h
 create mode 100644 drivers/virt/bao/Kconfig
 create mode 100644 drivers/virt/bao/Makefile
 create mode 100644 drivers/virt/bao/io-dispatcher/Kconfig
 create mode 100644 drivers/virt/bao/io-dispatcher/Makefile
 create mode 100644 drivers/virt/bao/io-dispatcher/bao_drv.h
 create mode 100644 drivers/virt/bao/io-dispatcher/dm.c
 create mode 100644 drivers/virt/bao/io-dispatcher/driver.c
 create mode 100644 drivers/virt/bao/io-dispatcher/intc.c
 create mode 100644 drivers/virt/bao/io-dispatcher/io_client.c
 create mode 100644 drivers/virt/bao/io-dispatcher/io_dispatcher.c
 create mode 100644 drivers/virt/bao/io-dispatcher/ioeventfd.c
 create mode 100644 drivers/virt/bao/io-dispatcher/irqfd.c
 create mode 100644 drivers/virt/bao/ipcshmem/Kconfig
 create mode 100644 drivers/virt/bao/ipcshmem/Makefile
 create mode 100644 drivers/virt/bao/ipcshmem/ipcshmem.c
 create mode 100644 include/linux/bao.h
 create mode 100644 include/uapi/linux/bao.h

-- 
2.43.0

Re: [PATCH v2 0/6] virt: Add Bao hypervisor IPC and I/O dispatcher drivers
Posted by Greg KH 1 month ago
On Wed, Jan 07, 2026 at 04:28:23PM +0000, joaopeixoto@osyx.tech wrote:
> From: João Peixoto <joaopeixoto@osyx.tech>
> 
> This series introduces support for Bao hypervisor guest-side drivers
> under drivers/virt/bao, along with the associated Device Tree bindings,
> UAPI headers, and MAINTAINERS entries.
> 
> Bao is a lightweight static-partitioning hypervisor for embedded and
> safety-critical systems. This series adds:
> - Bao IPC shared memory driver: Enables Linux guests to communicate
> with each other via shared memory regions.
> - Bao I/O Dispatcher driver: Allows Bao VMs to share I/O devices using
> device paravirtualization (VirtIO).
> 
> Key updates in this version to align with upstream requirements:
> 1. Switched to misc device API: Removed all cdev, class, and
> alloc_chrdev_region code in favor of misc_register() for simpler,
> standard device management.
> 2. Clean kernel style and formatting: All code passes checkpatch.pl,
> with consistent variable declaration, function naming, and comment style.
> 3. Architecture abstraction: Consolidated ARM, ARM64, and RISC-V hypercall
> logic into architecture-specific headers, removing in-driver #ifdefs.
> 4. Commit messages: Now concise and Linux-kernel-style, describing
> behavior and impact clearly.
> 5. Device Tree compliance: Fixed all make dt_binding_check errors to
> ensure DT binding correctness.
> 
> This series has been validated on Linux guests running under Bao
> hypervisor, confirming correct initialization, IPC shared-memory
> read/write operations, and I/O Dispatcher functionality for
> backend VMs.
> 
> Feedback and review from maintainers of virtualization,
> architecture-specific code (ARM, ARM64, RISC-V), Device Tree
> bindings, and UAPI are welcome.
> 
> João Peixoto (6):
>   dt-bindings: Add Bao IPC shared memory driver binding
>   virt: bao: Add Bao IPC shared memory driver
>   dt-bindings: Add Bao I/O dispatcher driver binding
>   virt: bao: Add Bao I/O dispatcher driver
>   virt: bao: Move BAO_IPCSHMEM_HYPERCALL_ID to common header
>   MAINTAINERS: Add entries for Bao hypervisor drivers, headers, and DT
>     bindings
> 
>  .../bindings/bao/bao,io-dispatcher.yaml       |  75 ++++
>  .../devicetree/bindings/bao/bao,ipcshmem.yaml |  82 ++++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
>  .../userspace-api/ioctl/ioctl-number.rst      |   2 +
>  MAINTAINERS                                   |  13 +
>  arch/arm/include/asm/bao.h                    |  60 +++
>  arch/arm64/include/asm/bao.h                  |  60 +++
>  arch/riscv/include/asm/bao.h                  |  60 +++
>  drivers/virt/Kconfig                          |   2 +
>  drivers/virt/Makefile                         |   2 +
>  drivers/virt/bao/Kconfig                      |   5 +
>  drivers/virt/bao/Makefile                     |   4 +
>  drivers/virt/bao/io-dispatcher/Kconfig        |  15 +
>  drivers/virt/bao/io-dispatcher/Makefile       |   4 +
>  drivers/virt/bao/io-dispatcher/bao_drv.h      | 361 ++++++++++++++++
>  drivers/virt/bao/io-dispatcher/dm.c           | 405 ++++++++++++++++++
>  drivers/virt/bao/io-dispatcher/driver.c       | 185 ++++++++
>  drivers/virt/bao/io-dispatcher/intc.c         |  64 +++
>  drivers/virt/bao/io-dispatcher/io_client.c    | 405 ++++++++++++++++++
>  .../virt/bao/io-dispatcher/io_dispatcher.c    | 179 ++++++++
>  drivers/virt/bao/io-dispatcher/ioeventfd.c    | 323 ++++++++++++++
>  drivers/virt/bao/io-dispatcher/irqfd.c        | 314 ++++++++++++++
>  drivers/virt/bao/ipcshmem/Kconfig             |   8 +
>  drivers/virt/bao/ipcshmem/Makefile            |   3 +
>  drivers/virt/bao/ipcshmem/ipcshmem.c          | 252 +++++++++++
>  include/linux/bao.h                           |  44 ++
>  include/uapi/linux/bao.h                      |  98 +++++
>  27 files changed, 3027 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml
>  create mode 100644 Documentation/devicetree/bindings/bao/bao,ipcshmem.yaml
>  create mode 100644 arch/arm/include/asm/bao.h
>  create mode 100644 arch/arm64/include/asm/bao.h
>  create mode 100644 arch/riscv/include/asm/bao.h
>  create mode 100644 drivers/virt/bao/Kconfig
>  create mode 100644 drivers/virt/bao/Makefile
>  create mode 100644 drivers/virt/bao/io-dispatcher/Kconfig
>  create mode 100644 drivers/virt/bao/io-dispatcher/Makefile
>  create mode 100644 drivers/virt/bao/io-dispatcher/bao_drv.h
>  create mode 100644 drivers/virt/bao/io-dispatcher/dm.c
>  create mode 100644 drivers/virt/bao/io-dispatcher/driver.c
>  create mode 100644 drivers/virt/bao/io-dispatcher/intc.c
>  create mode 100644 drivers/virt/bao/io-dispatcher/io_client.c
>  create mode 100644 drivers/virt/bao/io-dispatcher/io_dispatcher.c
>  create mode 100644 drivers/virt/bao/io-dispatcher/ioeventfd.c
>  create mode 100644 drivers/virt/bao/io-dispatcher/irqfd.c
>  create mode 100644 drivers/virt/bao/ipcshmem/Kconfig
>  create mode 100644 drivers/virt/bao/ipcshmem/Makefile
>  create mode 100644 drivers/virt/bao/ipcshmem/ipcshmem.c
>  create mode 100644 include/linux/bao.h
>  create mode 100644 include/uapi/linux/bao.h
> 
> -- 
> 2.43.0
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- This looks like a new version of a previously submitted patch, but you
  did not list below the --- line any changes from the previous version.
  Please read the section entitled "The canonical patch format" in the
  kernel file, Documentation/process/submitting-patches.rst for what
  needs to be done here to properly describe this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot