Contribute
Register

Asus VivoBook S400CA - USB3 & RAM

Status
Not open for further replies.
Perhaps you have the wrong version of GenericUSBXHCI.kext?

I downloaded the only one there was from your GenericUSBXHCI github repository. "GenericUSBXHCI-1016". Is there a updated version I'm not aware of? :lol:

Cheers!
 
I downloaded the only one there was from your GenericUSBXHCI github repository. "GenericUSBXHCI-1016". Is there a updated version I'm not aware of? :lol:

Cheers!

That is the latest (and probably last) version...
 
Hmm...alright then. Any other ideas to why it's crashing on shutdown? :think:

No ideas without seeing the panic.

Note: GenericUSBXHCI.kext is not recommended on Yosemite. Use AppleUSBXHCI.kext if possible.
 
No ideas without seeing the panic.

Note: GenericUSBXHCI.kext is not recommended on Yosemite. Use AppleUSBXHCI.kext if possible.

Here's the panic:
View attachment KP-GenericUSBXHCi.tiff
After examining it more carefully, I think it's being caused by my USB3-ethernet driver that I've installed, since my RJ45 port on my laptop is broken.

AFAIK, Using AppleUSBXHCI.kext means that I have to DSDT patches and stuff, but it will have native support...

Has there been any updated resources on how to do this (accurately, I've attempted this before and the resources I found on it were very vague / not reliable)?

Cheers!
 
Here's the panic:
View attachment 126512
After examining it more carefully, I think it's being caused by my USB3-ethernet driver that I've installed, since my RJ45 port on my laptop is broken.

Yes... looks like something specific to the USB device specific drivers you've installed.

AFAIK, Using AppleUSBXHCI.kext means that I have to DSDT patches and stuff, but it will have native support...

Has there been any updated resources on how to do this (accurately, I've attempted this before and the resources I found on it were very vague / not reliable)?

It is complex and machine specific. Detailed understanding is hard to come by.
 
Yes... looks like something specific to the USB device specific drivers you've installed.



It is complex and machine specific. Detailed understanding is hard to come by.

Then we may be the ones that make it easier to understand... :D

Anyway, see here: Need Help Multiplexing USB3 and USB2 Controllers (For Intel 7-Series Native USB3 Support)

In addition to that, my EHC1 "PRT's" don't have any _DSM methods at all, and I've attempted backtracking to the methods that are called in each "PRT":

Code:
                            Device (PRT1)
                            {
                                Name (_ADR, One)  // _ADR: Address
                                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                                {
                                    OUPC (Zero)
                                    Return (BUPC)
                                }


                                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                                {
                                    OPLD (Zero)
                                    Return (BPLD)
                                }
                            }


                            Device (PRT2)
                            {
                                Name (_ADR, 0x02)  // _ADR: Address
                                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                                {
                                    OUPC (One)
                                    Return (BUPC)
                                }


                                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                                {
                                    OPLD (One)
                                    Return (BPLD)
                                }


                            }

If you examine the code, in each PRT method (I only put 2 but it's for the entire device), OPLD & OUPC increment by one, so it may be storing the data somewhere. Look here:

Code:
        Method (OPLD, 1, Serialized)
        {
            Store (DerefOf (Index (VISB, Arg0)), Local0)
            Store (DerefOf (Index (BPLD, 0x08)), Local1)
            And (Local1, 0xFE, Local1)
            Or (Local1, Local0, Local1)
            Store (Local1, Index (BPLD, 0x08))
            Store (DerefOf (Index (SHPB, Arg0)), Local0)
            Store (DerefOf (Index (BPLD, 0x09)), Local1)
            And (Local1, 0xC3, Local1)
            Or (Local1, Local0, Local1)
            Store (Local1, Index (BPLD, 0x09))
        }

Code:
        Method (OUPC, 1, Serialized)
        {
            Store (DerefOf (Index (CNTB, Arg0)), Local0)
            Store (Local0, Index (BUPC, Zero))
        }

These methods refer to certain buffers (pretty sure), which are here:

Code:
        Name (RBUF, Buffer (0x20) {})
        Name (CNTB, Buffer (0x0E)
        {
            /* 0000 */   0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
            /* 0008 */   0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00
        })
        Name (VISB, Buffer (0x0E)
        {
            /* 0000 */   0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
            /* 0008 */   0x00, 0x00, 0x00, 0x01, 0x00, 0x00
        })
        Name (SHPB, Buffer (0x0E)
        {
            /* 0000 */   0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
            /* 0008 */   0x07, 0x07, 0x07, 0x07, 0x07, 0x07
        })
        Name (BUPC, Package (0x04)
        {
            0xFF, 
            Zero, 
            Zero, 
            Zero
        })
        Name (BPLD, Buffer (0x10)
        {
             0x81, 0x00, 0x31, 0x00
        })

Here's my DSDT: View attachment DSDT.aml

Now those snippets of code may go nowhere, but it's the only methods that are called in the PRT methods, which are required to be muxed w/ the XHCI controller. Hopefully we'll get somewhere w/ this... :think:
 
Then we may be the ones that make it easier to understand... :D

You're probably going to have to read a bit of the ACPI spec such that you understand what the _UPC/_PLD methods are all about. But the multiplexing stuff is something Apple-specific and so you won't find specs on it. Much of what has been learned is learned by looking at Apple's ACPI code for real Macs.
 
You're probably going to have to read a bit of the ACPI spec such that you understand what the _UPC/_PLD methods are all about. But the multiplexing stuff is something Apple-specific and so you won't find specs on it. Much of what has been learned is learned by looking at Apple's ACPI code for real Macs.

Coincidentally, thats what I've been doing for the past hour or so... :lol:. I may have to look @ a genuine MBA5,2 DSDT / SSDT and compare, see if I can "learn" anything new, since I've been going in circles for a day or so and it's driving me mad... :think:
 
Coincidentally, thats what I've been doing for the past hour or so... :lol:. I may have to look @ a genuine MBA5,2 DSDT / SSDT and compare, see if I can "learn" anything new, since I've been going in circles for a day or so and it's driving me mad... :think:

Look also for Mieze's original explanation. Not sure if it can still be found, but...
 
Status
Not open for further replies.
Back
Top