1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-09 13:42:56 +00:00
freebsd/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 [aacraid] Port driver to big-endian 2020-03-05 20:04:41 +00:00
accf_data
accf_dns
accf_http
acl_nfs4
acl_posix1e
acpi
adlink
ae
aesni Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
age
agp
ahci
aic7xxx
alc
ale
allwinner arm: allwinner: aw_mmc: Make it possible to unload the module 2020-04-16 16:00:21 +00:00
alq
am335x_dmtpps
amd_ecc_inject
amdgpio
amdsbwd
amdsmb
amdsmn
amdtemp
amr
aout
ar71xx
arcmsr
arm_ti
armv8crypto armv8crypto: add AES-GCM support 2021-01-21 21:41:27 -08:00
asmc
ata pccard: Remove ata(4) PC Card attachemnt 2021-01-07 20:23:14 -07:00
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 10Gigabit Ethernet driver for AMD SoC 2020-10-11 16:01:16 +00:00
backlight Add backlight subsystem 2020-10-02 18:18:01 +00:00
bce
bcm283x_clkman
bcm283x_pwm
bfe
bge Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
bhnd
bios smbios: Move smbios driver out from x86 machdep code 2021-02-23 21:17:09 +00:00
blake2 Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
bnxt
bridgestp
bwi
bwn
bxe
bytgpio
cam We don't need $M/$M in the path anymore. 2020-03-15 17:40:14 +00:00
cardbus
carp
cas Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
cbb We'll never have multiple slots a cardbus bridge. So, replace exca 2019-12-16 21:34:51 +00:00
cc
ccp
cd9660
cd9660_iconv
ce Disable new clang 10.0.0 warnings about misleading indentation in ce(4) 2020-02-13 19:25:49 +00:00
cfi
cfiscsi
chromebook_platform
chvgpio
ciss
cloudabi
cloudabi32 Pass -fuse-ld=/path/to/ld if ${LD} != "ld" 2020-08-25 13:30:03 +00:00
cloudabi64 Pass -fuse-ld=/path/to/ld if ${LD} != "ld" 2020-08-25 13:30:03 +00:00
coretemp
cp Disable new clang 10.0.0 warnings about misleading indentation in ce(4) 2020-02-13 19:25:49 +00:00
cpsw Add missing dependency for cpsw module. 2020-08-01 09:06:16 +00:00
cpuctl
cpufreq cpufreq(4): Add support for Intel Speed Shift 2020-01-22 23:28:42 +00:00
crypto Add an implementation of CHACHA20_POLY1305 to cryptosoft. 2021-02-18 09:26:23 -08:00
cryptodev
ctl
cuse
cxgb None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
cxgbe cxgbe(4): Update firmwares to 1.26.0.0. 2021-07-12 21:25:36 -07:00
dc
dcons
dcons_crom
dpdk_lpm4 Bring DPDK route lookups to FreeBSD. 2021-01-09 12:41:04 +00:00
dpdk_lpm6 Bring DPDK route lookups to FreeBSD. 2021-01-09 12:41:04 +00:00
dpms
dtb dtb: freescale: Add fsl-ls1028a-rdb to the build 2021-08-03 12:07:49 +02:00
dtrace dtrace: Fix /"string" == NULL/ comparisons using an uninitialized value. 2021-01-08 14:37:17 -08:00
dummynet
dwwdt Add driver for Synopsys Designware Watchdog timer. 2021-01-13 18:43:47 +01:00
efirt
em if_em.ko: fix module build outside of kernel build environment 2020-12-06 17:44:28 +00:00
ena ena: Move RSS logic into its own source files 2021-09-02 01:06:26 +02:00
enetc enetc: Add autogenerated files to Makefile 2021-08-08 22:27:16 +02:00
enetc_mdio enetc_mdio: Support building the driver as a loadable module. 2021-08-03 12:07:49 +02:00
epoch_test Fix build of epoch_test module. 2020-09-02 09:17:29 +00:00
esp - Cleanups related to sparc64 removal. 2020-07-28 10:58:37 +00:00
et
evdev
exca
ext2fs
fdc pccard: Remove fdc(4) PC Card attachment point 2021-01-07 20:22:56 -07:00
fdescfs
fdt
felix felix: Add autogenerated files to Makefile 2021-08-08 22:27:15 +02:00
ffec
fib_dxr Introduce DXR as an IPv4 longest prefix matching / FIB module 2021-05-05 13:45:52 +02:00
filemon
firewire
firmware
ftwd Add watchdog(9) driver for the Fintek F81803 SuperIO chip 2020-11-28 22:34:33 +00:00
fusefs
fxp
gem Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
geom Remove GEOM_SCHED class and gsched tool. 2019-12-29 21:16:03 +00:00
glxiic
glxsb
gpio Add module build stuff for gpioths(4), a driver for DHT11/DHT22 sensors. 2019-12-07 17:54:40 +00:00
hid hidmap: add missing opt_hid.h to module Makefile 2021-04-14 23:05:59 +03:00
hifn
hpt27xx hpt27xx: Use EXTRA_OBJS instead of OBJS 2021-06-02 10:39:58 -06:00
hptiop
hptmv hptmv: use BLOB_OBJS for pre-built .o's 2021-06-02 10:39:58 -06:00
hptnr hptnr: use BLOB_OBJS for pre-built .o's 2021-06-02 10:39:58 -06:00
hptrr hptrr: use BLOB_OBJS for pre-built .o's 2021-06-02 19:07:38 -04:00
hwpmc [PowerPC] hwpmc: add support for POWER8/9 PMCs 2020-11-05 16:36:39 +00:00
hwpmc_mips24k
hwpmc_mips74k
hyperv hyperv: Fix vmbus after the i386 4/4 split 2021-06-08 09:40:30 -04:00
i2c htu21: driver for HTU21D I2C temperature and humidity sensor 2021-01-19 15:08:51 +02:00
iavf
ibcore ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
ice ice(4): Update to version 0.28.1-k 2021-03-05 17:33:39 -08:00
ice_ddp ice_ddp: Update to 1.3.24.0 2021-06-25 10:21:39 -07:00
ichwd
ida
if_bridge
if_disc
if_edsc
if_enc Add opt_ipsec.h to fix standalone builds after r361633. 2020-05-29 19:29:10 +00:00
if_epair
if_gif
if_gre
if_infiniband Factor out generic IP over infiniband, IPoIB, definitions and code 2020-10-22 09:09:53 +00:00
if_lagg modules: adding some missing opt_* dependencies 2020-01-29 22:43:56 +00:00
if_me
if_stf
if_tuntap
if_vlan modules: adding some missing opt_* dependencies 2020-01-29 22:43:56 +00:00
if_vxlan
iflib
igc igc(4): Introduce new driver for the Intel I225 Ethernet controller. 2021-07-12 14:57:18 +10:00
iir
imgact_binmisc
imx Convert the imx6_snvs RTC driver to access registers via the syscon device. 2020-11-25 19:10:20 +00:00
intelspi
io
ioat
ip6_mroute_mod
ip_mroute_mod
ipdivert
ipfilter
ipfw
ipfw_nat
ipfw_nat64 Follow RFC 4443 p2.2 and always use own addresses for reflected ICMPv6 2019-12-12 13:28:46 +00:00
ipfw_nptv6
ipfw_pmod
ipmi arm64: enable build of the ipmi module 2021-01-07 15:45:25 -04:00
ipoib Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
ips
ipsec Honor opt_ipsec.h from kernel builds. 2020-05-29 19:21:35 +00:00
ipw
ipwfw
isci
iscsi
iscsi_initiator
iser Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
isp Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
ispfw Remove parallel SCSI and 1/2Gb FC support from isp(4). 2020-11-20 01:15:48 +00:00
itwd
iwi
iwifw
iwm
iwmfw
iwn
iwnfw
ix Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
ixl ixl(4): Add FW recovery mode support and other things 2020-06-09 22:42:54 +00:00
ixv Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
jme
kbdmux
kgssapi
kgssapi_krb5 Remove support for Kernel GSS algorithms deprecated in r348875. 2020-04-10 23:08:41 +00:00
khelp
krpc Add TLS support to the kernel RPC. 2020-08-22 03:57:55 +00:00
ksyms
le Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
lge
libalias libalias: retire cuseeme support 2020-05-16 02:29:10 +00:00
libiconv
libmchain
lindebugfs Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
linprocfs
linsysfs
linux linux(4): Fix amd64 gcc build. 2021-07-26 22:28:21 +03:00
linux64 linux(4): Fix amd64 gcc build. 2021-07-26 22:28:21 +03:00
linux_common linux(4): Deduplicate unimpl/dummy syscall handlers 2020-11-05 19:30:31 +00:00
linuxkpi LinuxKPI: Make FPU sections thread-safe and use the NOCTX flag. 2021-07-31 15:36:48 +02:00
lio Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
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 Microsoft Azure Network Adapter(MANA) VF support 2021-08-20 10:44:57 +00:00
md
mdio
mem
mfi
mgb
mii mlphy(4)/tlphy(4): Remove obsolete drivers 2020-12-26 19:40:55 +01:00
mlx
mlx4 Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx4en Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx4ib Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx5 ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
mlx5en ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
mlx5fpga_tools ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
mlx5ib ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
mlxfw ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
mly
mmc
mmcnull
mmcsd
mpr
mps
mpt
mqueue
mrsas Don't define _STANDALONE when building kernel modules. 2020-09-24 07:10:34 +00:00
msdosfs
msdosfs_iconv
msk
mthca Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mvs
mwl
mwlfw
mxge
my
nctgpio
netfpga10g
netgraph netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
netmap
nfe
nfscl Fix the standalone build of the nfscl and nfsd modules. 2020-09-02 01:29:33 +00:00
nfscommon
nfsd Fix the standalone build of the nfscl and nfsd modules. 2020-09-02 01:29:33 +00:00
nfslockd
nfssvc
nge
nmdm
ntb
nullfs
nvd Unbreak nvd(8) build as module outside of kernel build environment. 2020-08-16 11:37:28 +00:00
nvdimm
nvme
nvram
oce Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
ocs_fc ocs_fc: Add gendump and dump_to_host ioctl command support. 2021-07-06 21:08:11 +05:30
opal_nvram
opensolaris openzfs: fix gcc kernel module builds 2020-12-27 14:33:13 -08:00
ossl ossl: Add ChaCha20 cipher support. 2021-03-03 15:20:57 -08:00
otus
otusfw
ow
p2sb Add support for Lewisburg GPIO through P2SB 2021-08-26 11:00:39 +02:00
padlock
padlock_rng
pcfclock
pchtherm Add Platform Controller Hub built-in thermal management device driver. 2020-03-31 06:25:43 +00:00
pf pf: syncookie support 2021-07-20 10:36:13 +02:00
pflog
pfsync
plip
pms
powermac_nvram
ppbus
ppc
ppi
pps
procfs Retire procfs-based process debugging. 2020-04-01 19:22:09 +00:00
proto
pseudofs
pst
pty
puc pccard: Remove puc(4) PC Card attachment 2021-01-07 20:23:00 -07:00
pwm pwm_backlight: Add regnode_if.h to SRCS 2020-10-03 14:01:20 +00:00
qat Add qat(4) 2020-11-05 15:55:23 +00:00
qatfw qatfw: Fix firmware autoloading for qat_c2xxx devices 2020-12-23 11:36:45 -05:00
qlnx Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
qlxgb
qlxgbe
qlxge
ral
ralfw
random_fortuna
random_other
rc4
rccgpio
rdma None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
rdrand_rng
re
rl
rndtest
rockchip arm64: rockchip: Add a module for rk_spi 2020-01-02 17:44:41 +00:00
rpi_ft5406
rtsx Port rtsx(4) driver for Realtek SD card reader from OpenBSD. 2020-11-24 21:28:44 +00:00
rtwn
rtwn_pci
rtwn_usb
rtwnfw
s3
safe
safexcel Add a driver for the SafeXcel EIP-97. 2020-07-14 14:09:29 +00:00
sbni
scc scc(4)/uart(4): Remove obsolete support for Siemens SAB 82532 2020-12-26 13:48:06 +01:00
sctp Provide support for building SCTP as a loadable module. 2020-07-10 14:56:05 +00:00
sdhci
sdhci_acpi
sdhci_fdt sdhci_fdt: Add gpio_if.h to the source 2021-06-21 21:55:03 +02:00
sdhci_pci
sdio
sem
send
sfxge None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
sge
sgx
sgx_linux
siftr
siis
sis
sk
smartpqi
smbfs
snp
sound Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
speaker
spi
spigen
splash
sppp
ste
stge
sume Driver for 4x10Gb Ethernet reference NIC FPGA design for NetFPGA SUME 2020-08-30 07:34:32 +00:00
superio
sym
syscons Remove apm screen saver. 2020-10-08 20:56:00 +00:00
sysvipc
tcp Revise r361712 to disable tcpmd5.ko for 'options TCP_SIGNATURE' 2020-06-03 18:42:28 +00:00
tests Add fib lookup testing module. 2021-01-09 13:20:30 +00:00
ti
tmpfs
toecore
tpm Revert r357349, since the clang 10.0.0 warning was actually correct, and 2020-02-01 16:57:04 +00:00
tsec
twa
twe
tws
uart pccard: Remove uart(4) PC Card attachment 2021-01-07 20:23:09 -07:00
ubser
uchcom
ucycom
udf
udf_iconv
ufs
uinput
unionfs
usb wsp(4): Add evdev support. 2021-08-25 02:01:42 +03:00
veriexec
vesa
vge
viawd
videomode
virtio virtio: Add VirtIO PCI modern (V1) support 2021-01-19 04:55:23 +00:00
vkbd
vmd vmd(4): Major driver refactoring 2021-09-02 20:58:02 -04:00
vmm AMD-vi: Fix IOMMU device interrupts being overridden 2021-03-22 17:33:43 +08:00
vmware build vmware modules on arm64 2020-10-19 20:43:29 +00:00
vnic
vr
vte
wbwd
wlan
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi
wpifw
wtap
x86bios
xdr Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
xl
xz
zfs zfs: merge openzfs/zfs@3b89d9518 (master) into main 2021-08-31 09:02:21 +02:00
zlib
Makefile vmd(4): Major driver refactoring 2021-09-02 20:58:02 -04:00
Makefile.inc