- knowledge about making efi strings;
- Some patience.
First you need is discover the DevicePath for each PCI Card. Using ioreg (type ioreg in Terminal) with gfxutil is easy. Search for each 'IOPCI2PCIBridge' (or similar) on your ioreg output and see if it have any device connected to it. If have, you can make it visible on System Profiler. On this guide I'll show to you what I did to show my JMicron Built-in Controller.
On the first picture, you see that on marked IOPCI2PCIBridge that I have 2 devices connected to it. JMB0@0 and JMB1@0,1. JMB0 you see that it's a AHCI Controller and JMB1 IDE Controller part, but I don't wanna IDE, only AHCI (remember, you can do it with every PCI devices connected to IOPCI2PCIBridge). Run 'gfxutil -f DEVICE', and as you see, on device i don't put @xxx, only what I see before @. If you have 'JMB0@0' on ioreg do 'gfxutil -f JMB0'. If you have 'pci1106,3044@0' on ioreg do 'gfxutil -f pci1106,3044'. After using 'gfxutil -f DEVICE' as explained before you get DevicePath.
On your EFI Strings file, add a entry of your device. For example, I'm showing what I did with my JMB0 device.
<key>PciRoot(0x1)/Pci(0x1c,0x3)/Pci(0x0,0x0)</key> <dict> <key>AAPL,slot-name</key> <string>Built In</string> <key>model</key> <string>Gigabyte GBB363 SATA-II RAID Controller</string> <key>device_type</key> <string>AHCI Controller</string> </dict>
As you see I have 3 entrys. On first 'AAPL_slot-name', type slot name that you wanna see. On RAID controler I typed Built In, but you can use what you want. i.e Slot-I, Slot-A, Hamburger, Pizza... =)
On second 'model' you change Card Name and 'device_type' you set Type that appear on PCI Cards screen.
I'm not good making how to, but I'm leaving a System Profiler screenshot and my EFI Strings plist to you see what I did. Remember that DevicePath are differents for each machine.
Important: on display cards or network cards you don't need to set 'model' or 'device_type', only AAPL,slot-name. On display cards model and device_type are set by standard (device_type as 'display' and model as card name). On ethernet device_type as 'Ethernet Controller', but you can set model. It doesn't work with AZALIA or HDEF.
If you already use any PCI device on efi strings, you need only add these keys on existing string, not making a new one. i.e: if you use efi-strings for graphics card, only add AAPL,slot-name key, and not create a new entry only for it.