- Joined
- Dec 4, 2020
- Messages
- 106
AMD USB Port Custom Mapping Mini Guide.
This is a basic simple guide to create a custom USBPorts.kext or SSDT for your AMD motherboards. There are other methods like USBMapping.kext etc., but this guide is mainly focused on the USBPorts.kext. It has been pointed ou that all the guides out there are for Intel systems only. I have found that following the basic Intel guides works for me with a few caveats. USBInjectall.kext does not work for AMD systems and is not recommended to be used. The USB HUB controllers are named differently for AMD systems and the use of SSDTs created for Intel systems don't work. USB 2.0 can be spotty, but I have been able to isolate them (some of them) and they work. I have done this on a few motherboards, MSI B550s, Asus B450s, Gigabyte X370, X470, and B550 models. They all have had some level of success and functionality. On some boards all the ports work as desired, others certain ports are deactivated, and ports right next to each other can be hit or miss. The bottom line is this is Hackintosh and AMD systems have different quirks that Intel users don't have to deal with. Mapping your ports can help to eliminate the guessing game as to whether the ports will work correctly or not, they can also determine whether your Bluetoooth or other internal headers function correctly. You should start out with bare basics and remove any Usb fixes you may be using and start from scratch so to speak . Save a copy of your working EFI and it is a good Idea to test this using a USB Installer EFI Partition and if it works for you transfer it to your system EFI. If anyone has any input or recommendations please leave a comment and a link. If there are any device properties rename patches please leave a copy or link.
Getting Started
1. Download the SSDT-EC-USBX-AMD.aml file attached below, it is not the same as the recent version included in the Dortania/Kronokernel guides.
The version included below doesn't compile errors in MacIasl.
The version linked to other guides may have this version which is for Intel based systems and creates errors in macIasl.
The version linked to other guides may have this version which is for Intel based systems and creates errors in macIasl.
The SSDT-EC-USBX-AMD.aml goes in the Open Core/ACPI Folder and must be set in the config.plist to enable it in Open Core. I use Propertree to run the OC Snapshot function as it does it automatically instead of a manual edit.
**Remove any other USB fixes you may have in your EFi like USBInjectall.kext, GenericXHCI.kext, USBMapping.kext etc...
2. Download these utilities for creating and editing the USB ports.kext/SSDT. HACKINTOOLheadkaze/Hackintool: The Swiss army knife of vanilla ... - GitHubgithub.com › headkaze › Hackintool, and IORegistry Explorer. utopia-team/IORegistryExplorer: The following repo is ... - GitHubgithub.com › utopia-team › IORegistryExplorer
4. Reboot and check for stability. Open Hackintool and select USB tab. Next open IOARegistry Explorer and scroll down to the PTXH or XHCO sections. Plug in a USB 2.0 drive into one of your Motherboard (back panel) ports and check to find it in IoReg explorer, it will appear as USB 2.0 device in Green text. This means it is live and mounted. Now check Hackintool and check that the locations and functions are the same.
5. Using Hackintool adjust the port type to USB 2.0 if it isn't already. The small up down arrows on the right side of the USB2 label in Hackintool can be used to set correct values. Set Bluetooth or other Internal Hubs to "Internal" as shown.
6. Continue testing the USB 2.0 stick in each port even if it is a Blue 3.0 port or red 3.1 port. These 3.0, 3.1 ports have backward compatibility in most cases and this is important to do so that you have proper power to the 2.0 portion of the physical ports. Next use a USB 3.0 stick and repeat the process and set the ports in Hackintool accordingly. If you have a USB 3.1 type C device use that too and set all ports to their correct values using the arrow tabs. There is a broom to sweep the ports and remove the green filled sections and a refresh tab as well to repopulate them. These can be used in case you make errors and need to start over. If you reset close IOReg app and reopen to refresh the filled in ports.
Note: It is a good idea and most intel guides recommend drawing a map of the front and back panels while doing this mapping. If you can find a picture of yours download it and print if possible and take notes like below. This comes in handy if you want to customize the names of these ports later.
7. Now that you have properly configured your ports its time to save those changes. Use the box with the arrow that points right tab at the bottom of the Hackintool window. It will leave a USBPorts.kext, and other aml and dsl files on the desktop. These can be used in Open Core in ACPI folder for the SSDTs, or the Kexts folder. Make sure to enable these in config.plist as mentioned earlier. Normally, you use the Kext or the SSDTs, but not both.
Using the USBPorts.kext is the easiest way to enable and use your ports. If you plan on using the USBX or UIAC aml files make sure to name them SSDT-XXXX-AMD.aml or similar name and include the .aml at the end. The .dsl files need to be saved as or compiled in .aml format. This is normally done using the MacIasl app.
Attachments
Last edited by a moderator: