xref: /illumos-gate/usr/src/man/man5/bhyve_config.5 (revision ff56787d6488797571f1eaba7dcf3ff9903154ba)
1.\" SPDX-License-Identifier: BSD-2-Clause
2.\"
3.\" Copyright (c) 2021 John H. Baldwin <jhb@FreeBSD.org>
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.\" Portions Copyright 2023 OmniOS Community Edition (OmniOSce) Association.
27.\"
28.Dd August 13, 2024
29.Dt BHYVE_CONFIG 5
30.Os
31.Sh NAME
32.Nm bhyve_config
33.Nd "bhyve configuration variables"
34.Sh DESCRIPTION
35.Xr bhyve 8
36uses a hierarchical tree of configuration variables to describe global and
37per-device settings.
38Internal nodes in this tree do not have a value,
39only leaf nodes have values.
40This manual describes the configuration variables understood by
41.Xr bhyve 8 .
42If additional variables are defined,
43.Xr bhyve 8
44will ignore them and will not emit errors for unknown variables.
45However, these additional variables can be referenced by other
46variables as described below.
47.Sh VARIABLE VALUES
48Configuration variable values are stored as strings.
49A configuration variable value may refer to one or more other
50configuration values by name.
51Instances of the pattern
52.Sq % Ns Pq Ar var
53are replaced by the value of the configuration variable
54.Va var .
55To avoid unwanted expansion,
56.Sq %
57characters can be escaped by a leading
58.Sq % .
59For example,
60if a configuration variable
61.Va disk
62uses the value
63.Pa /dev/zvol/bhyve/%(name) ,
64then the final value of the
65.Va disk
66variable will be set to the path of a ZFS volume whose name matches
67the name of the virtual machine on the pool
68.Pa bhyve .
69.Pp
70Some configuration variables may be interpreted as a boolean value.
71For those variables the following case-insensitive values may be used to
72indicate true:
73.Pp
74.Bl -bullet -offset indent -compact
75.It
76true
77.It
78on
79.It
80yes
81.It
821
83.El
84.Pp
85The following values may be used to indicate false:
86.Pp
87.Bl -bullet -offset indent -compact
88.It
89false
90.It
91off
92.It
93no
94.It
950
96.El
97.Pp
98Some configuration variables may be interpreted as an integer.
99For those variables,
100any syntax supported by
101.Xr strtoul 3C
102may be used.
103.Sh GLOBAL SETTINGS
104.Ss Architecture Neutral Settings
105.Bl -column "memory.guest_in_core" "integer" "Default"
106.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
107.It Va name Ta string Ta Ta
108The name of the VM.
109.It Va cpus Ta integer Ta 1 Ta
110The total number of virtual CPUs.
111.It Va cores Ta integer Ta 1 Ta
112The number of virtual cores in each virtual socket.
113.It Va threads Ta integer Ta 1 Ta
114The number of virtual CPUs in each virtual core.
115.It Va sockets Ta integer Ta 1 Ta
116The number of virtual sockets.
117.It Va memory.size Ta string Ta 256M Ta
118Guest physical memory size.
119The size argument may be suffixed with one of K, M, G or T (either upper
120or lower case) to indicate a multiple of kibibytes, mebibytes, gibibytes,
121or tebibytes.
122If no suffix is given, the value is assumed to be in mebibytes.
123.It Va memory.wired Ta bool Ta false Ta
124Wire guest memory.
125.It Va bootrom Ta path Ta Ta
126Path to a boot ROM.
127During initialization of the guest, the contents of this file are copied into
128the guest's memory.
129If a boot ROM is present, a firmware interface device is
130also enabled for use by the boot ROM.
131.It Va bootvars Ta path Ta Ta
132Path to boot VARS.
133The contents of this file are copied beneath the boot ROM.
134Firmware can write to it to save variables.
135Variables will be persistent across guest reboots.
136.It Va acpi_tables Ta bool Ta false Ta
137Generate ACPI tables.
138.It Va acpi_tables_in_memory Ta bool Ta true Ta
139.Xr bhyve 8
140always exposes ACPI tables by FwCfg.
141For backward compatibility bhyve copies them into the guest memory as well.
142This can cause problems if the guest uses the in-memory version, since certain
143advanced features, such as TPM emulation, are exposed only via FwCfg.
144Therefore, it is recommended to set this flag to false when running Windows
145guests.
146.It Va destroy_on_poweroff Ta bool Ta false Ta
147Destroy the VM on guest-initiated power-off.
148.It Va gdb.address Ta string Ta localhost Ta
149Hostname, IP address, or IPv6 address for the debug server.
150.It Va gdb.port Ta integer Ta 0 Ta
151TCP port number for the debug server.
152If this is set to a non-zero value, a debug server
153will listen for connections on this port.
154.It Va gdb.wait Ta bool Ta false Ta
155If the debug server is enabled, wait for a debugger to connect
156before starting the guest.
157.It Va keyboard.layout Ta string Ta Ta
158Specify the keyboard layout name with the file name in
159.Pa /usr/share/bhyve/kbdlayout .
160This value only works when loaded with UEFI mode for VNC, and when a VNC client
161that doesn't support the QEMU Extended Key Event Message us used.
162.It Va pci.enable_bars Ta bool Ta Ta
163Enable and map PCI BARs before executing any guest code.
164This setting is true by default but can be disabled to work around problems
165with guests that remap BARs themselves
166.Pq e.g. u-boot .
167.It Va tpm.path Ta string Ta Ta
168Path to the host TPM device.
169This is typically /dev/tpm0.
170.It Va tpm.type Ta string Ta Ta
171Type of the TPM device passed to the guest.
172Currently, only "passthru" is supported.
173.It Va tpm.version Ta string Ta 2.0 Ta
174Version of the TPM device according to the TCG specification.
175Currently, only version 2.0 is supported.
176.It Va rtc.use_localtime Ta bool Ta true Ta
177The real time clock uses the local time of the host.
178If this is set to false, the real time clock uses UTC.
179.It Va uuid Ta string Ta Ta
180The universally unique identifier (UUID) to use in the guest's
181System Management BIOS System Information structure.
182If an explicit value is not set, a valid UUID is generated from
183the host's hostname and the VM name.
184.It Va virtio_msix Ta bool Ta true Ta
185Use MSI-X interrupts for PCI VirtIO devices.
186If set to false, MSI interrupts are used instead.
187.It Va config.dump Ta bool Ta false Ta
188If this value is set to true then, after parsing command line options,
189.Xr bhyve 8
190will write all of its configuration variables to
191.Dv stdout
192and exit.
193No VM will be started.
194.It Va privileges.debug Ta bool Ta false Ta
195Enable debug messages relating to privilege management.
196These messages are sent to
197.Dv stdout .
198.It Va rfb.debug Ta bool Ta false Ta
199Enable debug messages relating to the RFB
200.Pq VNC
201server.
202.It Va viona.debug Ta bool Ta false Ta
203Enable debug messages relating to the accelerated virtio network device.
204These messages are sent to
205.Dv stdout .
206.It Va xhci.debug Ta bool Ta false Ta
207Enable debug messages relating to the emulated XHCI
208.Pq USB
209controller.
210These messages are sent to
211.Dv stderr .
212.It Va bios.vendor Ta string Ta BHYVE Ta
213This value is used for the guest's System Management BIOS System Information
214structure.
215.It Va bios.version Ta string Ta 14.0 Ta
216This value is used for the guest's System Management BIOS System Information
217structure.
218.It Va bios.release_date Ta string Ta 10/17/2021 Ta
219This value is used for the guest's System Management BIOS System Information
220structure.
221.It Va system.family_name Ta string Ta Virtual Machine Ta
222Family the computer belongs to.
223This value is used for the guest's System Management BIOS System Information
224structure.
225.It Va system.manufacturer Ta string Ta illumos Ta
226This value is used for the guest's System Management BIOS System Information
227structure.
228.It Va system.product_name Ta string Ta BHYVE Ta
229This value is used for the guest's System Management BIOS System Information
230structure.
231.It Va system.serial_number Ta string Ta None Ta
232This value is used for the guest's System Management BIOS System Information
233structure.
234.It Va system.sku Ta string Ta None Ta
235Stock keeping unit of the computer.
236It's also called product ID or purchase order number.
237This value is used for the guest's System Management BIOS System Information
238structure.
239.It Va system.version Ta string Ta 1.0 Ta
240This value is used for the guest's System Management BIOS System Information
241structure.
242.It Va board.manufacturer Ta string Ta illumos Ta
243This value is used for the guest's System Management BIOS System Information
244structure.
245.It Va board.product_name Ta string Ta BHYVE Ta
246This value is used for the guest's System Management BIOS System Information
247structure.
248.It Va board.version Ta string Ta 1.0 Ta
249This value is used for the guest's System Management BIOS System Information
250structure.
251.It Va board.serial_number Ta string Ta None Ta
252This value is used for the guest's System Management BIOS System Information
253structure.
254.It Va board.asset_tag Ta string Ta None Ta
255This value is used for the guest's System Management BIOS System Information
256structure.
257.It Va board.location Ta string Ta None Ta
258Describes the board's location within the chassis.
259This value is used for the guest's System Management BIOS System Information
260structure.
261.It Va chassis.manufacturer Ta string Ta illumos Ta
262This value is used for the guest's System Management BIOS System Information
263structure.
264.It Va chassis.version Ta string Ta 1.0 Ta
265This value is used for the guest's System Management BIOS System Information
266structure.
267.It Va chassis.serial_number Ta string Ta None Ta
268This value is used for the guest's System Management BIOS System Information
269structure.
270.It Va chassis.asset_tag Ta string Ta None Ta
271This value is used for the guest's System Management BIOS System Information
272structure.
273.It Va chassis.sku Ta string Ta None Ta
274Stock keeping unit of the chassis.
275It's also called product ID or purchase order number.
276This value is used for the guest's System Management BIOS System Information
277structure.
278.It Va smbios.family Ta string Ta Virtual Machine Ta
279Legacy alias for
280.Va system.family_name ,
281do not use in new configurations.
282.It Va smbios.manufacturer Ta string Ta illumos Ta
283Legacy alias for
284.Va system.manufacturer ,
285do not use in new configurations.
286.It Va smbios.product Ta string Ta BHYVE Ta
287Legacy alias for
288.Va system.product_name ,
289do not use in new configurations.
290.It Va smbios.serial Ta string Ta None Ta
291Legacy alias for
292.Va system.serial_number ,
293do not use in new configurations.
294.It Va smbios.sku Ta string Ta None Ta
295Legacy alias for
296.Va system.sku ,
297do not use in new configurations.
298.It Va smbios.version Ta string Ta 1.0 Ta
299Legacy alias for
300.Va system.version ,
301do not use in new configurations.
302.El
303.Ss x86-Specific Settings
304.Bl -column "x86.vmexit_on_pause" "integer" "Default"
305.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
306.It Va x86.mptable Ta bool Ta true Ta
307Generate an MPTable.
308.It Va x86.x2apic Ta bool Ta false Ta
309Configure guest's local APICs in x2APIC mode.
310.It Va x86.strictio Ta bool Ta false Ta
311Exit if a guest accesses an I/O port that is not emulated.
312By default, writes are ignored and reads return all bits set.
313.It Va x86.strictmsr Ta bool Ta true Ta
314Inject a general protection fault if a guest accesses a Model Specific
315Register (MSR) that is not emulated.
316If this is false, writes are ignored and reads return zero.
317.It Va x86.vmexit_on_hlt Ta bool Ta false Ta
318Force a VM exit when a guest CPU executes the
319.Dv HLT
320instruction.
321This allows idle guest CPUs to yield the host CPU.
322.It Va x86.vmexit_on_pause Ta bool Ta false Ta
323Force a VM exit when a guest CPU executes the
324.Dv PAUSE
325instruction.
326.El
327.Sh DEVICE SETTINGS
328Device settings are stored under a device node.
329The device node's name is set by the parent bus of the device.
330.Ss PCI Device Settings
331PCI devices are described by a device node named
332.Dq pci . Ns Ar bus . Ns Ar slot . Ns Ar function
333where each of
334.Ar bus ,
335.Ar slot ,
336and
337.Ar function
338are formatted as decimal values with no padding.
339All PCI device nodes must contain a configuration variable named
340.Dq device
341which specifies the device model to use.
342The following PCI device models are supported:
343.Bl -tag -width indent
344.It Li hostbridge
345Provide a simple PCI-Host bridge device.
346This is usually configured at pci0:0:0 and is required by most guest
347operating systems.
348.It Li ahci
349AHCI storage controller.
350.It Li e1000
351Intel e82545 network interface.
352.It Li fbuf
353VGA framebuffer device attached to VNC server.
354.It Li lpc
355LPC PCI-ISA bridge with COM1-COM4 16550 serial ports,
356a boot ROM,
357an optional fwcfg type,
358and an optional debug/test device.
359This device must be configured on bus 0.
360.It Li nvme
361NVM Express (NVMe) controller.
362.It Li passthru
363PCI pass-through device.
364.It Li uart
365PCI 16550 serial device.
366.It Li virtio-9p
367VirtIO 9p (VirtFS) interface.
368.It Li virtio-blk
369VirtIO block storage interface.
370.It Li virtio-console
371VirtIO console interface.
372.It Li virtio-net-viona
373Accelerated VirtIO network interface.
374.It Li net-viona
375Legacy VirtIO network interface.
376.It Li virtio-rnd
377VirtIO random number generator interface.
378.It Li xhci
379Extensible Host Controller Interface (XHCI) USB controller.
380.El
381.Ss USB Device Settings
382USB controller devices contain zero or more child USB devices
383attached to slots.
384Each USB device stores its settings in a node named
385.Dq slot. Ns Va N
386under the controller's device node.
387.Va N
388is the number of the slot to which the USB device is attached.
389Note that USB slot numbers begin at 1.
390All USB device nodes must contain a configuration variable named
391.Dq device
392which specifies the device model to use.
393The following USB device models are supported:
394.Bl -tag -width indent
395.It Li tablet
396A USB tablet device which provides precise cursor synchronization
397when using VNC.
398.El
399.Ss Block Device Settings
400Block devices use the following settings to configure their backing store.
401These settings are stored in the configuration node of the respective device.
402.Bl -column "sectorsize" "logical[/physical]" "Default"
403.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
404.It path Ta string Ta Ta
405The path of the file or disk device to use as the backing store.
406.It nocache Ta bool Ta false Ta
407Disable caching on the backing file by opening the backing file with
408.Dv O_DIRECT .
409.It nodelete Ta bool Ta false Ta
410Disable emulation of guest trim requests via
411.Dv DIOCGDELETE
412requests.
413.It sync Ta bool Ta false Ta
414Write changes to the backing file with synchronous writes.
415.It direct Ta bool Ta false Ta
416An alias for
417.Va sync .
418.It ro Ta bool Ta false Ta
419Disable writes to the backing file.
420.It sectorsize Ta Va logical Ns Op / Ns Va physical Ta Ta
421Specify the logical and physical sector size of the emulated disk.
422If the physical size is not specified, it is set to be equal to the logical
423size.
424.El
425.Ss virtio-net-viona Network Backend Settings
426Viona network devices use the following settings to configure their backend.
427.Bl -column "feature_flags" "string" "Default"
428.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
429.It vnic Ta string Ta Ta
430The VNIC to use for the network connection.
431.It feature_mask Ta integer Ta 0 Ta
432Specify a mask to apply to the virtio features advertised to the guest.
433.El
434.Pp
435Viona network devices have the ability to lend out their TX buffers, which
436can occasionally cause issues if they are not returned.
437This will result in the guest not being able to send any network packets,
438including TCP ACKs, resulting in the guest becoming completely unreachable.
439The default has changed to now always copy TX buffers.
440A temporary tunable has been added
441.Pq which will be removed when this has been properly addressed
442to restore the ability for the driver to loan out TX buffers, which is enabled
443by setting the variable
444.Sy viona:viona_default_tx_copy
445to 0 in
446.Xr system 5 .
447.Ss Other Network Backend Settings
448Other network devices use the following settings to configure their backend.
449.Bl -column "feature_flags" "string" "Default"
450.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
451.It vnic Ta string Ta Ta
452The VNIC to use for the network connection.
453.It promiscphys Ta bool Ta false Ta
454Enable promiscuous mode at the physical level.
455.It promiscsap Ta bool Ta true Ta
456Enable promiscuous mode at the SAP level.
457.It promiscmulti Ta bool Ta true Ta
458Enable promiscuous mode for all multicast addresses.
459.It promiscrxonly Ta bool Ta true Ta
460The selected promiscuous modes are only enabled for received traffic.
461.El
462.Ss UART Device Settings
463.Bl -column "Name" "Format" "Default"
464.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
465.It Va path Ta path Ta Ta
466Backend device for the serial port.
467Either the pathname of a character device or
468.Dq stdio
469to use standard input and output of the
470.Xr bhyve 8
471process.
472.El
473.Ss Host Bridge Settings
474Host Bridge devices use the following settings.
475When configuring parameters, either the
476.Va model
477by itself, or both of
478.Va vendor
479and
480.Va devid
481must be specified.
482The vendor and device IDs can be specified using the legacy
483.Va vendor
484and
485.Va devid ,
486or via the new
487.Va pcireg.vendor
488and
489.Va pcireg.device
490properties.
491.Bl -column "pcireg.*" "integer" "Default"
492.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
493.It Va model Ta string Ta netapp Ta
494Specify a hostbridge model to emulate.
495Valid model strings, and their associated vendor and device IDs are:
496.Sy amd Pq 0x1022/0x7432 ,
497.Sy netapp Pq 0x1275/0x1275 ,
498.Sy i440fx Pq 0x8086/0x1237
499and
500.Sy q35 Pq 0x8086/0x29b0 .
501.It Va vendor Ta integer Ta 0x1275 Ta
502PCI vendor ID.
503.It Va devid Ta integer Ta 0x1275 Ta
504PCI device ID.
505.It Va pcireg.* Ta integer Ta Ta
506Values of PCI register.
507.Bl -column "device" "Default"
508.It Sy Name Ta Sy Type Ta Sy Default
509.It Va vendor Ta integer Ta 0x1275
510.It Va device Ta integer Ta 0x1275
511.El
512.El
513.Ss AHCI Controller Settings
514AHCI controller devices contain zero or more ports each of which
515provides a storage device.
516Each port stores its settings in a node named
517.Dq port. Ns Va N
518under the controller's device node.
519The
520.Va N
521values are formatted as successive decimal values starting with 0.
522In addition to the block device settings described above, each
523port supports the following settings:
524.Bl -column "model" "integer" "generated"
525.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
526.It Va type Ta string Ta Ta
527The type of storage device to emulate.
528Must be set to either
529.Dq cd
530or
531.Dq hd .
532.It Va nmrr Ta integer Ta 0 Ta
533Nominal Media Rotation Rate, also known as RPM.
534A value 1 of indicates a device with no rate such as a Solid State Disk.
535.It Va ser Ta string Ta generated Ta
536Serial number of up to twenty characters.
537A default serial number is generated using a hash of the backing
538store's pathname.
539.It Va rev Ta string Ta 001 Ta
540Revision number of up to eight characters.
541.It Va model Ta string Ta Ta
542Model number of up to forty characters.
543Separate default model strings are used for
544.Dq cd
545and
546.Dq hd
547device types.
548.El
549.Ss Frame Buffer Settings
550.Bl -column "password" "[IP:]port" "127.0.0.1:5900"
551.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
552.It Va wait Ta bool Ta false Ta
553Wait for a remote connection before starting the VM.
554.It Va rfb Ta Oo Ar IP Ns \&: Oc Ns Ar port Ta 127.0.0.1:5900 Ta
555TCP address to listen on for remote connections.
556The IP address must be given as a numeric address.
557IPv6 addresses must be enclosed in square brackets and
558support scoped identifiers as described in
559.Xr getaddrinfo 3SOCKET .
560A bare port number may be given in which case the IPv4
561localhost address is used.
562.It Va unix Ta string Ta Ta
563UNIX socket to listen on for VNC connections.
564.It Va vga Ta string Ta io Ta
565VGA configuration.
566More details are provided in
567.Xr bhyve 8 .
568.It Va w Ta integer Ta 1024 Ta
569Frame buffer width in pixels.
570.It Va h Ta integer Ta 768 Ta
571Frame buffer height in pixels.
572.It Va password Ta string Ta Ta
573Password to use for VNC authentication.
574This type of authentication is known to be cryptographically weak and is not
575intended for use on untrusted networks.
576.El
577.Ss LPC Device Settings
578The LPC bridge stores its configuration under a top-level
579.Va lpc
580node rather than under the PCI LPC device's node.
581The following nodes are available under
582.Va lpc :
583.Bl -column "pc-testdev" "Format" "Default"
584.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
585.It Va com1 Ta node Ta Ta
586Settings for the COM1 serial port device.
587.It Va com2 Ta node Ta Ta
588Settings for the COM2 serial port device.
589.It Va com3 Ta node Ta Ta
590Settings for the COM3 serial port device.
591.It Va com4 Ta node Ta Ta
592Settings for the COM4 serial port device.
593.It Va fwcfg Ta string Ta bhyve Ta
594The fwcfg type to be used.
595Supported values are
596.Dq bhyve
597for fwctl and
598.Dq qemu
599for fwcfg.
600.It Va pc-testdev Ta bool Ta false Ta
601Enable the PC debug/test device.
602.It Va pcireg.* Ta integer Ta Ta
603Values of PCI register.
604This value is required for the Intel GOP driver to work properly.
605.Bl -column "subvendor" "Default"
606.It Sy Name Ta Sy Default
607.It Va vendor Ta 0x8086
608.It Va device Ta 0x7000
609.It Va revid Ta 0
610.It Va subvendor Ta 0
611.It Va subdevice Ta 0
612.El
613.El
614.Ss NVMe Controller Settings
615Each NVMe controller supports a single storage device.
616The device can be backed either by a memory disk described by the
617.Va ram
618variable, or a block device using the block device settings described above.
619In addition, each controller supports the following settings:
620.Bl -column "ioslots" "Format" "Default"
621.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
622.It Va maxq Ta integer Ta 16 Ta
623Maximum number of I/O submission and completion queue pairs.
624.It Va qsz Ta integer Ta 2058 Ta
625Number of elements in each I/O queue.
626.It Va ioslots Ta integer Ta 8 Ta
627Maximum number of concurrent I/O requests.
628.It Va sectsz Ta integer Ta Ta
629Sector size.
630Can be one of 512, 4096, or 8192.
631Devices backed by a memory disk use 4096 as the default.
632Devices backed by a block device use the block device's sector size
633as the default.
634.It Va ser Ta string Ta Ta
635Serial number of up to twenty characters.
636A default serial number is generated using a hash of the device's PCI address.
637.It Va eui64 Ta integer Ta Ta
638IEEE Extended Unique Identifier.
639If an EUI is not provided, a default is generated using a checksum of the
640device's PCI address.
641.It Va dsm Ta string Ta auto Ta
642Whether or not to advertise Dataset Management (DSM) support.
643One of
644.Dq auto ,
645.Dq enable ,
646or
647.Dq disable .
648The
649.Dq auto
650setting only advertises support if the backing store supports
651resource freeing, for example via TRIM.
652.It Va ram Ta integer Ta Ta
653If set, allocate a memory disk as the backing store.
654The value of this variable is the size of the memory disk in megabytes.
655.El
656.Ss PCI Passthrough Settings
657.Bl -column "Name" "integer" "Default"
658.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
659.It Va path Ta string Ta Ta
660Path to a PCI passthrough device in the form
661.Pa /dev/ppt Ns Ar N
662where
663.Ar N
664is the device number.
665.It Va rom Ta path Ta Ta
666ROM file of the device which will be executed by OVMF to initialise the device.
667.El
668.Ss VirtIO 9p Settings
669Each VirtIO 9p device exposes a single filesystem from a host path.
670.Bl -column "sharename" "Format" "Default"
671.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
672.It Va sharename Ta string Ta Ta
673The share name exposed to the guest.
674.It Va path Ta path Ta Ta
675The path of a directory on the host to export to the guest.
676.It Va ro Ta bool Ta false Ta
677If true, the guest filesystem is read-only.
678.El
679.Ss VirtIO Block Device Settings
680In addition to the block device settings described above, each
681VirtIO block device supports the following settings:
682.Bl -column "model" "integer" "generated"
683.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
684.It Va ser Ta string Ta generated Ta
685Serial number of up to twenty characters.
686A default serial number is generated using a hash of the backing
687store's pathname.
688.El
689.Ss VirtIO Console Device Settings
690Each VirtIO Console device contains one or more console ports.
691Each port stores its settings in a node named
692.Dq port. Ns Va N
693under the controller's device node.
694The
695.Va N
696values are formatted as successive decimal values starting with 0.
697Each port supports the following settings:
698.Bl -column "Name" "Format" "Default"
699.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
700.It Va name Ta string Ta Ta
701The name of the port exposed to the guest.
702.It Va path Ta path Ta Ta
703The path of a UNIX domain socket providing the host connection for the port.
704.El
705.Sh SEE ALSO
706.Xr strtoul 3C ,
707.Xr getaddrinfo 3SOCKET ,
708.Xr bhyve 8
709