Jump to content
About Just Joined group Read more... ×
Mieze

Tracing back the AMD GPU wakeup issue to its origin

365 posts in this topic

Recommended Posts

How is this a bad idea? Having a repo of different SSDT/DSDT settings for different types of AMD GPUs is exactly what is needed. The GPU section of both are generally the same.

Yup

Share this post


Link to post
Share on other sites
Advertisement

How is this a bad idea? Having a repo of different SSDT/DSDT settings for different types of AMD GPUs is exactly what is needed. The GPU section of both are generally the same.

I see his point if it includes CPU, Audio, Ethernet, WiFi or other fixes that are mobo or CPU dependent and for a specific user. But if they are only simple graphics, graphics audio, and or graphics Framebuffer related they should work for most systems, I would think. As long as they are listed for specific models of cards, and porting is specified if applicable they could help a lot of people out.

Share this post


Link to post
Share on other sites

To make things a little bit more clear for those of us, which are "non coders" in real live: take a look at "slice"s example SSDT:

 

 

 

/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20161210-64(RM)
* Copyright (c) 2000 - 2016 Intel Corporation
*
* Disassembling to non-symbolic legacy ASL operators
*
* Disassembly of iASLXjEc7P.aml, Thu Nov 9 19:20:22 2017
*
* Original Table Header:
* Signature "SSDT"
* Length 0x00000123 (291)
* Revision 0x02
* Checksum 0x24
* OEM ID "Apple"
* OEM Table ID "Radeon"
* OEM Revision 0x00003000 (12288)
* Compiler ID "INTL"
* Compiler Version 0x20170929 (538380585)
*/
DefinitionBlock ("", "SSDT", 2, "Apple", "Radeon", 0x00003000)
{
External (_SB_.PCI0.PEG0.PEGP, DeviceObj) // (from opcode)

Scope (\_SB.PCI0.PEG0.PEGP)
{
OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
Field (PCIB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
BAR0, 32,
BAR1, 32,
BAR2, 64,
BAR4, 32,
BAR5, 32
}

Method (_INI, 0, NotSerialized) // _INI: Initialize
{
If (LEqual (BAR5, Zero))
{
Store (BAR2, Local0)
}
Else
{
Store (BAR5, Local0)
}

OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
Field (GREG, AnyAcc, NoLock, Preserve)
{
Offset (0x6800),
GENA, 32,
GCTL, 32,
LTBC, 32,
Offset (0x6810),
PSBL, 32,
SSBL, 32,
PTCH, 32,
PSBH, 32,
SSBH, 32,
Offset (0x6848),
FCTL, 32,
Offset (0x6EF8),
MUMD, 32
}

Store (Zero, FCTL)
Store (Zero, PSBH)
Store (Zero, SSBH)
Store (Zero, LTBC)
Store (One, GENA)
Store (Zero, MUMD)
}
}
}

 

 

 

Now take alook at this specific part of the code:

