zephyr/drivers/virtualization/Kconfig
Grant Ramsay 64cc0764ee drivers: virtualization: Map ivshmem-v2 sections individually
Recent changes to the arm64 MMU code mean that you can no longer map
R/O memory as R/W. Mapping R/W memory now causes a cache invalidation
instruction (DC IVAC) that requires write permissions or else a fault
is generated.

Modify ivshmem-v2 to map each R/O and R/W section individually

Signed-off-by: Grant Ramsay <gramsay@enphaseenergy.com>
2023-11-27 12:15:43 +00:00

76 lines
2 KiB
Plaintext

# Virtualization drivers configuration options
# Copyright (c) 2015-2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menuconfig VIRTUALIZATION
bool "Virtualization guest drivers"
help
This contains various drivers meant to support and expose features
when Zephyr is running as a guest in a virtualized or emulated
environment.
if VIRTUALIZATION
config IVSHMEM
bool "Inter-VM shared memory device (ivshmem)"
depends on PCIE
help
This will enable support of qemu's ivshmem device, which is also
present in ACRN hypervisor, and lets VM sharing memory with each
other.
if IVSHMEM
module = IVSHMEM
module-str = ivshmem
source "subsys/logging/Kconfig.template.log_config"
config IVSHMEM_DOORBELL
bool "Support interrupt based ivshmem (doorbell version)"
help
This will enable support of ivshmem-doorbell, i.e. the interrupt
based ivshmem. For ivshmem-v2 INTx interrupts are also supported.
config IVSHMEM_MSI_X_VECTORS
int "How many notification vectors should be pre-allocated?"
default 2
depends on IVSHMEM_DOORBELL
help
MSI-X vector holders must be pre-allocated. One can pre-allocate
more or less than necessary. Depends on how many VMs will connect
with each other. These are know to be the notification vectors in
ivshmem.
config IVSHMEM_INT_PRIORITY
int "MSI-X interrupt priority"
default 2
depends on IVSHMEM_DOORBELL
help
Interrupt priority used for the MSI-X generated interrupts.
INTx interrupt priority is configured in the device tree.
config IVSHMEM_SHELL
bool "IVshmem shell module"
depends on SHELL
help
This is mostly a module to help getting info the ivshmem and/or
quickly testing your ivshmem client application (from another VM).
endif # IVSHMEM
config IVSHMEM_V2
bool "Inter-VM shared memory v2 (ivshmem-v2)"
select IVSHMEM
help
Enable ivshmem-v2 support.
ivshmem-v2 is primarily used for IPC in the Jailhouse hypervisor.
config IVSHMEM_V2_MAX_PEERS
int "Maximum number of ivshmem-v2 peers"
depends on IVSHMEM_V2
default 2
range 2 65536
endif # VIRTUALIZATION