I put in a feature request, but, I couldn't wait...
What I want is have /Extra/pci.plist file. ex.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "
http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>pci8086,27c5</key>
<string>8086 27c5 8086 7270</string>
</dict>
</plist>
That's my SATA controller, injecting vendor-id, device-id, subsystem-vendor-id, subsystem-id.
I can clean off many of _DSM methods from DSDT.dsl, and when the device is not present, there is no unnecessary entry in DSDT table since it patches up the devices in the box.
If you need to override device ID of SATA controller, USB or graphics card, no problem. And, you no longer need to worry about devices you are going to pull out when you use pci.plist since Cham does not inject the device-id if it's not in PCI path.
The diff is against trunk but it includes my "config=" changes as well, unfortunately.
Cheers.
P.S.
Well, my disk is still orange. I need to look for elsewhere.