vmd: Use bus_read/write_* instead of bus_space_read/write_*Using an explicit bus space tag and handle is deprecated.Reviewed by: emasteDifferential Revision: https://reviews.freebsd.org/D43885
vmd: Use bus_read/write_* instead of bus_space_read/write_*Using an explicit bus space tag and handle is deprecated.Reviewed by: emasteDifferential Revision: https://reviews.freebsd.org/D43885(cherry picked from commit 76c678688634e9e2ea5f6369fb979aabddbfe426)
show more ...
vmd(4): Fix typos in source code comments- s/harwdare/hardware/(cherry picked from commit b2c48aa4d19268610191a0b7d7b76d01d28b0a13)
sys: Remove $FreeBSD$: one-line .c patternRemove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
sys: Remove $FreeBSD$: two-line .h patternRemove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
vmd: Add DID 8086:7D0B and 8086:AD0B for Intel MTL SKUsMFC after: 2 weeks
vmd: Bypass MSI/MSI-X remapping when possible.By default all VMD devices remap children MSI/MSI-X interrupts into theirown. It creates additional isolation, but also complicates things due tosha
vmd: Bypass MSI/MSI-X remapping when possible.By default all VMD devices remap children MSI/MSI-X interrupts into theirown. It creates additional isolation, but also complicates things due tosharing, etc. Fortunately some VMD devices can bypass the remapping.Add tunable to control it for remap testing or if something go wrong.MFC after: 2 weeks
vmd: Add 8086:A77F PCI ID for all Intel Raptor Lake SKUsSummary:This is based on the Linux kernel commit922bfd001d1ac02111ebbe0524aaab6ca7925521.Reviewed by: mav (src)MFC after: 3 daysDiffe
vmd: Add 8086:A77F PCI ID for all Intel Raptor Lake SKUsSummary:This is based on the Linux kernel commit922bfd001d1ac02111ebbe0524aaab6ca7925521.Reviewed by: mav (src)MFC after: 3 daysDifferential Revision: https://reviews.freebsd.org/D35996
vmd: Remove unused devclass argument to DRIVER_MODULE.
Missed line from 7af4475a6e31.MFC after: 2 weeks
vmd(4): Major driver refactoring - Re-implement pcib interface to use standard pci bus driver on top ofvmd(4) instead of custom one. - Re-implement memory/bus resource allocation to properly hand
vmd(4): Major driver refactoring - Re-implement pcib interface to use standard pci bus driver on top ofvmd(4) instead of custom one. - Re-implement memory/bus resource allocation to properly handle evencomplicated configurations. - Re-implement interrupt handling to evenly distribute children's MSI/MSI-X interrupts between available vmd(4) MSI-X vectors and setup themto be handled by standard OS mechanisms with minimal overhead, exceptsharing when unavoidable.Successfully tested on Dell XPS 13 laptop with Core i7-1185G7 CPU (VMDdevice 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 NVMeSSD on one PCIe port and PLX bridge with 3 NVMe and 1 AHCI SSDs onanother. 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 failwithout errors from IOMMU).MFC after: 2 weeksSponsored by: iXsystems, Inc.Differential revision: https://reviews.freebsd.org/D31762
vmd_bus: Fix typo in commentReviewed by: impDifferential Revision: https://reviews.freebsd.org/D31210
vmd: Rename vmd_bus class to pciThis fixes a kernel panic when probing for vmd_bus on Intel TigerLake on14-CURRENT. Apparently, vmd_bus is a type of PCI bus, but was registeredas a separate devic
vmd: Rename vmd_bus class to pciThis fixes a kernel panic when probing for vmd_bus on Intel TigerLake on14-CURRENT. Apparently, vmd_bus is a type of PCI bus, but was registeredas a separate device class.PR: 256915Reviewed by: impDifferential Revision: https://reviews.freebsd.org/D31071
Add support for some more Intel VMD controllers. Some of thenewer controller have a sparce bus space that can be figuredout by probing the HW. This gives the starting bus number.When reading the
Add support for some more Intel VMD controllers. Some of thenewer controller have a sparce bus space that can be figuredout by probing the HW. This gives the starting bus number.When reading the PCI config. space behind the VMD controller,the offset of the starting bus needs to be subtracted fromthe bus being read.Fixed a bug in which in which not all of the devicesdirectly attached to the VMD controller would be probed.On my initial test HW, a switch was found at bus 0, slot 0and function 0. All of the NVME drives were behind thatswitch. Now scan for all slots and functions attached tobus 0. If a something was found then run attach after thescan. On detach also go through all slots and functionson bus 0.Tested with device ID's: 0x201d & 0x9a0bTested by: nc@MFC after: 7 daysPR: 252253
vmd: Clean up resources properly when vmd_attach() fails- Free the resource container by calling rman_fini().[1]- Call device_delete_child() if device_probe_and_attach() fails.Reported by: nc [1
vmd: Clean up resources properly when vmd_attach() fails- Free the resource container by calling rman_fini().[1]- Call device_delete_child() if device_probe_and_attach() fails.Reported by: nc [1]MFC after: 2 weeks
vmd: clean up empty lines in .c and .h files
This driver attaches to the Intel VMD drive and connects a new PCI domainstarting at the max. domain, and then work down. Then existing FreeBSDdrivers will attach. Interrupt routing from the VMD
This driver attaches to the Intel VMD drive and connects a new PCI domainstarting at the max. domain, and then work down. Then existing FreeBSDdrivers will attach. Interrupt routing from the VMD MSI-X to the NVMEdrive is not well known, so any interrupt is sent to all children thatregister.VROC used Intel meta data so graid(8) works with it. However, graid(8)supports RAID 0,1,10 for read and write. I have some early code tosupport writes with RAID 5. Note that RAID 5 can have life issueswith SSDs since it can cause write amplification from updating the paritydata.Hot plug support needs a change to skip the following check to work: if (pcib_request_feature(dev, PCI_FEATURE_HP) != 0) {in sys/dev/pci/pci_pci.c.Looked at by: imp, rpokala, bcrDifferential Revision: https://reviews.freebsd.org/D21383