Supporting AR9003 and later NICs in FreeBSD
Overview
AR9003 and later support requires some driver changes as well as a new HAL. This page will cover the needed steps.
Steps
HAL
- New HAL code
- Extend HAL API with new methods (the AR9003 and later descriptors contain data/len pointers for up to four fragments; it also supports descriptor 'checksum' support; there are likely other things needed.)
Driver
- PAPRD calibration support (double-check?)
- MSI support (message-signaled interrupts, for PCIe)
- Changes to TX/RX descriptor sizes - make it configurable at run-time? Or just compile-time?
- Rate control changes to support 3-stream and up to MCS31
- TX/RX DMA changes ("EDMA") to support the new ring-based TX/RX FIFO
- RX 'high' and 'low' priority changes
Net80211
- Verify that 3-stream support (up to MCS31) is correctly functioning