162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_cimenu "Xen driver support"
362306a36Sopenharmony_ci	depends on XEN
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciconfig XEN_BALLOON
662306a36Sopenharmony_ci	bool "Xen memory balloon driver"
762306a36Sopenharmony_ci	default y
862306a36Sopenharmony_ci	help
962306a36Sopenharmony_ci	  The balloon driver allows the Xen domain to request more memory from
1062306a36Sopenharmony_ci	  the system to expand the domain's memory allocation, or alternatively
1162306a36Sopenharmony_ci	  return unneeded memory to the system.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciconfig XEN_BALLOON_MEMORY_HOTPLUG
1462306a36Sopenharmony_ci	bool "Memory hotplug support for Xen balloon driver"
1562306a36Sopenharmony_ci	depends on XEN_BALLOON && MEMORY_HOTPLUG
1662306a36Sopenharmony_ci	default y
1762306a36Sopenharmony_ci	help
1862306a36Sopenharmony_ci	  Memory hotplug support for Xen balloon driver allows expanding memory
1962306a36Sopenharmony_ci	  available for the system above limit declared at system startup.
2062306a36Sopenharmony_ci	  It is very useful on critical systems which require long
2162306a36Sopenharmony_ci	  run without rebooting.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  It's also very useful for non PV domains to obtain unpopulated physical
2462306a36Sopenharmony_ci	  memory ranges to use in order to map foreign memory or grants.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	  Memory could be hotplugged in following steps:
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	    1) target domain: ensure that memory auto online policy is in
2962306a36Sopenharmony_ci	       effect by checking /sys/devices/system/memory/auto_online_blocks
3062306a36Sopenharmony_ci	       file (should be 'online').
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	    2) control domain: xl mem-max <target-domain> <maxmem>
3362306a36Sopenharmony_ci	       where <maxmem> is >= requested memory size,
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	    3) control domain: xl mem-set <target-domain> <memory>
3662306a36Sopenharmony_ci	       where <memory> is requested memory size; alternatively memory
3762306a36Sopenharmony_ci	       could be added by writing proper value to
3862306a36Sopenharmony_ci	       /sys/devices/system/xen_memory/xen_memory0/target or
3962306a36Sopenharmony_ci	       /sys/devices/system/xen_memory/xen_memory0/target_kb on the
4062306a36Sopenharmony_ci	       target domain.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	  Alternatively, if memory auto onlining was not requested at step 1
4362306a36Sopenharmony_ci	  the newly added memory can be manually onlined in the target domain
4462306a36Sopenharmony_ci	  by doing the following:
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci		for i in /sys/devices/system/memory/memory*/state; do \
4762306a36Sopenharmony_ci		  [ "`cat "$i"`" = offline ] && echo online > "$i"; done
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  or by adding the following line to udev rules:
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /sys$devpath/state'"
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciconfig XEN_MEMORY_HOTPLUG_LIMIT
5462306a36Sopenharmony_ci	int "Hotplugged memory limit (in GiB) for a PV guest"
5562306a36Sopenharmony_ci	default 512
5662306a36Sopenharmony_ci	depends on XEN_HAVE_PVMMU
5762306a36Sopenharmony_ci	depends on MEMORY_HOTPLUG
5862306a36Sopenharmony_ci	help
5962306a36Sopenharmony_ci	  Maximum amount of memory (in GiB) that a PV guest can be
6062306a36Sopenharmony_ci	  expanded to when using memory hotplug.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	  A PV guest can have more memory than this limit if is
6362306a36Sopenharmony_ci	  started with a larger maximum.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	  This value is used to allocate enough space in internal
6662306a36Sopenharmony_ci	  tables needed for physical memory administration.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciconfig XEN_SCRUB_PAGES_DEFAULT
6962306a36Sopenharmony_ci	bool "Scrub pages before returning them to system by default"
7062306a36Sopenharmony_ci	depends on XEN_BALLOON
7162306a36Sopenharmony_ci	default y
7262306a36Sopenharmony_ci	help
7362306a36Sopenharmony_ci	  Scrub pages before returning them to the system for reuse by
7462306a36Sopenharmony_ci	  other domains.  This makes sure that any confidential data
7562306a36Sopenharmony_ci	  is not accidentally visible to other domains.  It is more
7662306a36Sopenharmony_ci	  secure, but slightly less efficient. This can be controlled with
7762306a36Sopenharmony_ci	  xen_scrub_pages=0 parameter and
7862306a36Sopenharmony_ci	  /sys/devices/system/xen_memory/xen_memory0/scrub_pages.
7962306a36Sopenharmony_ci	  This option only sets the default value.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	  If in doubt, say yes.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciconfig XEN_DEV_EVTCHN
8462306a36Sopenharmony_ci	tristate "Xen /dev/xen/evtchn device"
8562306a36Sopenharmony_ci	default y
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  The evtchn driver allows a userspace process to trigger event
8862306a36Sopenharmony_ci	  channels and to receive notification of an event channel
8962306a36Sopenharmony_ci	  firing.
9062306a36Sopenharmony_ci	  If in doubt, say yes.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciconfig XEN_BACKEND
9362306a36Sopenharmony_ci	bool "Backend driver support"
9462306a36Sopenharmony_ci	default XEN_DOM0
9562306a36Sopenharmony_ci	help
9662306a36Sopenharmony_ci	  Support for backend device drivers that provide I/O services
9762306a36Sopenharmony_ci	  to other virtual machines.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciconfig XENFS
10062306a36Sopenharmony_ci	tristate "Xen filesystem"
10162306a36Sopenharmony_ci	select XEN_PRIVCMD
10262306a36Sopenharmony_ci	default y
10362306a36Sopenharmony_ci	help
10462306a36Sopenharmony_ci	  The xen filesystem provides a way for domains to share
10562306a36Sopenharmony_ci	  information with each other and with the hypervisor.
10662306a36Sopenharmony_ci	  For example, by reading and writing the "xenbus" file, guests
10762306a36Sopenharmony_ci	  may pass arbitrary information to the initial domain.
10862306a36Sopenharmony_ci	  If in doubt, say yes.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciconfig XEN_COMPAT_XENFS
11162306a36Sopenharmony_ci	bool "Create compatibility mount point /proc/xen"
11262306a36Sopenharmony_ci	depends on XENFS
11362306a36Sopenharmony_ci	default y
11462306a36Sopenharmony_ci	help
11562306a36Sopenharmony_ci	  The old xenstore userspace tools expect to find "xenbus"
11662306a36Sopenharmony_ci	  under /proc/xen, but "xenbus" is now found at the root of the
11762306a36Sopenharmony_ci	  xenfs filesystem.  Selecting this causes the kernel to create
11862306a36Sopenharmony_ci	  the compatibility mount point /proc/xen if it is running on
11962306a36Sopenharmony_ci	  a xen platform.
12062306a36Sopenharmony_ci	  If in doubt, say yes.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig XEN_SYS_HYPERVISOR
12362306a36Sopenharmony_ci	bool "Create xen entries under /sys/hypervisor"
12462306a36Sopenharmony_ci	depends on SYSFS
12562306a36Sopenharmony_ci	select SYS_HYPERVISOR
12662306a36Sopenharmony_ci	default y
12762306a36Sopenharmony_ci	help
12862306a36Sopenharmony_ci	  Create entries under /sys/hypervisor describing the Xen
12962306a36Sopenharmony_ci	  hypervisor environment.  When running native or in another
13062306a36Sopenharmony_ci	  virtual environment, /sys/hypervisor will still be present,
13162306a36Sopenharmony_ci	  but will have no xen contents.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciconfig XEN_XENBUS_FRONTEND
13462306a36Sopenharmony_ci	tristate
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciconfig XEN_GNTDEV
13762306a36Sopenharmony_ci	tristate "userspace grant access device driver"
13862306a36Sopenharmony_ci	depends on XEN
13962306a36Sopenharmony_ci	default m
14062306a36Sopenharmony_ci	select MMU_NOTIFIER
14162306a36Sopenharmony_ci	help
14262306a36Sopenharmony_ci	  Allows userspace processes to use grants.
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciconfig XEN_GNTDEV_DMABUF
14562306a36Sopenharmony_ci	bool "Add support for dma-buf grant access device driver extension"
14662306a36Sopenharmony_ci	depends on XEN_GNTDEV && XEN_GRANT_DMA_ALLOC
14762306a36Sopenharmony_ci	select DMA_SHARED_BUFFER
14862306a36Sopenharmony_ci	help
14962306a36Sopenharmony_ci	  Allows userspace processes and kernel modules to use Xen backed
15062306a36Sopenharmony_ci	  dma-buf implementation. With this extension grant references to
15162306a36Sopenharmony_ci	  the pages of an imported dma-buf can be exported for other domain
15262306a36Sopenharmony_ci	  use and grant references coming from a foreign domain can be
15362306a36Sopenharmony_ci	  converted into a local dma-buf for local export.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ciconfig XEN_GRANT_DEV_ALLOC
15662306a36Sopenharmony_ci	tristate "User-space grant reference allocator driver"
15762306a36Sopenharmony_ci	depends on XEN
15862306a36Sopenharmony_ci	default m
15962306a36Sopenharmony_ci	help
16062306a36Sopenharmony_ci	  Allows userspace processes to create pages with access granted
16162306a36Sopenharmony_ci	  to other domains. This can be used to implement frontend drivers
16262306a36Sopenharmony_ci	  or as part of an inter-domain shared memory channel.
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ciconfig XEN_GRANT_DMA_ALLOC
16562306a36Sopenharmony_ci	bool "Allow allocating DMA capable buffers with grant reference module"
16662306a36Sopenharmony_ci	depends on XEN && HAS_DMA
16762306a36Sopenharmony_ci	help
16862306a36Sopenharmony_ci	  Extends grant table module API to allow allocating DMA capable
16962306a36Sopenharmony_ci	  buffers and mapping foreign grant references on top of it.
17062306a36Sopenharmony_ci	  The resulting buffer is similar to one allocated by the balloon
17162306a36Sopenharmony_ci	  driver in that proper memory reservation is made by
17262306a36Sopenharmony_ci	  ({increase|decrease}_reservation and VA mappings are updated if
17362306a36Sopenharmony_ci	  needed).
17462306a36Sopenharmony_ci	  This is useful for sharing foreign buffers with HW drivers which
17562306a36Sopenharmony_ci	  cannot work with scattered buffers provided by the balloon driver,
17662306a36Sopenharmony_ci	  but require DMAable memory instead.
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciconfig SWIOTLB_XEN
17962306a36Sopenharmony_ci	def_bool y
18062306a36Sopenharmony_ci	depends on XEN_PV || ARM || ARM64
18162306a36Sopenharmony_ci	select DMA_OPS
18262306a36Sopenharmony_ci	select SWIOTLB
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ciconfig XEN_PCI_STUB
18562306a36Sopenharmony_ci	bool
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ciconfig XEN_PCIDEV_STUB
18862306a36Sopenharmony_ci	tristate "Xen PCI-device stub driver"
18962306a36Sopenharmony_ci	depends on PCI && !X86 && XEN
19062306a36Sopenharmony_ci	depends on XEN_BACKEND
19162306a36Sopenharmony_ci	select XEN_PCI_STUB
19262306a36Sopenharmony_ci	default m
19362306a36Sopenharmony_ci	help
19462306a36Sopenharmony_ci	  The PCI device stub driver provides limited version of the PCI
19562306a36Sopenharmony_ci	  device backend driver without para-virtualized support for guests.
19662306a36Sopenharmony_ci	  If you select this to be a module, you will need to make sure no
19762306a36Sopenharmony_ci	  other driver has bound to the device(s) you want to make visible to
19862306a36Sopenharmony_ci	  other guests.
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci	  The "hide" parameter (only applicable if backend driver is compiled
20162306a36Sopenharmony_ci	  into the kernel) allows you to bind the PCI devices to this module
20262306a36Sopenharmony_ci	  from the default device drivers. The argument is the list of PCI BDFs:
20362306a36Sopenharmony_ci	  xen-pciback.hide=(03:00.0)(04:00.0)
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci	  If in doubt, say m.
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ciconfig XEN_PCIDEV_BACKEND
20862306a36Sopenharmony_ci	tristate "Xen PCI-device backend driver"
20962306a36Sopenharmony_ci	depends on PCI && X86 && XEN
21062306a36Sopenharmony_ci	depends on XEN_BACKEND
21162306a36Sopenharmony_ci	select XEN_PCI_STUB
21262306a36Sopenharmony_ci	default m
21362306a36Sopenharmony_ci	help
21462306a36Sopenharmony_ci	  The PCI device backend driver allows the kernel to export arbitrary
21562306a36Sopenharmony_ci	  PCI devices to other guests. If you select this to be a module, you
21662306a36Sopenharmony_ci	  will need to make sure no other driver has bound to the device(s)
21762306a36Sopenharmony_ci	  you want to make visible to other guests.
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci	  The parameter "passthrough" allows you specify how you want the PCI
22062306a36Sopenharmony_ci	  devices to appear in the guest. You can choose the default (0) where
22162306a36Sopenharmony_ci	  PCI topology starts at 00.00.0, or (1) for passthrough if you want
22262306a36Sopenharmony_ci	  the PCI devices topology appear the same as in the host.
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci	  The "hide" parameter (only applicable if backend driver is compiled
22562306a36Sopenharmony_ci	  into the kernel) allows you to bind the PCI devices to this module
22662306a36Sopenharmony_ci	  from the default device drivers. The argument is the list of PCI BDFs:
22762306a36Sopenharmony_ci	  xen-pciback.hide=(03:00.0)(04:00.0)
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci	  If in doubt, say m.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig XEN_PVCALLS_FRONTEND
23262306a36Sopenharmony_ci	tristate "XEN PV Calls frontend driver"
23362306a36Sopenharmony_ci	depends on INET && XEN
23462306a36Sopenharmony_ci	select XEN_XENBUS_FRONTEND
23562306a36Sopenharmony_ci	help
23662306a36Sopenharmony_ci	  Experimental frontend for the Xen PV Calls protocol
23762306a36Sopenharmony_ci	  (https://xenbits.xen.org/docs/unstable/misc/pvcalls.html). It
23862306a36Sopenharmony_ci	  sends a small set of POSIX calls to the backend, which
23962306a36Sopenharmony_ci	  implements them.
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ciconfig XEN_PVCALLS_BACKEND
24262306a36Sopenharmony_ci	tristate "XEN PV Calls backend driver"
24362306a36Sopenharmony_ci	depends on INET && XEN && XEN_BACKEND
24462306a36Sopenharmony_ci	help
24562306a36Sopenharmony_ci	  Experimental backend for the Xen PV Calls protocol
24662306a36Sopenharmony_ci	  (https://xenbits.xen.org/docs/unstable/misc/pvcalls.html). It
24762306a36Sopenharmony_ci	  allows PV Calls frontends to send POSIX calls to the backend,
24862306a36Sopenharmony_ci	  which implements them.
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ci	  If in doubt, say n.
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ciconfig XEN_SCSI_BACKEND
25362306a36Sopenharmony_ci	tristate "XEN SCSI backend driver"
25462306a36Sopenharmony_ci	depends on XEN && XEN_BACKEND && TARGET_CORE
25562306a36Sopenharmony_ci	help
25662306a36Sopenharmony_ci	  The SCSI backend driver allows the kernel to export its SCSI Devices
25762306a36Sopenharmony_ci	  to other guests via a high-performance shared-memory interface.
25862306a36Sopenharmony_ci	  Only needed for systems running as XEN driver domains (e.g. Dom0) and
25962306a36Sopenharmony_ci	  if guests need generic access to SCSI devices.
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ciconfig XEN_PRIVCMD
26262306a36Sopenharmony_ci	tristate "Xen hypercall passthrough driver"
26362306a36Sopenharmony_ci	depends on XEN
26462306a36Sopenharmony_ci	default m
26562306a36Sopenharmony_ci	help
26662306a36Sopenharmony_ci	  The hypercall passthrough driver allows privileged user programs to
26762306a36Sopenharmony_ci	  perform Xen hypercalls. This driver is normally required for systems
26862306a36Sopenharmony_ci	  running as Dom0 to perform privileged operations, but in some
26962306a36Sopenharmony_ci	  disaggregated Xen setups this driver might be needed for other
27062306a36Sopenharmony_ci	  domains, too.
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ciconfig XEN_PRIVCMD_IRQFD
27362306a36Sopenharmony_ci	bool "Xen irqfd support"
27462306a36Sopenharmony_ci	depends on XEN_PRIVCMD && XEN_VIRTIO && EVENTFD
27562306a36Sopenharmony_ci	help
27662306a36Sopenharmony_ci	  Using the irqfd mechanism a virtio backend running in a daemon can
27762306a36Sopenharmony_ci	  speed up interrupt injection into a guest.
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciconfig XEN_ACPI_PROCESSOR
28062306a36Sopenharmony_ci	tristate "Xen ACPI processor"
28162306a36Sopenharmony_ci	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
28262306a36Sopenharmony_ci	default m
28362306a36Sopenharmony_ci	help
28462306a36Sopenharmony_ci	  This ACPI processor uploads Power Management information to the Xen
28562306a36Sopenharmony_ci	  hypervisor.
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci	  To do that the driver parses the Power Management data and uploads
28862306a36Sopenharmony_ci	  said information to the Xen hypervisor. Then the Xen hypervisor can
28962306a36Sopenharmony_ci	  select the proper Cx and Pxx states. It also registers itself as the
29062306a36Sopenharmony_ci	  SMM so that other drivers (such as ACPI cpufreq scaling driver) will
29162306a36Sopenharmony_ci	  not load.
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will be
29462306a36Sopenharmony_ci	  called xen_acpi_processor  If you do not know what to choose, select
29562306a36Sopenharmony_ci	  M here. If the CPUFREQ drivers are built in, select Y here.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ciconfig XEN_MCE_LOG
29862306a36Sopenharmony_ci	bool "Xen platform mcelog"
29962306a36Sopenharmony_ci	depends on XEN_PV_DOM0 && X86_MCE
30062306a36Sopenharmony_ci	help
30162306a36Sopenharmony_ci	  Allow kernel fetching MCE error from Xen platform and
30262306a36Sopenharmony_ci	  converting it into Linux mcelog format for mcelog tools
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_ciconfig XEN_HAVE_PVMMU
30562306a36Sopenharmony_ci	bool
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ciconfig XEN_EFI
30862306a36Sopenharmony_ci	def_bool y
30962306a36Sopenharmony_ci	depends on (ARM || ARM64 || X86_64) && EFI
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ciconfig XEN_AUTO_XLATE
31262306a36Sopenharmony_ci	def_bool y
31362306a36Sopenharmony_ci	depends on ARM || ARM64 || XEN_PVHVM
31462306a36Sopenharmony_ci	help
31562306a36Sopenharmony_ci	  Support for auto-translated physmap guests.
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ciconfig XEN_ACPI
31862306a36Sopenharmony_ci	def_bool y
31962306a36Sopenharmony_ci	depends on X86 && ACPI
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_ciconfig XEN_SYMS
32262306a36Sopenharmony_ci	bool "Xen symbols"
32362306a36Sopenharmony_ci	depends on X86 && XEN_DOM0 && XENFS
32462306a36Sopenharmony_ci	default y if KALLSYMS
32562306a36Sopenharmony_ci	help
32662306a36Sopenharmony_ci	  Exports hypervisor symbols (along with their types and addresses) via
32762306a36Sopenharmony_ci	  /proc/xen/xensyms file, similar to /proc/kallsyms
32862306a36Sopenharmony_ci
32962306a36Sopenharmony_ciconfig XEN_HAVE_VPMU
33062306a36Sopenharmony_ci	bool
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ciconfig XEN_FRONT_PGDIR_SHBUF
33362306a36Sopenharmony_ci	tristate
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ciconfig XEN_UNPOPULATED_ALLOC
33662306a36Sopenharmony_ci	bool "Use unpopulated memory ranges for guest mappings"
33762306a36Sopenharmony_ci	depends on ZONE_DEVICE
33862306a36Sopenharmony_ci	default XEN_BACKEND || XEN_GNTDEV || XEN_DOM0
33962306a36Sopenharmony_ci	help
34062306a36Sopenharmony_ci	  Use unpopulated memory ranges in order to create mappings for guest
34162306a36Sopenharmony_ci	  memory regions, including grant maps and foreign pages. This avoids
34262306a36Sopenharmony_ci	  having to balloon out RAM regions in order to obtain physical memory
34362306a36Sopenharmony_ci	  space to create such mappings.
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_ciconfig XEN_GRANT_DMA_IOMMU
34662306a36Sopenharmony_ci	bool
34762306a36Sopenharmony_ci	select IOMMU_API
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ciconfig XEN_GRANT_DMA_OPS
35062306a36Sopenharmony_ci	bool
35162306a36Sopenharmony_ci	select DMA_OPS
35262306a36Sopenharmony_ci
35362306a36Sopenharmony_ciconfig XEN_VIRTIO
35462306a36Sopenharmony_ci	bool "Xen virtio support"
35562306a36Sopenharmony_ci	depends on VIRTIO
35662306a36Sopenharmony_ci	select XEN_GRANT_DMA_OPS
35762306a36Sopenharmony_ci	select XEN_GRANT_DMA_IOMMU if OF
35862306a36Sopenharmony_ci	help
35962306a36Sopenharmony_ci	  Enable virtio support for running as Xen guest. Depending on the
36062306a36Sopenharmony_ci	  guest type this will require special support on the backend side
36162306a36Sopenharmony_ci	  (qemu or kernel, depending on the virtio device types used).
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci	  If in doubt, say n.
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_ciconfig XEN_VIRTIO_FORCE_GRANT
36662306a36Sopenharmony_ci	bool "Require Xen virtio support to use grants"
36762306a36Sopenharmony_ci	depends on XEN_VIRTIO
36862306a36Sopenharmony_ci	help
36962306a36Sopenharmony_ci	  Require virtio for Xen guests to use grant mappings.
37062306a36Sopenharmony_ci	  This will avoid the need to give the backend the right to map all
37162306a36Sopenharmony_ci	  of the guest memory. This will need support on the backend side
37262306a36Sopenharmony_ci	  (e.g. qemu or kernel, depending on the virtio device types used).
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ciendmenu
375