xref: /illumos-gate/usr/src/man/man5/bhyve_config.5 (revision a9609934f5fe9edf02846f74c6a16340e1679364)
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 July 29, 2023
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 acpi_tables Ta bool Ta false Ta
126Generate ACPI tables.
127.It Va acpi_tables_in_memory Ta bool Ta true Ta
128.Xr bhyve 8
129always exposes ACPI tables by FwCfg.
130For backward compatibility bhyve copies them into the guest memory as well.
131This can cause problems if the guest uses the in-memory version, since certain
132advanced features, such as TPM emulation, are exposed only via FwCfg.
133Therefore, it is recommended to set this flag to false when running Windows
134guests.
135.It Va destroy_on_poweroff Ta bool Ta false Ta
136Destroy the VM on guest-initiated power-off.
137.It Va gdb.address Ta string Ta localhost Ta
138Hostname, IP address, or IPv6 address for the debug server.
139.It Va gdb.port Ta integer Ta 0 Ta
140TCP port number for the debug server.
141If this is set to a non-zero value, a debug server
142will listen for connections on this port.
143.It Va gdb.wait Ta bool Ta false Ta
144If the debug server is enabled, wait for a debugger to connect
145before starting the guest.
146.It Va keyboard.layout Ta string Ta Ta
147Specify the keyboard layout name with the file name in
148.Pa /usr/share/bhyve/kbdlayout .
149This value only works when loaded with UEFI mode for VNC, and when a VNC client
150that doesn't support the QEMU Extended Key Event Message us used.
151.It Va tpm.path Ta string Ta Ta
152Path to the host TPM device.
153This is typically /dev/tpm0.
154.It Va tpm.type Ta string Ta Ta
155Type of the TPM device passed to the guest.
156Currently, only "passthru" is supported.
157.It Va tpm.version Ta string Ta 2.0 Ta
158Version of the TPM device according to the TCG specification.
159Currently, only version 2.0 is supported.
160.It Va rtc.use_localtime Ta bool Ta true Ta
161The real time clock uses the local time of the host.
162If this is set to false, the real time clock uses UTC.
163.It Va uuid Ta string Ta Ta
164The universally unique identifier (UUID) to use in the guest's
165System Management BIOS System Information structure.
166If an explicit value is not set, a valid UUID is generated from
167the host's hostname and the VM name.
168.It Va virtio_msix Ta bool Ta true Ta
169Use MSI-X interrupts for PCI VirtIO devices.
170If set to false, MSI interrupts are used instead.
171.It Va config.dump Ta bool Ta false Ta
172If this value is set to true then, after parsing command line options,
173.Xr bhyve 8
174will write all of its configuration variables to
175.Dv stdout
176and exit.
177No VM will be started.
178.It Va privileges.debug Ta bool Ta false Ta
179Enable debug messages relating to privilege management.
180These messages are sent to
181.Dv stdout .
182.It Va rfb.debug Ta bool Ta false Ta
183Enable debug messages relating to the RFB
184.Pq VNC
185server.
186.It Va viona.debug Ta bool Ta false Ta
187Enable debug messages relating to the accelerated virtio network device.
188These messages are sent to
189.Dv stdout .
190.It Va xhci.debug Ta bool Ta false Ta
191Enable debug messages relating to the emulated XHCI
192.Pq USB
193controller.
194These messages are sent to
195.Dv stderr .
196.It Va bios.vendor Ta string Ta BHYVE Ta
197This value is used for the guest's System Management BIOS System Information
198structure.
199.It Va bios.version Ta string Ta 14.0 Ta
200This value is used for the guest's System Management BIOS System Information
201structure.
202.It Va bios.release_date Ta string Ta 10/17/2021 Ta
203This value is used for the guest's System Management BIOS System Information
204structure.
205.It Va system.family_name Ta string Ta Virtual Machine Ta
206Family the computer belongs to.
207This value is used for the guest's System Management BIOS System Information
208structure.
209.It Va system.manufacturer Ta string Ta illumos Ta
210This value is used for the guest's System Management BIOS System Information
211structure.
212.It Va system.product_name Ta string Ta BHYVE Ta
213This value is used for the guest's System Management BIOS System Information
214structure.
215.It Va system.serial_number Ta string Ta None Ta
216This value is used for the guest's System Management BIOS System Information
217structure.
218.It Va system.sku Ta string Ta None Ta
219Stock keeping unit of the computer.
220It's also called product ID or purchase order number.
221This value is used for the guest's System Management BIOS System Information
222structure.
223.It Va system.version Ta string Ta 1.0 Ta
224This value is used for the guest's System Management BIOS System Information
225structure.
226.It Va board.manufacturer Ta string Ta illumos Ta
227This value is used for the guest's System Management BIOS System Information
228structure.
229.It Va board.product_name Ta string Ta BHYVE Ta
230This value is used for the guest's System Management BIOS System Information
231structure.
232.It Va board.version Ta string Ta 1.0 Ta
233This value is used for the guest's System Management BIOS System Information
234structure.
235.It Va board.serial_number Ta string Ta None Ta
236This value is used for the guest's System Management BIOS System Information
237structure.
238.It Va board.asset_tag Ta string Ta None Ta
239This value is used for the guest's System Management BIOS System Information
240structure.
241.It Va board.location Ta string Ta None Ta
242Describes the board's location within the chassis.
243This value is used for the guest's System Management BIOS System Information
244structure.
245.It Va chassis.manufacturer Ta string Ta illumos Ta
246This value is used for the guest's System Management BIOS System Information
247structure.
248.It Va chassis.version Ta string Ta 1.0 Ta
249This value is used for the guest's System Management BIOS System Information
250structure.
251.It Va chassis.serial_number Ta string Ta None Ta
252This value is used for the guest's System Management BIOS System Information
253structure.
254.It Va chassis.asset_tag Ta string Ta None Ta
255This value is used for the guest's System Management BIOS System Information
256structure.
257.It Va chassis.sku Ta string Ta None Ta
258Stock keeping unit of the chassis.
259It's also called product ID or purchase order number.
260This value is used for the guest's System Management BIOS System Information
261structure.
262.It Va smbios.family Ta string Ta Virtual Machine Ta
263Legacy alias for
264.Va system.family_name ,
265do not use in new configurations.
266.It Va smbios.manufacturer Ta string Ta illumos Ta
267Legacy alias for
268.Va system.manufacturer ,
269do not use in new configurations.
270.It Va smbios.product Ta string Ta BHYVE Ta
271Legacy alias for
272.Va system.product_name ,
273do not use in new configurations.
274.It Va smbios.serial Ta string Ta None Ta
275Legacy alias for
276.Va system.serial_number ,
277do not use in new configurations.
278.It Va smbios.sku Ta string Ta None Ta
279Legacy alias for
280.Va system.sku ,
281do not use in new configurations.
282.It Va smbios.version Ta string Ta 1.0 Ta
283Legacy alias for
284.Va system.version ,
285do not use in new configurations.
286.El
287.Ss x86-Specific Settings
288.Bl -column "x86.vmexit_on_pause" "integer" "Default"
289.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
290.It Va x86.mptable Ta bool Ta true Ta
291Generate an MPTable.
292.It Va x86.x2apic Ta bool Ta false Ta
293Configure guest's local APICs in x2APIC mode.
294.It Va x86.strictio Ta bool Ta false Ta
295Exit if a guest accesses an I/O port that is not emulated.
296By default, writes are ignored and reads return all bits set.
297.It Va x86.strictmsr Ta bool Ta true Ta
298Inject a general protection fault if a guest accesses a Model Specific
299Register (MSR) that is not emulated.
300If this is false, writes are ignored and reads return zero.
301.It Va x86.vmexit_on_hlt Ta bool Ta false Ta
302Force a VM exit when a guest CPU executes the
303.Dv HLT
304instruction.
305This allows idle guest CPUs to yield the host CPU.
306.It Va x86.vmexit_on_pause Ta bool Ta false Ta
307Force a VM exit when a guest CPU executes the
308.Dv PAUSE
309instruction.
310.El
311.Sh DEVICE SETTINGS
312Device settings are stored under a device node.
313The device node's name is set by the parent bus of the device.
314.Ss PCI Device Settings
315PCI devices are described by a device node named
316.Dq pci . Ns Ar bus . Ns Ar slot . Ns Ar function
317where each of
318.Ar bus ,
319.Ar slot ,
320and
321.Ar function
322are formatted as decimal values with no padding.
323All PCI device nodes must contain a configuration variable named
324.Dq device
325which specifies the device model to use.
326The following PCI device models are supported:
327.Bl -tag -width indent
328.It Li hostbridge
329Provide a simple PCI-Host bridge device.
330This is usually configured at pci0:0:0 and is required by most guest
331operating systems.
332.It Li ahci
333AHCI storage controller.
334.It Li e1000
335Intel e82545 network interface.
336.It Li fbuf
337VGA framebuffer device attached to VNC server.
338.It Li lpc
339LPC PCI-ISA bridge with COM1-COM4 16550 serial ports,
340a boot ROM,
341an optional fwcfg type,
342and an optional debug/test device.
343This device must be configured on bus 0.
344.It Li nvme
345NVM Express (NVMe) controller.
346.It Li passthru
347PCI pass-through device.
348.It Li uart
349PCI 16550 serial device.
350.It Li virtio-9p
351VirtIO 9p (VirtFS) interface.
352.It Li virtio-blk
353VirtIO block storage interface.
354.It Li virtio-console
355VirtIO console interface.
356.It Li virtio-net-viona
357Accelerated VirtIO network interface.
358.It Li net-viona
359Legacy VirtIO network interface.
360.It Li virtio-rnd
361VirtIO random number generator interface.
362.It Li xhci
363Extensible Host Controller Interface (XHCI) USB controller.
364.El
365.Ss USB Device Settings
366USB controller devices contain zero or more child USB devices
367attached to slots.
368Each USB device stores its settings in a node named
369.Dq slot. Ns Va N
370under the controller's device node.
371.Va N
372is the number of the slot to which the USB device is attached.
373Note that USB slot numbers begin at 1.
374All USB device nodes must contain a configuration variable named
375.Dq device
376which specifies the device model to use.
377The following USB device models are supported:
378.Bl -tag -width indent
379.It Li tablet
380A USB tablet device which provides precise cursor synchronization
381when using VNC.
382.El
383.Ss Block Device Settings
384Block devices use the following settings to configure their backing store.
385These settings are stored in the configuration node of the respective device.
386.Bl -column "sectorsize" "logical[/physical]" "Default"
387.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
388.It path Ta string Ta Ta
389The path of the file or disk device to use as the backing store.
390.It nocache Ta bool Ta false Ta
391Disable caching on the backing file by opening the backing file with
392.Dv O_DIRECT .
393.It nodelete Ta bool Ta false Ta
394Disable emulation of guest trim requests via
395.Dv DIOCGDELETE
396requests.
397.It sync Ta bool Ta false Ta
398Write changes to the backing file with synchronous writes.
399.It direct Ta bool Ta false Ta
400An alias for
401.Va sync .
402.It ro Ta bool Ta false Ta
403Disable writes to the backing file.
404.It sectorsize Ta Va logical Ns Op / Ns Va physical Ta Ta
405Specify the logical and physical sector size of the emulated disk.
406If the physical size is not specified, it is set to be equal to the logical
407size.
408.El
409.Ss virtio-net-viona Network Backend Settings
410Viona network devices use the following settings to configure their backend.
411.Bl -column "feature_flags" "string" "Default"
412.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
413.It vnic Ta string Ta Ta
414The VNIC to use for the network connection.
415.It feature_mask Ta integer Ta 0 Ta
416Specify a mask to apply to the virtio features advertised to the guest.
417.El
418.Pp
419Viona network devices have the ability to lend out their TX buffers, which
420can occasionally cause issues if they are not returned.
421This will result in the guest not being able to send any network packets,
422including TCP ACKs, resulting in the guest becoming completely unreachable.
423The default has changed to now always copy TX buffers.
424A temporary tunable has been added
425.Pq which will be removed when this has been properly addressed
426to restore the ability for the driver to loan out TX buffers, which is enabled
427by setting the variable
428.Sy viona:viona_default_tx_copy
429to 0 in
430.Xr system 5 .
431.Ss Other Network Backend Settings
432Other network devices use the following settings to configure their backend.
433.Bl -column "feature_flags" "string" "Default"
434.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
435.It vnic Ta string Ta Ta
436The VNIC to use for the network connection.
437.It promiscphys Ta bool Ta false Ta
438Enable promiscuous mode at the physical level.
439.It promiscsap Ta bool Ta true Ta
440Enable promiscuous mode at the SAP level.
441.It promiscmulti Ta bool Ta true Ta
442Enable promiscuous mode for all multicast addresses.
443.It promiscrxonly Ta bool Ta true Ta
444The selected promiscuous modes are only enabled for received traffic.
445.El
446.Ss UART Device Settings
447.Bl -column "Name" "Format" "Default"
448.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
449.It Va path Ta path Ta Ta
450Backend device for the serial port.
451Either the pathname of a character device or
452.Dq stdio
453to use standard input and output of the
454.Xr bhyve 8
455process.
456.El
457.Ss Host Bridge Settings
458Host Bridge devices use the following settings.
459When configuring parameters, either the
460.Va model
461by itself, or both of
462.Va vendor
463and
464.Va devid
465must be specified.
466The vendor and device IDs can be specified using the legacy
467.Va vendor
468and
469.Va devid ,
470or via the new
471.Va pcireg.vendor
472and
473.Va pcireg.device
474properties.
475.Bl -column "pcireg.*" "integer" "Default"
476.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
477.It Va model Ta string Ta netapp Ta
478Specify a hostbridge model to emulate.
479Valid model strings, and their associated vendor and device IDs are:
480.Sy amd Pq 0x1022/0x7432 ,
481.Sy netapp Pq 0x1275/0x1275 ,
482.Sy i440fx Pq 0x8086/0x1237
483and
484.Sy q35 Pq 0x8086/0x29b0 .
485.It Va vendor Ta integer Ta 0x1275 Ta
486PCI vendor ID.
487.It Va devid Ta integer Ta 0x1275 Ta
488PCI device ID.
489.It Va pcireg.* Ta integer Ta Ta
490Values of PCI register.
491.Bl -column "device" "Default"
492.It Sy Name Ta Sy Type Ta Sy Default
493.It Va vendor Ta integer Ta 0x1275
494.It Va device Ta integer Ta 0x1275
495.El
496.El
497.Ss AHCI Controller Settings
498AHCI controller devices contain zero or more ports each of which
499provides a storage device.
500Each port stores its settings in a node named
501.Dq port. Ns Va N
502under the controller's device node.
503The
504.Va N
505values are formatted as successive decimal values starting with 0.
506In addition to the block device settings described above, each
507port supports the following settings:
508.Bl -column "model" "integer" "generated"
509.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
510.It Va type Ta string Ta Ta
511The type of storage device to emulate.
512Must be set to either
513.Dq cd
514or
515.Dq hd .
516.It Va nmrr Ta integer Ta 0 Ta
517Nominal Media Rotation Rate, also known as RPM.
518A value 1 of indicates a device with no rate such as a Solid State Disk.
519.It Va ser Ta string Ta generated Ta
520Serial number of up to twenty characters.
521A default serial number is generated using a hash of the backing
522store's pathname.
523.It Va rev Ta string Ta 001 Ta
524Revision number of up to eight characters.
525.It Va model Ta string Ta Ta
526Model number of up to forty characters.
527Separate default model strings are used for
528.Dq cd
529and
530.Dq hd
531device types.
532.El
533.Ss Frame Buffer Settings
534.Bl -column "password" "[IP:]port" "127.0.0.1:5900"
535.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
536.It Va wait Ta bool Ta false Ta
537Wait for a remote connection before starting the VM.
538.It Va rfb Ta Oo Ar IP Ns \&: Oc Ns Ar port Ta 127.0.0.1:5900 Ta
539TCP address to listen on for remote connections.
540The IP address must be given as a numeric address.
541IPv6 addresses must be enclosed in square brackets and
542support scoped identifiers as described in
543.Xr getaddrinfo 3SOCKET .
544A bare port number may be given in which case the IPv4
545localhost address is used.
546.It Va unix Ta string Ta Ta
547UNIX socket to listen on for VNC connections.
548.It Va vga Ta string Ta io Ta
549VGA configuration.
550More details are provided in
551.Xr bhyve 8 .
552.It Va w Ta integer Ta 1024 Ta
553Frame buffer width in pixels.
554.It Va h Ta integer Ta 768 Ta
555Frame buffer height in pixels.
556.It Va password Ta string Ta Ta
557Password to use for VNC authentication.
558This type of authentication is known to be cryptographically weak and is not
559intended for use on untrusted networks.
560.El
561.Ss LPC Device Settings
562The LPC bridge stores its configuration under a top-level
563.Va lpc
564node rather than under the PCI LPC device's node.
565The following nodes are available under
566.Va lpc :
567.Bl -column "pc-testdev" "Format" "Default"
568.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
569.It Va bootrom Ta path Ta Ta
570Path to a boot ROM.
571The contents of this file are copied into the guest's
572memory ending just before the 4GB physical address.
573If a boot ROM is present, a firmware interface device is
574also enabled for use by the boot ROM.
575.It Va bootvars Ta path Ta Ta
576Path to boot variables file.
577The contents of this file are copied beneath the boot ROM.
578Firmware can write to it to save variables.
579Variables will be persistent across guest reboots.
580.It Va com1 Ta node Ta Ta
581Settings for the COM1 serial port device.
582.It Va com2 Ta node Ta Ta
583Settings for the COM2 serial port device.
584.It Va com3 Ta node Ta Ta
585Settings for the COM3 serial port device.
586.It Va com4 Ta node Ta Ta
587Settings for the COM4 serial port device.
588.It Va fwcfg Ta string Ta bhyve Ta
589The fwcfg type to be used.
590Supported values are
591.Dq bhyve
592for fwctl and
593.Dq qemu
594for fwcfg.
595.It Va pc-testdev Ta bool Ta false Ta
596Enable the PC debug/test device.
597.It Va pcireg.* Ta integer Ta Ta
598Values of PCI register.
599This value is required for the Intel GOP driver to work properly.
600.Bl -column "subvendor" "Default"
601.It Sy Name Ta Sy Default
602.It Va vendor Ta 0x8086
603.It Va device Ta 0x7000
604.It Va revid Ta 0
605.It Va subvendor Ta 0
606.It Va subdevice Ta 0
607.El
608.El
609.Ss NVMe Controller Settings
610Each NVMe controller supports a single storage device.
611The device can be backed either by a memory disk described by the
612.Va ram
613variable, or a block device using the block device settings described above.
614In addition, each controller supports the following settings:
615.Bl -column "ioslots" "Format" "Default"
616.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
617.It Va maxq Ta integer Ta 16 Ta
618Maximum number of I/O submission and completion queue pairs.
619.It Va qsz Ta integer Ta 2058 Ta
620Number of elements in each I/O queue.
621.It Va ioslots Ta integer Ta 8 Ta
622Maximum number of concurrent I/O requests.
623.It Va sectsz Ta integer Ta Ta
624Sector size.
625Can be one of 512, 4096, or 8192.
626Devices backed by a memory disk use 4096 as the default.
627Devices backed by a block device use the block device's sector size
628as the default.
629.It Va ser Ta string Ta Ta
630Serial number of up to twenty characters.
631A default serial number is generated using a hash of the device's PCI address.
632.It Va eui64 Ta integer Ta Ta
633IEEE Extended Unique Identifier.
634If an EUI is not provided, a default is generated using a checksum of the
635device's PCI address.
636.It Va dsm Ta string Ta auto Ta
637Whether or not to advertise Dataset Management (DSM) support.
638One of
639.Dq auto ,
640.Dq enable ,
641or
642.Dq disable .
643The
644.Dq auto
645setting only advertises support if the backing store supports
646resource freeing, for example via TRIM.
647.It Va ram Ta integer Ta Ta
648If set, allocate a memory disk as the backing store.
649The value of this variable is the size of the memory disk in megabytes.
650.El
651.Ss PCI Passthrough Settings
652.Bl -column "Name" "integer" "Default"
653.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
654.It Va path Ta string Ta Ta
655Path to a PCI passthrough device in the form
656.Pa /dev/ppt Ns Ar N
657where
658.Ar N
659is the device number.
660.It Va rom Ta path Ta Ta
661ROM file of the device which will be executed by OVMF to initialise the device.
662.El
663.Ss VirtIO 9p Settings
664Each VirtIO 9p device exposes a single filesystem from a host path.
665.Bl -column "sharename" "Format" "Default"
666.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
667.It Va sharename Ta string Ta Ta
668The share name exposed to the guest.
669.It Va path Ta path Ta Ta
670The path of a directory on the host to export to the guest.
671.It Va ro Ta bool Ta false Ta
672If true, the guest filesystem is read-only.
673.El
674.Ss VirtIO Block Device Settings
675In addition to the block device settings described above, each
676VirtIO block device supports the following settings:
677.Bl -column "model" "integer" "generated"
678.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
679.It Va ser Ta string Ta generated Ta
680Serial number of up to twenty characters.
681A default serial number is generated using a hash of the backing
682store's pathname.
683.El
684.Ss VirtIO Console Device Settings
685Each VirtIO Console device contains one or more console ports.
686Each port stores its settings in a node named
687.Dq port. Ns Va N
688under the controller's device node.
689The
690.Va N
691values are formatted as successive decimal values starting with 0.
692Each port supports the following settings:
693.Bl -column "Name" "Format" "Default"
694.It Sy Name Ta Sy Format Ta Sy Default Ta Sy Description
695.It Va name Ta string Ta Ta
696The name of the port exposed to the guest.
697.It Va path Ta path Ta Ta
698The path of a UNIX domain socket providing the host connection for the port.
699.El
700.Sh SEE ALSO
701.Xr strtoul 3C ,
702.Xr getaddrinfo 3SOCKET ,
703.Xr bhyve 8
704