The purpose of this project is to convert all PCI Drivers attachments to be table driven. The devmatch infrastructure gives us a way to match up hardware with kernel modules that implement drivers that claim the hardware. The drivers need some modification before devmatch can use them. Specifically, they need to have their device ID scans done via a table and that table needs to be decorated with PNP_INFO tag so the compiler and kld_xref extract the metadata that devmatch needs to do this job.
Work will be needed to move the in-line code to tables, some of the tables lookups may be moved to standardized routines. Trimming GENERIC to show that converted drivers work is also required.
There are about 243 such pci drivers. The plan is to convert a significant portion of them and maintain a documentation of the conversion.
As there a lot of the drivers, the testing needs to be automated in some way.
| Sno | PCI Driver name | Category | Status | ||||
|---|---|---|---|---|---|---|---|
| 1 | puc | trivial | Done ✔ | ||||
| 2 | bce | trivial | Done ✔ | ||||
| 3 | xl | trivial | Done ✔ | ||||
| 4 | ed | trivial | Done ✔ | ||||
| 5 | aac | trivial | Done ✔ | ||||
| 6 | ncr | hard | Done ✔ | ||||
| 7 | ath | hard | Done ✔ | ||||
| 8 | aacraid | trivial | Done ✔ | ||||
| 9 | ahci | trivial | Done ✔ | ||||
| 10 | an | trivial | Done ✔ | ||||
| 11 | bwn | medium | Done ✔ | ||||
| 12 | bwi | trivial | Done ✔ | ||||
| 13 | ale | trivial | Done ✔ | ||||
| 14 | amr | trivial | Done ✔ | ||||
| 15 | age | trivial | Done ✔ | ||||
| 16 | ae | trivial | Done ✔ | ||||
| 17 | alc | trivial | Done ✔ | ||||
| 18 | amdsmb | medium | In progress | ||||
| 19 | bfe | trivial | Done ✔ | ||||
| 20 | bge | trivial | Done ✔ | ||||
| 21 | ce | medium | Done ✔ | ||||
| 22 | dpt | medium | Done ✔ | ||||
| 23 | dc | trivial | Done ✔ | ||||
| 24 | ciss | trivial | Done ✔ | ||||
| 25 | ccp | trivial | Done ✔ | ||||
| 26 | cp | medium | Done ✔ | ||||
| 27 | cas | trivial | In progress | ||||
| 28 | ena | trivial | Done ✔ | ||||
| 29 | cy | medium | In progress | ||||
| 30 | esp | medium | Done ✔ | ||||
| 31 | bktr | hard | Done ✔ | ||||
| 32 | em | trivial | Done ✔ | ||||
| 33 | igb | trivial | Done ✔ | ||||
| 34 | cxgb | trivial | In progress | ||||
| 35 | fxp | trivial | Done ✔ | ||||
| 36 | gem | trivial | In progress | ||||
| 37 | glxsb | medium | Done ✔ | ||||
| 38 | grackle_hb | medium | Done ✔ | ||||
| 39 | hme | medium | Done ✔ | ||||
| 40 | hptio | hard | In progress | ||||
| 41 | arcmsr | hard | Done ✔ | ||||
| 42 | hifn | trivial | Done ✔ | ||||
| 43 | bt | trivial | Done ✔ | ||||
| 44 | snd_emu10k1 (emu_pci) | medium | Done ✔ | ||||
| 45 | emujoy | medium | Done ✔ | ||||
| 46 | ebus | medium | Done ✔ | ||||
| 47 | cbb | trivial | In progress | ||||
| 48 | de | medium | Done ✔ | ||||
| 49 | fixup_pci | trivial | Done ✔ | ||||
| 50 | imcsmb | medium | Done ✔ | ||||
| 51 | isab | medium | In progress | ||||
| 52 | ignore | trivial | Done ✔ | ||||
| 53 | ix | trivial | In progress | ||||
| 54 | ixv | trivial | In progress | ||||
| 55 | ixgbe | trivial | Done ✔ | ||||
| 56 | ips | medium | Done ✔ | ||||
| 57 | iwm | trivial | Done ✔ | ||||
| 58 | iir | trivial | Done ✔ | ||||
| 59 | et | trivial | Done ✔ | ||||
| 60 | ipw | trivial | Done ✔ | ||||
| 61 | ismt | medium | Done ✔ | ||||
| 62 | iicoc | medium | Done ✔ | ||||
| 63 | ipmi | medium | Done ✔ | ||||
| 64 | isp | hard | Done ✔ | ||||
| 65 | isci | medium | Done ✔ | ||||
| 66 | ixl | trivial | Done ✔ | ||||
| 67 | ixlv | trivial | Done ✔ | ||||
| 68 | iwn | trivial | Done ✔ | ||||
| 69 | iwi | medium | Done ✔ | ||||
| 70 | ioat | trivial | Done ✔ | ||||
| 71 | ida | trivial | Done ✔ | ||||
| 72 | le | medium | Done ✔ | ||||
| 73 | lio | medium | Done ✔ | ||||
| 74 | mpr | trivial | Done ✔ | ||||
| 75 | mvs | trivial | Done ✔ | ||||
| 76 | my | trivial | Done ✔ | ||||
| 77 | mly | trivial | Done ✔ | ||||
| 78 | mps | trivial | Done ✔ | ||||
| 79 | mskc | medium | Done ✔ | ||||
| 80 | mn | medium | Done ✔ | ||||
| 81 | mrsas | hard | Done ✔ | ||||
| 82 | mxge | medium | Done ✔ | ||||
| 83 | mfi | trivial | Done ✔ | ||||
| 84 | malo | medium | Done ✔ | ||||
| 85 | mwl | medium | Done ✔ | ||||
| 86 | nfsmb | medium | Done ✔ | ||||
| 87 | nge | medium | Done ✔ | ||||
| 88 | ntb_hw_plx | medium | Done ✔ | ||||
| 89 | ntb_hw_intel | trivial | Done ✔ | ||||
| 90 | nlmsec | trivial | Done ✔ | ||||
| 91 | nlmrsa | trivial | Done ✔ | ||||
| 92 | nfe | hard | Done ✔ | ||||
| 93 | nvme | trivial | Done ✔ | ||||
| 94 | ndis | trivial | Won't do | ||||
| 95 | ocs | medium | In progress | ||||
| 96 | ohci | hard | In progress | ||||
| 97 | pcibios | medium | In progress | ||||
| 98 | pcib | medium | Done ✔ | ||||
| 99 | qla | medium | Done ✔ | ||||
| 100 | qla80xx | medium | Done ✔ | ||||
| 101 | ql | medium | Done ✔ | ||||
| 102 | piix | medium | Done ✔ | ||||
| 103 | rp | medium | Done ✔ | ||||
| 104 | oce | trivial | Done ✔ | ||||
| 105 | re | hard | Done ✔ | ||||
| 106 | ppc | medium | Done ✔ | ||||
| 107 | pmspcv | ambiguous | Won't do | ||||
| 108 | ral | trivial | Done ✔ | ||||
| 109 | re | trivial | Done ✔ | ||||
| 109 | rl | trivial | Done ✔ | ||||
| 110 | pcn | trivial | Done ✔ | ||||
| 111 | pstpci | medium | Done ✔ | ||||
| 112 | sge | medium | Done ✔ | ||||
| 113 | sis | medium | Done ✔ | ||||
| 114 | ste | medium | Done ✔ |
https://www.freebsd.org/cgi/man.cgi?query=PCI_PNP_INFO&manpath=FreeBSD+12-current
https://www.freebsd.org/cgi/man.cgi?query=PCI_DEV&manpath=FreeBSD+12-current
https://www.freebsd.org/cgi/man.cgi?query=PCI_SUBDEV&manpath=FreeBSD+12-current
https://www.freebsd.org/cgi/man.cgi?query=PCI_VID&manpath=FreeBSD+12-current
https://www.freebsd.org/cgi/man.cgi?query=PCI_DEVID&manpath=FreeBSD+12-current
https://www.freebsd.org/cgi/man.cgi?query=PCI_SUBVID&manpath=FreeBSD+12-current
Note: Documentation links will appear broken until the code is merged into the master branch, please be patient.
https://reviews.freebsd.org/D16612
https://reviews.freebsd.org/D16540
https://reviews.freebsd.org/D16363
https://reviews.freebsd.org/D16253
https://reviews.freebsd.org/D16233
https://reviews.freebsd.org/D15999
https://reviews.freebsd.org/D15996