Hello @PPCnostalgic. Thanks for the response. I spent some time reading about custom DSDT patching last night. I was hoping not to have to do it, or, perhaps even find and download a patch for my system (since it's a pre-built one) but - I wasn't able to find that.
I've worked in IT development for 20 years so I prefer to spend my free time doing more fun things - hence this isn't an area I am familiar with. Am willing to learn though.
So far I know that you can get the machines DSDT table from linux by using:
sudo cat /sys/firmware/acpi/tables/dsdt dsdt.aml > myDSDT.aml.
I have ubuntu but it's not installed on that machine so there is always that fallback.
I also gather that you can obtain the same by pressing F4 during the clover boot process. However, for this to work, I gather the EFI partition has to be FAT32. Which it is not for me. So that's no good.
I used a script from this post http://www.insanelym...ow-do-i-get-it/to extract the DSDT table info. It appears to make use of a tool IoReg (IORegistryExplorer) to do that. That seems a bit convoluted.
I also downloaded: MaciASL from here: https://sourceforge....rce=recommended
That seemed to allow saving of both a binary System.aml and a dissassembled System.dsl file to examine. So far, so good.
The next problem is how to obtain information on the ports that are active and perform a process of port discovery.
I have gathered that it's necessary to:
Disable any existing custom SSDT or DSDT (presumably to ensure correct output)
rename EHC1->EH01 and EHC2->EH02 (in config.plist), if applicable (if the chipset has EHCI present and enabled). I understand that this is necessary so that the apple 'port injectors' in MacOS do not 'find' the ports and interfere with what's in the actual DSDT for those ports. Then some other custom port injector can work with them.
Ensure that XHCI controller is named XHC (for most PCs it is default)
apply the port limit patch (in config.plist) (not sure why that is - I read some discussion about USB device limits)
install USBInjectAll.kext to the system volume.
install FakePCIID.kext + FakePCIID_XHCIMux.kext if I want to use it.
And then use a package such as IoRegistryExplorer (IoReg) to test the ports.
Then I gather there is some method of writing text-based 'patches' in the clover config.plist that will be appled to the core DSDT to change the values that I want - rather than writing and saving a whole file although it also looks like MaciASL can do that.
It looks like 'clover configurator' has a number of pre-configured patches that it can apply to clover.plist - including the above mentioned EHC1->EH01 Patches.
I'm trying to find out how to decide what needs to be patched. Perhaps looking inside the output of MacIASL will help me out there. So. The ACPI spec is here: http://www.acpi.info/spec.htm
Quickly scanning the spec, it seems to me that _UPC and _PLD objects in the file are related to USB 2.0 controllers. I'm looking around in the DSDT.dsl file to find anything that looks USB related. Not having much luck - there must be something I'm missing.
I also ran IORegistryExplorer on my existing Yosemite installation and I can see entries under AppleACPIPCI which related to USB Keyboard and so on - I guess the key now is to know how to read that and translate what's in it, to the content of the DSDT.dsl file so I know what to patch.
I tried plugging in a USB stick into a port whilst it was running.
I can see output like this:
(contains entries for IOUSBMassStorageClass) - so I assume this is the stick.
USB receiver@1d160000 - which seems to be my wireless keyboard/mouse receiver.
I have a feeling that I need to rename EUSB to EHC1 to get it working.
Does that sound to be on the right track? Are there any shortcut guides to understanding the content of the system DSL file without needing to read the ACPI spec?