DefinitionBlock ("", "SSDT", 2, "Apple", "Radeon", 0x00003000)
{
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)    // (from opcode)

    Scope (\_SB.PCI0.PEG0.PEGP)
    {

This part is ALLWAYS DSDT-specific, cause you need to know, where in your DSDT your SSDT-related hardware needs to be injected.

 

For another example lets take a look at my RX580-realted SSDT:

DefinitionBlock ("", "SSDT", 2, "MvO_2", "PegSsdt", 0x00001000)
{
    External (_SB_.GGOV, MethodObj)    // 1 Arguments (from opcode)
    External (_SB_.ISME, MethodObj)    // 1 Arguments (from opcode)
    External (_SB_.PCI0, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG0, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG1, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG1.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG2, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG2.PEGP, DeviceObj)    // (from opcode)
.
.
.
.

    If (CondRefOf (\_SB.PCI0.PEG0.PEGP))
    {
        Scope (\_SB.PCI0.PEG0.PEGP)
        {
            Device (AMD0)
            {
                Name (_ADR, 0x00080000)  // _ADR: Address
                Device (GFX0)
                {
                   Name (_ADR, Zero)  // _ADR: Address

As you can see here, my GPU normally would be injected under "_SB.PCI0.PEG0.PEGP.pci-bridge@8.pci-bridge@0" which i have renamed to "_SB.PCI0.PEG0.PEGP.AMD0.GFX0".

And exactly THIS is always specific to the users DSDT.

 

What than follows, is only related to the users used GFX-Model and could be configured with specific values as part of the users used gfx-card.

And it is adviced to, after you know your correct path of your used gfx-card, to insert directly Miezes code first, so it would look like this:

        Scope (\_SB.PCI0.PEG0.PEGP)
        {
            Device (AMD0)
            {
                Name (_ADR, 0x00080000)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
                    Field (PCIB, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x10), 
                        BAR0,   32, 
                        BAR1,   32, 
                        BAR2,   64, 
                        BAR4,   32, 
                        BAR5,   32
                    }

                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                        If (LEqual (BAR5, Zero))
                        {
                            Store (BAR2, Local0)
                        }
                        Else
                        {
                            Store (BAR5, Local0)
                        }

                        OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
                        Field (GREG, AnyAcc, NoLock, Preserve)
                        {
                            Offset (0x6800), 
                            GENA,   32, 
                            GCTL,   32, 
                            LTBC,   32, 
                            Offset (0x6810), 
                            PSBL,   32, 
                            SSBL,   32, 
                            PTCH,   32, 
                            PSBH,   32, 
                            SSBH,   32, 
                            Offset (0x6848), 
                            FCTL,   32, 
                            Offset (0x6EF8), 
                            MUMD,   32
                        }

                        Store (Zero, FCTL)
                        Store (Zero, PSBH)
                        Store (Zero, SSBH)
                        Store (Zero, LTBC)
                        Store (One, GENA)
                        Store (Zero, MUMD)
                    }


followed by your card-specific values like Device-ID, VendorID, Subsystem-ID, Slot-name, Model name, used Frambuffer etc. Example again:

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x06)
                            {
                                "@0,name", 
                                Buffer (0x0C)
                                {
                                    "ATY,Orinoco"
                                }, 

                                "AAPL,slot-name", 
                                Buffer (0x08)
                                {
                                    "PCIe #1"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

So to stay with the example of MY specific implementation of MY specific RX480, the complete Code would look like this:

 /*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20161210-64(RM)
 * Copyright (c) 2000 - 2016 Intel Corporation
 * 
 * Disassembling to non-symbolic legacy ASL operators
 *
 * Disassembly of iASLneKcV3.aml, Thu Nov  9 19:45:36 2017
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000026B7 (9911)
 *     Revision         0x02
 *     Checksum         0xD4
 *     OEM ID           "MvO_2"
 *     OEM Table ID     "PegSsdt"
 *     OEM Revision     0x00001000 (4096)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20161210 (538317328)
 */
DefinitionBlock ("", "SSDT", 2, "MvO_2", "PegSsdt", 0x00001000)
{
    External (_SB_.GGOV, MethodObj)    // 1 Arguments (from opcode)
    External (_SB_.ISME, MethodObj)    // 1 Arguments (from opcode)
    External (_SB_.PCI0, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG0, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG1, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG1.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG2, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.PEG2.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.SGOV, MethodObj)    // 2 Arguments (from opcode)
    External (_SB_.SHPO, MethodObj)    // 2 Arguments (from opcode)

   If (CondRefOf (\_SB.PCI0.PEG0.PEGP))
    {
        Scope (\_SB.PCI0.PEG0.PEGP)
        {
            Device (AMD0)
            {
                Name (_ADR, 0x00080000)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (PCIB, PCI_Config, Zero, 0x0100) // <--- from here...
                    Field (PCIB, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x10), 
                        BAR0,   32, 
                        BAR1,   32, 
                        BAR2,   64, 
                        BAR4,   32, 
                        BAR5,   32
                    }

                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                        If (LEqual (BAR5, Zero))
                        {
                            Store (BAR2, Local0)
                        }
                        Else
                        {
                            Store (BAR5, Local0)
                        }

                        OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
                        Field (GREG, AnyAcc, NoLock, Preserve)
                        {
                            Offset (0x6800), 
                            GENA,   32, 
                            GCTL,   32, 
                            LTBC,   32, 
                            Offset (0x6810), 
                            PSBL,   32, 
                            SSBL,   32, 
                            PTCH,   32, 
                            PSBH,   32, 
                            SSBH,   32, 
                            Offset (0x6848), 
                            FCTL,   32, 
                            Offset (0x6EF8), 
                            MUMD,   32
                        }

                        Store (Zero, FCTL)
                        Store (Zero, PSBH)
                        Store (Zero, SSBH)
                        Store (Zero, LTBC)
                        Store (One, GENA)
                        Store (Zero, MUMD)
                    } // <--- to here is MIEZEs code to get it work w/o LILU and WhatEverGreen

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method  // <--- from here...
                    {
                        Store (Package (0x06)
                            {
                                "@0,name", 
                                Buffer (0x0C)
                                {
                                    "ATY,Orinoco"
                                }, 

                                "AAPL,slot-name", 
                                Buffer (0x08)
                                {
                                    "PCIe #1"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                           
                            })
                        }

                        Return (Package (0x04)
                        {
                            "layout-id", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00                         
                            }, 

                            "hda-gfx", 
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            }
                        })
                    }
                }
            } // <--- to here your specific GFX-Card values to be used

            Method (DTGP, 5, NotSerialized)
            {
                If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
                {
                    If (LEqual (Arg1, One))
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Store (Buffer (One)
                                {
                                     0x03                                           
                                }, Arg4)
                            Return (One)
                        }

                        If (LEqual (Arg2, One))
                        {
                            Return (One)
                        }
                    }
                }

                Store (Buffer (One)
                    {
                         0x00                                           
                    }, Arg4)
                Return (Zero)
            }

            Name (LTRE, Zero)
            OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
            Field (PCIS, AnyAcc, NoLock, Preserve)
            {
                PVID,   16, 
                PDID,   16
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x69, 0x04))
            }
        }
    }
}

