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 guests 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 hypervizor, and lets VM sharing memory with each
21	  other.
22
23if IVSHMEM
24
25config IVSHMEM_DEV_NAME
26       string
27       default "IVSHMEM"
28
29module = IVSHMEM
30module-str = ivshmem
31source "subsys/logging/Kconfig.template.log_config"
32
33config IVSHMEM_DOORBELL
34	bool "Support interrupt based ivshmem (doorbell version)"
35	depends on PCIE_MSI_X && PCIE_MSI_MULTI_VECTOR
36	help
37	  This will enable support of ivshmem-doorbell, i.e. the interrupt
38	  based ivshmem.
39
40config IVSHMEM_MSI_X_VECTORS
41	int "How many notification vectors should be pre-allocated?"
42	default 2
43	depends on IVSHMEM_DOORBELL
44	help
45	  MSI-X vector holders must be pre-allocated. One can pre-allocate
46	  more or less than necessary. Depends on how many VMs will connect
47	  with each other. These are know to be the notification vectors in
48	  ivshmem.
49
50config IVSHMEM_INT_PRIORITY
51	int "Interrupt priority"
52	default 2
53	depends on IVSHMEM_DOORBELL
54	help
55	  Interrupt priority used for the MSI-X generated interrupts.
56
57config IVSHMEM_SHELL
58	bool "Enable IVshmem shell module"
59	depends on SHELL
60	help
61	  This is mostly a module to help getting info the ivshmem and/or
62	  quickly testing your ivshmem client application (from another VM).
63
64endif # IVSHMEM
65
66endif # VIRTUALIZATION
67