1f2521a76SDoug Ambrisko.\"- 24d846d26SWarner Losh.\" SPDX-License-Identifier: BSD-2-Clause 3f2521a76SDoug Ambrisko.\" 47af4475aSAlexander Motin.\" Copyright (c) 2021 Alexander Motin <mav@FreeBSD.org> 5f2521a76SDoug Ambrisko.\" Copyright 2019 Cisco Systems, Inc. 6f2521a76SDoug Ambrisko.\" 7f2521a76SDoug Ambrisko.\" Redistribution and use in source and binary forms, with or without 8f2521a76SDoug Ambrisko.\" modification, are permitted provided that the following conditions 9f2521a76SDoug Ambrisko.\" are met: 10f2521a76SDoug Ambrisko.\" 1. Redistributions of source code must retain the above copyright 11f2521a76SDoug Ambrisko.\" notice, this list of conditions and the following disclaimer. 12f2521a76SDoug Ambrisko.\" 2. Redistributions in binary form must reproduce the above copyright 13f2521a76SDoug Ambrisko.\" notice, this list of conditions and the following disclaimer in the 14f2521a76SDoug Ambrisko.\" documentation and/or other materials provided with the distribution. 15f2521a76SDoug Ambrisko.\" 16f2521a76SDoug Ambrisko.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17f2521a76SDoug Ambrisko.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18f2521a76SDoug Ambrisko.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19f2521a76SDoug Ambrisko.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20f2521a76SDoug Ambrisko.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21f2521a76SDoug Ambrisko.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22f2521a76SDoug Ambrisko.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23f2521a76SDoug Ambrisko.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24f2521a76SDoug Ambrisko.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25f2521a76SDoug Ambrisko.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26f2521a76SDoug Ambrisko.\" SUCH DAMAGE. 27f2521a76SDoug Ambrisko.\" 28c28220d8SAlexander Motin.Dd October 6, 2022 29f2521a76SDoug Ambrisko.Dt VMD 4 30f2521a76SDoug Ambrisko.Os 31f2521a76SDoug Ambrisko.Sh NAME 32f2521a76SDoug Ambrisko.Nm vmd 33f2521a76SDoug Ambrisko.Nd Intel Volume Management Device driver 34f2521a76SDoug Ambrisko.Sh SYNOPSIS 35f2521a76SDoug AmbriskoTo compile this driver into the kernel, place the following lines in your 36f2521a76SDoug Ambriskokernel configuration file: 37*c013ca2cSGraham Percival.Bd -ragged -offset indent 38f2521a76SDoug Ambrisko.Cd "device vmd" 39f2521a76SDoug Ambrisko.Ed 40f2521a76SDoug Ambrisko.Pp 41f2521a76SDoug AmbriskoAlternatively, to load the driver as a module at boot time, place the following 42f2521a76SDoug Ambriskoline in 43f2521a76SDoug Ambrisko.Xr loader.conf 5 : 44f2521a76SDoug Ambrisko.Bd -literal -offset indent 45f2521a76SDoug Ambriskovmd_load="YES" 46f2521a76SDoug Ambrisko.Ed 47f2521a76SDoug Ambrisko.Sh DESCRIPTION 487af4475aSAlexander MotinThis driver attaches to Intel VMD devices, representing them as PCI-to-PCI 497af4475aSAlexander Motinbridges and providing access to children PCI devices via new PCI domains. 507af4475aSAlexander MotinIntel VMD is used by Intel's VROC (Virtual RAID on chip) to manage NVMe 517af4475aSAlexander Motindrives. 527af4475aSAlexander Motin.Sh LOADER TUNABLES 537af4475aSAlexander MotinThe following tunables are settable via 547af4475aSAlexander Motin.Xr loader 8 557af4475aSAlexander Motinor 567af4475aSAlexander Motin.Xr sysctl 8 : 577af4475aSAlexander Motin.Bl -tag -width indent 58c28220d8SAlexander Motin.It Va hw.vmd.bypass_msi 59c28220d8SAlexander MotinBy default all VMD devices remap children MSI/MSI-X interrupts into their 60c28220d8SAlexander Motinown. It creates additional isolation, but also complicates things due to 61c28220d8SAlexander Motinsharing, etc. Fortunately some VMD devices can bypass the remapping. 62c28220d8SAlexander MotinDefaults to 1. 637af4475aSAlexander Motin.It Va hw.vmd.max_msi 647af4475aSAlexander MotinLimits number of Message Signaled Interrupt (MSI) vectors allowed to each 657af4475aSAlexander Motinchild device. 667af4475aSAlexander MotinVMD can't distinguish MSI vectors of the same device, so there are no 677af4475aSAlexander Motinbenefits to have more than one, unless it is required by specific device 687af4475aSAlexander Motindriver. 697af4475aSAlexander MotinDefaults to 1. 707af4475aSAlexander Motin.It Va hw.vmd.max_msix 717af4475aSAlexander MotinLimits number of Extended Message Signaled Interrupt (MSI-X) vectors 727af4475aSAlexander Motinallowed to each child device. 737af4475aSAlexander MotinVMD has limited number of interrupt vectors to map children interrupts into, 747af4475aSAlexander Motinso to avoid/reduce sharing children devices/drivers need to be constrained. 757af4475aSAlexander MotinDefaults to 3. 767af4475aSAlexander Motin.El 77f2521a76SDoug Ambrisko.Sh SEE ALSO 78f2521a76SDoug Ambrisko.Xr graid 8 79f2521a76SDoug Ambrisko.Sh HISTORY 80f2521a76SDoug AmbriskoThe 81f2521a76SDoug Ambrisko.Nm 82f2521a76SDoug Ambriskodriver first appeared in 83f2521a76SDoug Ambrisko.Fx 13.0 . 84