Share this post


Link to post
Share on other sites

I included this patch in Clover 4296 so you need no more patch DSDT or separate SSDT.

See explanation here    #87   

Could confirm it working.

Just tick "inject ATI = true" and "RadeonDeInit = true" makes my Sapphire RX480 NITRO work as when using selfmade SSDT for it. Thank you SLICE.

BUT: i still need my SSDT for working HDMI-audio. but if you only need to make your RADEON work, you could use this method.

Share this post


Link to post
Share on other sites

Poor guys!

For those who use Clover there is no more needs in this SSDT-AMD.aml.

tested on RX480, working great except HDMI audio. Can CLOVER fix this too in feature update? Or we need to use SSDT for audio over HDMI?

Share this post


Link to post
Share on other sites

I included this patch in Clover 4296 so you need no more patch DSDT or separate SSDT.

See explanation here    #87   

it's mean we don't need SSDT-AMD.aml anymore?

 

@Pabloesc

I'm using this patched for my HD 7790: 

48442038 787878 to 48442037 373930

but why still shown HD 8xxx ?

 

thanks for advanced

Share this post


Link to post
Share on other sites

I included this patch in Clover 4296 so you need no more patch DSDT or separate SSDT.

See explanation here    #87   

hi slice..thank you for your great work....this method is much easier than ssdt-amd.aml...but it can display the correct amd card model?? thanks

Share this post


Link to post
Share on other sites

it's mean we don't need SSDT-AMD.aml anymore?

 

@Pabloesc

I'm using this patched for my HD 7790: 

48442038 787878 to 48442037 373930

but why still shown HD 8xxx ?

 

thanks for advanced

 

hi slice..thank you for your great work....this method is much easier than ssdt-amd.aml...but it can display the correct amd card model?? thanks

 

This is only trick against wake into black screen.

But those  recommendations      [HOW TO] Make Radeon {Desktop or Mobility} be working by using Clover     are still on the march.

 

I will think about the model name. If you don't use Inject->ATI=YES then the model chosen automatically.

There is a trick to rename HD6xxx -> "your name" 

			<dict>
				<key>Comment</key>
				<string>ATI name HD xxxx - HD6450</string>
				<key>Disabled</key>
				<false/>
				<key>Find</key>
				<data>
				SEQgNnh4eA==
				</data>
				<key>MatchOS</key>
				<string>10.12,10.13</string>
				<key>Name</key>
				<string>AMD6000Controller</string>
				<key>Replace</key>
				<data>
				SEQgNjQ1MA==
				</data>
			</dict>

But it is not  easy to reproduce.

Share this post


Link to post
Share on other sites

tested on RX480, working great except HDMI audio. Can CLOVER fix this too in feature update? Or we need to use SSDT for audio over HDMI?

No problem to use SSDT with this new trick.

Share this post


Link to post
Share on other sites

Not working Amd 390X Asus Strix, tried al combination possible in Bios and Ati Inject Yes and No. 

 

- Connectors problem?

- If someone wants to cooperate and need a compiled Darwin or sth like that just tell me and I will add the file.

Share this post


Link to post
Share on other sites

Not working Amd 390X Asus Strix, tried al combination possible in Bios and Ati Inject Yes and No. 

 

- Connectors problem?

