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