Jump to content

how does appleahci.kext knows my marvell card without pci matching id to load it? thx


kocoman
 Share

2 posts in this topic

Recommended Posts

Do you mean AppleAHCIPort.kext? The IOPCIFamily has several different ways to match kexts to it.
1) All of the normal IOKit matching methods (IOName, IOPropertyMatch, etc) which will check the name or properties of the device in the IOService tree.
2) IOPCIClassMatch - Checks the class of the PCI device, which is defined in the registers of every PCI device. This defines what type of device it is, such as whether it is a GPU, AHCI controller, WIFI card, etc
3) IOPCIPrimaryMatch - Checks the vendor and device id of the PCI device
Those three are the primary ways that AppleAHCIPort attempts to match against those controllers. You can see all of the IOKit personalities if you open up the Info.plist. There is a catch all entry which checks for the right PCI class (0x010601xx). It has a lower probe score compared to the other entries since it's a generic entry that is a "last resort" of sorts if none of the other personalities match.

 

Edit: If you have any further questions, you'll want to peruse the documentation that Apple has. Here is a page specifically about IOKit matching:
https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/Matching/Matching.html

Edited by 1Revenger1
  • Like 2
Link to comment
Share on other sites

 Share

×
×
  • Create New...