- If someone wants to cooperate and need a compiled Darwin or sth like that just tell me and I will add the file.

Does it have the 9300controllerkext ID 0x73001002? They dedicated a whole controllerkext but there is no matching ID in the accelerator kexts. If Apple assigned a whole controllerkext to that card only hopefully they are going to add a 5150kext or something just for that card very soon. We tried adding the ID to the 5000kexts, the 4150, 4250, 4000 etc. nothing takes.

@mork nice explanation, I'm just wondering how to inject a custom SSDT for GPU? what I did so far is copy and replace the code in DSDT.aml generated by clover and saved it into /EFI/acpi/patched...

 

but what to do with the SSDT-AMD.aml. How would you inject just this file? Does clover automatically scan the ACPI/patched folder or?

Slice added it to clover 4296 so it’s automatic if selected in options, before we were adding the SSDZt to Clover ACPI/Pathced folder.

Share this post


Link to post
Share on other sites

You asked about the injection method not how to compile it?

I thought there was an easier method without compiling it, my mistake I guess.. Anyways, deleted my above comments, since I dont want to spam this thread...

Share this post


Link to post
Share on other sites

@Gigamaxx

I don´t understand what are you saying.

If I have to force a kext, or you know the apple devs and you are waiting for an Id.

 

I think 390x is the same as 290x, and maybe is to add something into the ssdt.

Share this post


Link to post
Share on other sites

@Gigamaxx

I don´t understand what are you saying.

If I have to force a kext, or you know the apple devs and you are waiting for an Id.

 

I think 390x is the same as 290x, and maybe is to add something into the ssdt.

I tried to help someone with their Fury card with ID 0x73001002.    Is this the same card you have with HBM memory?    There is a AMD9300Controllerkext with only 0x73001002 ID  and no other IDs in that kext.   However no matter which accelerator kext we used ie.. AMD5000kext, AMD4250kext, AMD4150kext, AMD4000kext by adding an ID 0x73001002 to info.plist the card never worked.    I noticed that the AMD5000kext has Vega IDs and also there is one more Kext with the IDs in the info.plist.    So the Vega branch of graphics drivers contain 3 kexts with the Vega device IDs.    Most OSX graphics supported cards (AMD) use only 2 kexts.     If the Fury card 0x73001002 is to work with the AMD5000kext then you have to add the 0x73001002 to 2 kexts in the 5000 bundle.   The AMDX5000HWServiceskext.    You could try to add that ID to both the AMD5000kext and the HWServiceskext to see if the AMD9300Controllerkext will link with it.   The user I tried to assist may not have added the info.plist edits correctly so it may work.   It may be worth trying, but if you have that card ID you cannot currently use the card because the ID is missing from the existing kexts.  I think they will add a AMD5150kext or something similar like the did with Polaris cards in Sierra.    In Sierra we were able to use Polaris cards by adding these IDs in the various kexts.

post-1753549-0-35946400-1510419483_thumb.png

post-1753549-0-48335100-1510419698_thumb.png

Share this post


Link to post
Share on other sites

@Gigamaxx

 

Amd 390X/290X

 

DeviceID 0x67B11002

AMD8000Controller and AMDX4000

Hawaii

Baladi framebuffer

 

Sorry, I thought it was fury card.    Did you check for IDs in the 4000kext?

@Gigamaxx

 

Amd 390X/290X

 

DeviceID 0x67B11002

AMD8000Controller and AMDX4000

Hawaii

Baladi framebuffer?    Here are edited kexts, save extra originals, install these and then use kext wizard before reboot.

 

Try these edited kexts for 0x67B11002 use kext wizard before reboot.

AMD 0x67B11002 kexts.zip

Share this post


Link to post
Share on other sites

Sorry, I thought it was fury card.    Did you check for IDs in the 4000kext?

 

 

Try these edited kexts for 0x67B11002 use kext wizard before reboot.

 

@Gigamaxx

 

Amd 390X/290X

 

DeviceID 0x67B11002

AMD8000Controller and AMDX4000

Hawaii

Baladi framebuffer

 

 

Sorry, I thought it was fury card.    Did you check for IDs in the 4000kext?

 

 

Try these edited kexts for 0x67B11002 use kext wizard before reboot.

 

DeviceID 0x67B11002

 

That's the Device ID for R9 290 non X

Share this post


Link to post
Share on other sites

For the 290X proper naming patch it's 

AMD8000Controller

Find: 414d4420 52616465 6f6e2048 44203878 7878

