Page MenuHomeFreeBSD

Split AHCI PCI front end out to separate file.
ClosedPublic

Authored by imp on Aug 30 2014, 2:19 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, May 4, 8:01 AM
Unknown Object (File)
Sat, Apr 27, 5:00 AM
Unknown Object (File)
Feb 16 2024, 5:41 AM
Unknown Object (File)
Feb 9 2024, 10:15 AM
Unknown Object (File)
Feb 8 2024, 12:20 PM
Unknown Object (File)
Feb 8 2024, 10:10 AM
Unknown Object (File)
Feb 5 2024, 4:15 PM
Unknown Object (File)
Dec 31 2023, 4:40 PM
Subscribers

Details

Summary

Separate out PCI attachment from the main AHCI driver. Move checks of
PCI IDs into quirks, which mostly fit (though you'd get no argument
from me that AHCI_Q_SATA1_UNIT0 is oddly specific). Set these quirks
in the PCI attachment. Make some shared functions public so that PCI
and possibly other bus attachments can use them.

The split isn't perfect yet, but it is functional. The split will be
perfected as other bus attachments for AHCI are written.

Sponsored by: Netflix

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

imp retitled this revision from to Split AHCI PCI front end out to separate file..
imp updated this object.
imp edited the test plan for this revision. (Show Details)
imp added reviewers: scottl, mav.
kan added inline comments.
sys/dev/ahci/ahci_pci.c
532 ↗(On Diff #1284)

Where does this gets rolled back if code fails below?

Fix msi leak in original code.

Some thoughts in order of appearance:

  • AHCI_Q_BIT_STRING should be updated fore the new quirks;
  • AHCI_Q_MAXIO_128K really limits transfers to 64K, so I would rename it;
  • AHCI_Q_ATI_SB_BUG I would rename to AHCI_Q_ATI_PMP_BUG, sice it is a bug in Port-Multiplier handling.
imp edited edge metadata.

Update diffs after starting a10 attchment and implement mav@'s
suggestions.

Better split after writing A10 attach and detach to refactor things a
bit. This does change the order, so we need to audit what's torn down
at all the error exit points.

imp updated this revision to Diff 1358.

Closed by commit rS271146 (authored by @imp).