HardenedBSD/sys/modules
Alexander Motin 7af4475a6e vmd(4): Major driver refactoring
- Re-implement pcib interface to use standard pci bus driver on top of
vmd(4) instead of custom one.
 - Re-implement memory/bus resource allocation to properly handle even
complicated configurations.
 - Re-implement interrupt handling to evenly distribute children's MSI/
MSI-X interrupts between available vmd(4) MSI-X vectors and setup them
to be handled by standard OS mechanisms with minimal overhead, except
sharing when unavoidable.

Successfully tested on Dell XPS 13 laptop with Core i7-1185G7 CPU (VMD
device ID 0x9a0b) and single NVMe SSD, dual-booting with Windows 10.

Successfully tested on Supermicro X11DPI-NT motherboard with Xeon(R)
Gold 6242R CPUs (VMD device ID 0x201d), simultaneously handling NVMe
SSD on one PCIe port and PLX bridge with 3 NVMe and 1 AHCI SSDs on
another.  Handles SSD hot-plug (except Optane 905p for some reason,
which are not detected until manual bus rescan) and enabled IOMMU
(directly connected SSDs work, but ones connected to the PLX fail
without errors from IOMMU).

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
Differential revision:	https://reviews.freebsd.org/D31762
2021-09-02 20:58:02 -04:00
..
3dfx
3dfx_linux
aac
aacraid
accf_data
accf_dns
accf_http
acl_nfs4
acl_posix1e
acpi
adlink
ae
aesni
age
agp
ahci
aic7xxx
alc
ale
allwinner
alq
am335x_dmtpps
amd_ecc_inject
amdgpio
amdsbwd
amdsmb
amdsmn
amdtemp
amr
aout
ar71xx
arcmsr
arm_ti
armv8crypto
asmc
ata
ath
ath_ahb
ath_dfs
ath_hal
ath_hal_ar5210
ath_hal_ar5211
ath_hal_ar5212
ath_hal_ar5416
ath_hal_ar9300
ath_main
ath_pci
ath_rate
autofs
axgbe
backlight
bce
bcm283x_clkman
bcm283x_pwm
bfe
bge
bhnd
bios
blake2
bnxt
bridgestp
bwi
bwn
bxe
bytgpio
cam
cardbus
carp
cas
cbb
cc
ccp
cd9660
cd9660_iconv
ce
cfi
cfiscsi
chromebook_platform
chvgpio
ciss
cloudabi
cloudabi32
cloudabi64
coretemp
cp
cpsw
cpuctl
cpufreq
crypto
cryptodev
ctl
cuse
cxgb
cxgbe
dc
dcons
dcons_crom
dpdk_lpm4
dpdk_lpm6
dpms
dtb
dtrace
dummynet
dwwdt
efirt
em
ena
enetc
enetc_mdio
epoch_test
esp
et
evdev
exca
ext2fs
fdc
fdescfs
fdt
felix
ffec
fib_dxr
filemon
firewire
firmware
ftwd
fusefs
fxp
gem
geom
glxiic
glxsb
gpio
hid
hifn
hpt27xx
hptiop
hptmv
hptnr
hptrr
hwpmc
hwpmc_mips24k
hwpmc_mips74k
hyperv
i2c
iavf
ibcore
ice
ice_ddp
ichwd
ida
if_bridge
if_disc
if_edsc
if_enc
if_epair
if_gif
if_gre
if_infiniband
if_lagg
if_me
if_stf
if_tuntap
if_vlan
if_vxlan
iflib
igc
iir
imgact_binmisc
imx
intelspi
io
ioat
ip6_mroute_mod
ip_mroute_mod
ipdivert
ipfilter
ipfw
ipfw_nat
ipfw_nat64
ipfw_nptv6
ipfw_pmod
ipmi
ipoib
ips
ipsec
ipw
ipwfw
isci
iscsi
iscsi_initiator
iser
isp
ispfw
itwd
iwi
iwifw
iwm
iwmfw
iwn
iwnfw
ix
ixl
ixv
jme
kbdmux
kgssapi
kgssapi_krb5
khelp
krpc
ksyms
le
lge
libalias
libiconv
libmchain
lindebugfs
linprocfs
linsysfs
linux
linux64
linux_common
linuxkpi
lio
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_ntpd
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
mac_veriexec
mac_veriexec_sha1
mac_veriexec_sha256
mac_veriexec_sha384
mac_veriexec_sha512
malo
mana
md
mdio
mem
mfi
mgb
mii
mlx
mlx4
mlx4en
mlx4ib
mlx5
mlx5en
mlx5fpga_tools
mlx5ib
mlxfw
mly
mmc
mmcnull
mmcsd
mpr
mps
mpt
mqueue
mrsas
msdosfs
msdosfs_iconv
msk
mthca
mvs
mwl
mwlfw
mxge
my
nctgpio
netfpga10g
netgraph
netmap
nfe
nfscl
nfscommon
nfsd
nfslockd
nfssvc
nge
nmdm
ntb
nullfs
nvd
nvdimm
nvme
nvram
oce
ocs_fc
opal_nvram
opensolaris
ossl
otus
otusfw
ow
p2sb
padlock
padlock_rng
pcfclock
pchtherm
pf
pflog
pfsync
plip
pms
powermac_nvram
ppbus
ppc
ppi
pps
procfs
proto
pseudofs
pst
pty
puc
pwm
qat
qatfw
qlnx
qlxgb
qlxgbe
qlxge
ral
ralfw
random_fortuna
random_other
rc4
rccgpio
rdma
rdrand_rng
re
rl
rndtest
rockchip
rpi_ft5406
rtsx
rtwn
rtwn_pci
rtwn_usb
rtwnfw
s3
safe
safexcel
sbni
scc
sctp
sdhci
sdhci_acpi
sdhci_fdt
sdhci_pci
sdio
sem
send
sfxge
sge
sgx
sgx_linux
siftr
siis
sis
sk
smartpqi
smbfs
snp
sound
speaker
spi
spigen
splash
sppp
ste
stge
sume
superio
sym
syscons
sysvipc
tcp
tests
ti
tmpfs
toecore
tpm
tsec
twa
twe
tws
uart
ubser
uchcom
ucycom
udf
udf_iconv
ufs
uinput
unionfs
usb
veriexec
vesa
vge
viawd
videomode
virtio
vkbd
vmd vmd(4): Major driver refactoring 2021-09-02 20:58:02 -04:00
vmm
vmware
vnic
vr
vte
wbwd
wlan
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi
wpifw
wtap
x86bios
xdr
xl
xz
zfs
zlib
Makefile vmd(4): Major driver refactoring 2021-09-02 20:58:02 -04:00
Makefile.inc