replace: 41 4d 44 20 52 61 64 65 6f 6e 20 52 39 20 32 39 30 58

 

For 390x replace: 41 4d 44 20 52 61 64 65 6f 6e 20 52 39 20 33 39 30 58

 

if you want 490x for kicks well Replace : 41 4d 44 20 52 61 64 65 6f 6e 20 52 39 20 34 39 30 58

 

for newest 10.13.2 beta find:414d4420 52616465 6f6e2048 44203878 7878 

replace: 41 4d 44 20 52 61 64 65 6f 6e 20 52 39 20 32 39 30 58

Clover Patch Works Thanks 

Share this post


Link to post
Share on other sites

For the 290X proper naming patch it's 

AMD8000Controller

Find: 414d4420 52616465 6f6e2048 44203878 7878

replace: 41 4d 44 20 52 61 64 65 6f 6e 20 52 39 20 32 39 30 58

 

Clover Patch Works Thanks 

Did you test the SSDT? Does it work?

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

Announcements

  • Similar Content

    • By kokozaurs
      Hi all,
       
      I'm using ESXI 7.0b (did use 6.7 to try but with no difference).
       
      Right now on Catalina but I can't seem to try to get GPU (RX580) working properly.
       
      I pass it through to the VM(tried with windows before with no problems) and it appeared just as pci-device with no name.
       
      After that, I've applied whatevergreen + lilu kexts and it does properly recognize it under system report however that's all there is. It's listed at GFX0. See attached images.
       
      No hardware acceleration. Monitor also not turning on using either DP/HDMI. 
       
      Since it is being passed through to the VM, it seems that the problem is not on ESXi side but on macOS side. 
       
      Has anyone has been able to pass through an AMD GPU to ESXI VM? Can anyone suggest some pointers as to where I could find some solutions to this problem?
       
      Thanks! 
       
       



    • By b2550
      Currently my install is 100% working except that so far I have only been able to get one of my 1080p monitors working with a MiniDP to HDMI cable. I currently am getting a second MiniDP to HDMI cable but for now I am stuck with a DVI to HDMI cable.

      The monitor that is working is plugged in via the MiniDP to HDMI. The monitor that isn't working is using the DVI cable. However I also tried switching it to HDMI to HDMI which had the same result. The monitor wakes up but it's black. However for whatever reason, both monitors are still recognized in system preferences and hackintool.

      I know all my cables are good and work because I updated from an install of El Capitan (which I still have on it's original SSD just in case this install fails) as well as a Windows install. Both monitors worked fine on El Capitan for literally years. El Capitan is just too old now and I need to update to keep up with software updates.

      Problem reporting files should provide needed info about how I've configured this install. Build is in my signature.
      debug_22725.zip
    • By autantpourmoi
      I'm an happy user of a x99 built hackintosch since 6/7 years using it mainly for photoshop and fcpx ... Using new camera with better resolution and video in ProResRaw , my built start to struggle a bit 
      I'm thinking of making a new built and seeking for advices for this new built that I want evolutive and last at least as long as my previous built 
      I'll use a SSD M2 forth Generation so I need at least 2 to 3 SSD M2 PCI x4 slots
      then which proc to use , I was thinking about the AMD Ryzen 9 3900xt or the Intel I9 10900k ( don't have the money for AMD threadripper ) if you have better idea I'm really open to it as long as you explain it to me 
      then which chipset should I use:
      for Intel  , should I go to Z490 or X299 or W480
      For AMD , I think I have only the choice of X570
      I always used Gigabyte motherboard so it will be naturally my first choice but again I'm open to any suggestion
      I need at least usb 3,1 Gen 2 and TB3 is not necessary but an option and can be add later on with a PCI Card I think
      So I'll be pleased o read your opinion and the choices that you'll do for the purpose of this built 
      thanks in advance 
       
       
    • By asheenlevrai
      Hi
       
      I recently built my 1st ryzentosh.
      I also used Opencore (0.6.1) for the 1st time and followed the install guides on Dortania.
       
      Now I need to map my USB ports and apparently it's not achieved the same way on AMD platforms compared to what I was "used to" on Intel platforms.
       
      The guide on Dortania is a bit confusing to me since there is information that is not clearly labelled as "for Intel" or "for AMD" and I thus don't understand very well what I should and shouldn't do.
       
      Can anyone give me advice or point towards as comprehensive tutorial intended for AMD-based builds.
       
      Thank you very much in advance for your help.
       
      Best,
      -a-
×