acrn-kernel/include
yichongt 7159ad071b virt: acrn: Introduce interfaces for PIO region passthrough
PIO region passthrough enables an OS in a virtual machine to directly
access a PIO device in the host. It promises almost the native
performance, which is required in performance-critical scenarios of
ACRN.

ACRN hypervisor will pass through most resource to Service VM at the
begining except those pre-allocated to hypervisor itself and pre-launched
VM. GPA and HPA of all these passthrough resource are identical mapped in
Service VM. In this case, user space program can manipulate the PIO region
in Service VM as PIO region in Host, such as delivering GPA in Service VM
to hypervisor to assign PIO region to other post launched VM.

HSM provides the following ioctls:
  - Assign - ACRN_IOCTL_ASSIGN_PIO_REGION
    Pass data struct acrn_pio_region from userspace to the hypervisor, and
    inform the hypervisor to assign a PIO region to a User VM.

  - De-assign - ACRN_IOCTL_DEASSIGN_PIO_REGION
    Pass data struct acrn_pio_region from userspace to the hypervisor, and
    inform the hypervisor to de-assign a PIO region from a User VM.

These hypercalls are for ACPI device passthrough function of ACRN.
Now ACRN only support legacy UART which has a PIO region. Before passing
through this PIO region to a post-launched VM, ACRN device model would
unbind UART device from Service VM through sysfs node
/sys/bus/pnp/drivers/serial/unbind.

Tracked-On: projectacrn/acrn-hypervisor#8635

Signed-off-by: Yichong Tang <yichong.tang@intel.com>
2024-07-31 15:40:11 +08:00
..
acpi ACPI: video: Remove register_backlight_delay module option and code 2023-07-18 13:23:12 +08:00
asm-generic This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
clocksource
crypto crypto: af_alg - Disallow multiple in-flight AIO requests 2024-01-25 15:27:21 -08:00
drm Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
dt-bindings dt-bindings: clock: Update the videocc resets for sm8150 2024-01-25 15:27:36 -08:00
keys
kunit This is the 6.1.65 stable release 2023-12-18 11:01:58 +08:00
kvm KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption 2023-08-23 17:52:28 +02:00
linux extend uio driver to supports msix 2024-05-30 10:51:22 +08:00
math-emu
media ipu6: Fix compilation with kernels >= 6.6.0 2023-12-21 00:53:26 -05:00
memory memory: renesas-rpc-if: Split-off private data from struct rpcif 2023-03-11 13:55:17 +01:00
misc
net This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
pcmcia
ras
rdma RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz 2023-12-13 18:39:15 +01:00
rv
scsi scsi: core: Consult supported VPD page list prior to fetching page 2024-03-01 13:26:31 +01:00
soc Merge branch 'my/v6.1.46' into lts2022/linux 2023-09-28 09:02:24 +08:00
sound ASoC: Intel: avs: ICCMAX recommendations for ICL+ platforms 2024-04-24 22:20:31 +02:00
target scsi: target: Fix multiple LUN_RESET handling 2023-05-11 23:03:19 +09:00
trace 9p: prevent read overrun in protocol dump tracepoint 2024-01-01 12:39:05 +00:00
uapi virt: acrn: Introduce interfaces for PIO region passthrough 2024-07-31 15:40:11 +08:00
ufs
vdso time64.h: Consolidated PSEC_PER_SEC definition 2021-04-06 16:32:17 -07:00
video This is the 6.1.69 stable release 2024-01-30 07:39:52 +08:00
xen This is the 6.1.69 stable release 2024-01-30 07:39:52 +08:00