acrn-kernel/drivers
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
..
accel
accessibility
acpi ACPICA: Fix operand resolution 2024-04-24 22:17:18 +02:00
amba
android binder: signal epoll threads of self-work 2024-02-23 09:12:39 +01:00
ata ahci: Extend ASM1061 43-bit DMA address quirk to other ASM106x parts 2024-03-01 13:26:39 +01:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-16 19:06:26 +01:00
auxdisplay auxdisplay: hd44780: move cursor home after clear display command 2023-12-08 08:51:16 +01:00
base This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
bcma driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
block This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
bluetooth Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 2024-02-05 20:12:53 +00:00
bus This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
cdrom
char Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
clk Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
clocksource clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings 2024-01-25 15:27:39 -08:00
comedi comedi: adv_pci1760: Fix PWM instruction handling 2023-01-24 07:24:35 +01:00
connector
counter counter: microchip-tcb-capture: Fix the use of internal GCLK logic 2023-10-19 23:08:58 +02:00
cpufreq Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
cpuidle powerpc/pseries: Rework lppaca_shared_proc() to avoid DEBUG_PREEMPT 2023-09-13 09:42:48 +02:00
crypto This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
cxl This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
dax Merge branch 'my/v6.1.46' into lts2022/linux 2023-09-28 09:02:24 +08:00
dca
devfreq PM / devfreq: Synchronize devfreq_monitor_[start/stop] 2024-02-05 20:12:47 +00:00
dio
dma dmaengine: ti: edma: Add some null pointer checks to the edma_probe 2024-03-01 13:26:26 +01:00
dma-buf This is the 6.1.69 stable release 2024-01-30 07:39:52 +08:00
edac Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
eisa
extcon extcon: cht_wc: add POWER_SUPPLY dependency 2023-09-13 09:42:53 +02:00
firewire This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
firmware This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
fpga driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
fsi
gnss
gpio Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
gpu This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
greybus
hid This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
hsi of: Rename of_modalias_node() 2023-07-18 13:23:03 +08:00
hte hte: tegra: Fix missing error code in tegra_hte_test_probe() 2023-11-20 11:51:58 +01:00
hv
hwmon hwmon: (coretemp) Enlarge per package core count limit 2024-03-01 13:26:29 +01:00
hwspinlock hwspinlock: qcom: add missing regmap config for SFPB MMIO implementation 2023-09-19 12:28:05 +02:00
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-20 11:50:11 +01:00
i2c This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
i3c Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
idle intel_idle: add Emerald Rapids Xeon support 2023-10-10 22:00:44 +02:00
iio iio: imu: bno055: serdev requires REGMAP 2024-02-23 09:12:41 +01:00
infiniband This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
input This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
interconnect interconnect: qcom: sc8180x: Mark CO0 BCM keepalive 2024-02-23 09:12:34 +01:00
iommu Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
ipack driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
irqchip This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:27:26 +02:00
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-02-05 20:12:57 +00:00
macintosh driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
mailbox mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt 2024-02-05 20:12:58 +00:00
mcb This is the 6.1.65 stable release 2023-12-18 11:01:58 +08:00
md This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
media This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
memory
memstick Merge branch 'my/v6.1.46' into lts2022/linux 2023-09-28 09:02:24 +08:00
message
mfd Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
misc This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
mmc This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
most
mtd This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
mux mux: Fix struct mux_state kernel-doc comment 2022-02-04 15:47:12 +01:00
net This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
nfc
ntb ntb: Fix calculation ntb_transport_tx_free_entry() 2023-09-13 09:43:02 +02:00
nubus
nvdimm This is the 6.1.65 stable release 2023-12-18 11:01:58 +08:00
nvme nvmet-fc: take ref count on tgtport before delete assoc 2024-03-01 13:26:28 +01:00
nvmem nvmem: imx: correct nregs for i.MX6UL 2023-11-02 09:35:31 +01:00
of This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
opp OPP: Pass rounded rate to _set_opp() 2024-01-31 16:16:58 -08:00
parisc parisc/power: Fix power soft-off button emulation on qemu 2024-01-31 16:16:59 -08:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-20 11:50:11 +01:00
pci This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
pcmcia This is the 6.1.65 stable release 2023-12-18 11:01:58 +08:00
peci peci: cpu: Fix use-after-free in adev_release() 2022-08-15 20:31:35 +02:00
perf perf: hisi: Fix use-after-free when register pmu fails 2023-11-20 11:52:01 +01:00
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-02-16 19:06:25 +01:00
pinctrl Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
platform This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
pnp PNP: ACPI: fix fortify warning 2024-02-05 20:12:47 +00:00
power power: supply: bq256xx: fix some problem in bq256xx_hw_init 2024-01-25 15:27:45 -08:00
powercap powercap: DTPM: Fix missing cpufreq_cpu_put() calls 2023-12-13 18:39:21 +01:00
pps
ps3 powerpc/ps3: Warn on PS3 device errors 2021-06-10 21:44:58 +10:00
ptp This is the 6.1.65 stable release 2023-12-18 11:01:58 +08:00
pwm pwm: Fix out-of-bounds access in of_pwm_single_xlate() 2024-01-25 15:27:42 -08:00
rapidio
ras RAS/CEC: Reduce offline page threshold for Intel systems 2022-08-22 19:30:02 +02:00
regulator regulator: pwm-regulator: Add validity checks in continuous .get_voltage 2024-03-01 13:26:26 +01:00
remoteproc remoteproc: imx_dsp_rproc: Fix kernel test robot sparse warning 2023-05-24 17:32:53 +01:00
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-20 11:50:07 +01:00
rpmsg Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
rtc rtc: Extend timeout for waiting for UIP to clear to 1s 2024-01-31 16:17:01 -08:00
s390 This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
sbus
scsi This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
sh
siox
slimbus driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
soc This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
soundwire This is the 6.1.69 stable release 2024-01-30 07:39:52 +08:00
spi This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
spmi Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
ssb driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
staging This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
target scsi: target: pscsi: Fix bio_put() for error case 2024-03-01 13:26:31 +01:00
tc The main MIPS changes for 5.6: 2020-01-31 11:28:31 -08:00
tcc
tee This is the 6.1.69 stable release 2024-01-30 07:39:52 +08:00
thermal thermal: intel: hfi: Add syscore callbacks for system-wide PM 2024-01-31 16:17:09 -08:00
thunderbolt Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
tty This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
ufs scsi: ufs: core: Remove the ufshcd_release() in ufshcd_err_handling_prepare() 2024-03-01 13:26:30 +01:00
uio extend uio driver to supports msix 2024-05-30 10:51:22 +08:00
usb This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
vdpa vdpa: Fix an error handling path in eni_vdpa_probe() 2024-01-25 15:27:47 -08:00
vfio This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
vhost vhost: use kzalloc() instead of kmalloc() followed by memset() 2024-02-16 19:06:31 +01:00
video This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
virt virt: acrn: Introduce interfaces for PIO region passthrough 2024-07-31 15:40:11 +08:00
virtio This is the 6.1.65 stable release 2023-12-18 11:01:58 +08:00
vlynq
w1
watchdog watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 2024-02-05 20:12:56 +00:00
xen Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
zorro driver core: make struct bus_type.uevent() take a const * 2023-07-18 13:21:55 +08:00
Kconfig
Makefile tcc: this is kernel driver to interface to TCC PTCM pesudo SRAM 2022-12-14 10:20:33 +08:00