1# Virtualization drivers configuration options
2
3# Copyright (c) 2015-2020 Intel Corporation
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig VIRTUALIZATION
7	bool "Virtualization guest drivers"
8	help
9	  This contains various drivers meant to support and expose features
10	  when Zephyr is running as a guest in a virtualized or emulated
11	  environment.
12
13if VIRTUALIZATION
14
15config IVSHMEM
16	bool "Inter-VM shared memory device (ivshmem)"
17	depends on PCIE
18	help
19	  This will enable support of qemu's ivshmem device, which is also
20	  present in ACRN hypervisor, and lets VM sharing memory with each
21	  other.
22
23if IVSHMEM
24
25module = IVSHMEM
26module-str = ivshmem
27source "subsys/logging/Kconfig.template.log_config"
28
29config IVSHMEM_DOORBELL
30	bool "Support interrupt based ivshmem (doorbell version)"
31	help
32	  This will enable support of ivshmem-doorbell, i.e. the interrupt
33	  based ivshmem. For ivshmem-v2 INTx interrupts are also supported.
34
35config IVSHMEM_MSI_X_VECTORS
36	int "How many notification vectors should be pre-allocated?"
37	default 2
38	depends on IVSHMEM_DOORBELL
39	help
40	  MSI-X vector holders must be pre-allocated. One can pre-allocate
41	  more or less than necessary. Depends on how many VMs will connect
42	  with each other. These are know to be the notification vectors in
43	  ivshmem.
44
45config IVSHMEM_INT_PRIORITY
46	int "MSI-X interrupt priority"
47	default 2
48	depends on IVSHMEM_DOORBELL
49	help
50	  Interrupt priority used for the MSI-X generated interrupts.
51	  INTx interrupt priority is configured in the device tree.
52
53config IVSHMEM_SHELL
54	bool "IVshmem shell module"
55	depends on SHELL
56	help
57	  This is mostly a module to help getting info the ivshmem and/or
58	  quickly testing your ivshmem client application (from another VM).
59
60endif # IVSHMEM
61
62config IVSHMEM_V2
63	bool "Inter-VM shared memory v2 (ivshmem-v2)"
64	select IVSHMEM
65	help
66	  Enable ivshmem-v2 support.
67	  ivshmem-v2 is primarily used for IPC in the Jailhouse hypervisor.
68
69config IVSHMEM_V2_MAX_PEERS
70	int "Maximum number of ivshmem-v2 peers"
71	depends on IVSHMEM_V2
72	default 2
73	range 2 65536
74
75endif # VIRTUALIZATION
76