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 clocksource/drivers/timer-ti-dm: Move struct omap_dm_timer fields to driver 2022-09-20 10:49:46 +02:00
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 certs: Move load_certificate_list() to be with the asymmetric keys code 2022-06-21 16:05:06 +01:00
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 powerpc/math-emu: Remove -w build flag and fix warnings 2022-09-05 17:28:25 +10:00
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 ARM: pxa/sa1100: move I/O space to PCI_IOBASE 2022-05-07 22:56:17 +02:00
ras mm, hwpoison: enable memory error handling on 1GB hugepage 2022-08-08 18:06:44 -07:00
rdma RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz 2023-12-13 18:39:15 +01:00
rv Documentation/rv: Add deterministic automata monitor synthesis documentation 2022-07-30 14:01:29 -04:00
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 scsi: ufs: exynos: Fix DMA alignment for PAGE_SIZE != 4096 2023-03-10 09:33:15 +01:00
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