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