Jump to content
Sign in to follow this  
franmglp

(Solucionado) Pendrives no son reconocidos en puertos USB 3.0

24 posts in this topic

Recommended Posts

Hola, tengo un problema con los puertos USB 3.0 de mi hackintosh. Resulta que funcionan correctamente exceptuando que no reconocen pendrives ya sean USB 2.0 o USB 3.0...

 

La motherboard es una Gigabyte Z77X-UD3H con dos puertos USB 3.0 con chipset Intel. OS X los reconoce "OOB" sin instalar ningún kext y puedo conectar mi disco externo USB 3.0, mouse USB 1.0, receptor de teclado USB 1.0, etc. Lo que no reconoce son los pendrives, tengo uno 2.0 y uno 3.0. Mi cámara digital por USB 2.0 tampoco la reconoce. Los dos pendrives y la cámara funcionan bien en los puertos USB 2.0 frontales.

 

Que puede ser?

 

Saludos.

Share this post


Link to post
Share on other sites
Advertisement

Si conecto el pendrive y renicio la máquina lo reconoce. Si prendo con el pendrive conectado también. Si expulso el pendrive y lo vuelvo a conectar no lo reconoce...

 

EDITO: esto pasa con los pendrives 3.0, los 2.0 no los reconoce aunque reinicie la máquina o la prenda con el pen conectado.

Share this post


Link to post
Share on other sites

Prueba encendiendo los parches DSDT de Clover para USB y DTGP y en Devices>USB apaga Inject y ClockId y agrega HighCurrency. En todo tu DSDT e ioreg no veo ningun parche, y si bien no son indispensables, ayudan a solucionar múltiples problemas. Lee las descripciones de cada uno en la wiki y activa los que creas necesarios.

Share this post


Link to post
Share on other sites

OK, siempre tuve el hack funcionando sin DSDT porque pensaba que no era necesario en placas UEFI pero ahora voy a probar esos parches.

 

Para ir probando esos parches hay alguna manera de que Clover aplique esos parches sin tener un archivo DSDT.aml o tengo sí o sí que generar uno?

Share this post


Link to post
Share on other sites

Ya te conteste lo del DSDT en el otro post. Y chequea los logs del sistema cuando conectes el pendrive a ver si aparece algún error y donde apunta. Subí un boot.log e ioreg si el problema persiste.

Share this post


Link to post
Share on other sites

Hola. Pudieras tener conflictos con las IRQs, ya que ese parche en particular NO es un adorno, es importante en OS X, yo diría INDISPENSABLE. Saludos.

 

P.D. Según el mismo Slice, Clover NO parchea las IRQs automáticamente (post #19): http://www.insanelymac.com/forum/topic/297921-speedstep-doesnt-work-intel-penryn-t7300-solved/?p=2021408

 

Edito y corrijo mi malentendido: Clover SI es capaz de parchear las IRQs al vuelo, por separado cada una: HPET, RTC, IPIC, TIMR. Gracias Maniac10 por la info.

Share this post


Link to post
Share on other sites

Para entender mejor que hace cada parche DSDT de Clover podes leer su descripción en ingles en "Fixing DSDT". Algún día haré tiempo para traducir esa sección, pero por ahora las descripciones cortas en ACPI-Fixes tendrán que ser suficiente.

Share this post


Link to post
Share on other sites

Probé con FixUSB_1000, FIX_RTC_20000, FIX_TMR_40000 y sigue sin funcionar. Subo un boot.log arrancando con el pendrive conectado?

Share this post


Link to post
Share on other sites

Mejor hace un DarwinDumper con el pendrive funcionando o otro cuando no funciona. Y mantené activos los parches DSDT, quiero ver si se aplican correctamente.

 

EDITO: activaste también el parche FixHPET_0010AddDTGP_0001 NewWay_80000000? Estos últimos son necesarios para que el resto funcione.

Edited by Maniac10

Share this post


Link to post
Share on other sites

Será simplemente un problema de los drivers nativos de OS X? Acabo de instalar GenericUSBXHCI.kext y parecen funcionar bien todos los puertos, incluso los que usan chipset VIA que nunca los había hecho funcionar. Me compré un pendrive USB 3.0 para usarlo como instalador de OS X ya que supongo que la instalación es más rápida. Conectando el pendrive en el puerto Intel sin usar el GenericUSBXHCI no voy a tener problema para instalar OS X ya que si prendo la máquina con el pendrive conectado lo detecta, no? Y en la instalación si tengo el GenericUSBXHCI.kext en la carpeta de kexts de Clover me tendría que detectar los puertos VIA durante la instalación?

Share this post


Link to post
Share on other sites

Por lo que entiendo el pen debería andar bien en la controladora Intel, a menos que Clover tenga problemas para detectar los puertos. Si no se muestra o no se puede iniciar subí un boot.log con el pen conectado para ver que detalla en el registro de Clover.

 

Si inyectas el kext GenericUSBXHCI los puertos USB de la controladora VIA deberían estar disponibles durante la instalación. Yo he usado los míos de la controladora Etron desde el entorno de recuperación (Recovery HD) pero no con el kext generic sino con los parches binarios inyectados con Clover y los kexts originales.

 

Acá te dejo un link donde se listan los parches binarios que necesitas en KextsToPatch para usar los kexts originales con controladoras de terceros. 

 

http://www.insanelymac.com/forum/files/file/150-patched-appleusbxhci/

Share this post


Link to post
Share on other sites

Subo un boot.log con el pen conectado y usando solamente el IOUSBFamily original?

 

Si aplico esos parches tendrían que funcionar mis puertos VIA con el kext orginal de Apple. Y en este caso los puertos Intel siguen funcionando o se bloquean?

 

EDITO: Apliqué esos parches y este es el resultado:

 

Con los parches binarios: Funcionan los 4 puertos VIA y detectan mi pendrive 3.0 como 2.0, mi disco 3.0 lo detectan como 3.0. Funcionan los 2 puertos Intel pero no detectan mi pendrive y sí mi disco externo 3.0, por lo que estos parches hacen funcionar los puertos VIA pero no modifican el funcionamiento de los Intel.

 

Con GenericUSBXHCI.kext: Funcionan los 4 puertos VIA de la misma manera que con los parches binarios (detectan el pendrive como 2.0 y mi disco externo como 3.0). Los puertos Intel funcionan a medias; detectan el pendrive pero casi siempre como 2.0 y a veces como 3.0, hasta lo detectaron como USB 1.0 en una ocasión.

Share this post


Link to post
Share on other sites

Que resultados tan extraños, entendería si los puertos VIA fuesen los problemáticos pero los Intel deberían funcionar perfectamente con los kexts originales. No será un problema de los puertos mismos o del pendrive? Funcionan bien en windows? Has actualizado la bios últimamente?

 

Sube todos los logs que puedas, cuando funciona y cuando no, con los kexts originales y con el generic.

Share this post


Link to post
Share on other sites

Bueno, voy subiendo los logs y contando lo que pasa para no olvidarme...

 

Drivers originales y pendrive conectado antes de prender la máquina:

boot.log.zip DarwinDumper_2.9.6_AMI_X64_2821_Mav_franco.zip

 

Usando los kexts de Apple y sin usar ningún parche en Clover el pendrive es reconocido como USB 3.0 si lo conecto antes de prender la máquina y es reconocido solamente cuando se le da la gana si lo conecto después de prender la máquina o después de expulsarlo cuando lo conecto antes de prenderla. Solamente cuando se le da la gana porque de 20 intentos pueden funcionar 8 con suerte y lo reconoce casi siempre como USB 3.0 pero a veces como 2.0 y hasta llegó a reconocerlo como 1.0 (12 Mb/s).

 

Drivers originales y 1 pendrive 3.0 + 1 pendrive 2.0 conectados antes de prender la máquina:

boot.log.zip DarwinDumper_2.9.6_AMI_X64_2821_Mav_franco.zip

 

Lo mismo que antes pero no reconoce de ninguna manera el pendrive 2.0.

 

post-1042363-0-98772700-1408655866_thumb.png

Acá están los 2 puertos USB 2.0 frontales de mi gabinete funcionando correctamente

y los 2 puertos USB 3.0 de la placa madre también exceptuando el problema

con el pendrive (en esta captura está funcionando).

Share this post


Link to post
Share on other sites

Solo para descartar temas extra - OSX (de hardware, incompatibilidad, drivers, defectos, etc) te pregunto si en windows no tienes ningún problema relacionado? Capaz y es un problema de alimentación de energía, que la fuente sea insuficiente por ejemplo, que también se verían reflejados en otro S.O. Saludos.

Share this post


Link to post
Share on other sites

En el DarwinDumper fijate en el kernel log y vas a encontrar este error al arranque:

Aug 21 17:52:15 localhost kernel[0] <Debug>: USBF: 1.194 The IOUSBFamily did not receive enough extra current for the SuperSpeed device (DataTraveler 3.0) at 0x15400000, asked for 400mA but got 0 mA

Todo indica que el puerto no alimenta bien el dispositivo. En estos tests tenés activos todos los parches de USB de Clover? Si están, parece que no se aplican en el dispositivo XHC, solo en los EHC. Quizá es un problema de Clover nomas, pero podemos probar agregar las claves necesarias con AddProperties->USB pero tampoco estoy seguro que funcione con el dispositivo XHC.

 

Creo que lo mejor a esta altura es pedir al equipo de Clover que extiendan el parche HighCurrent a los XHC o que crees tu propio DSDT y agregar estos parches manualmente. Es probable que el kext "generic" ya incluya esto, lo que podría explicar las diferencias entre ambos kexts.

 

 

EDITO: parece que Clover no inyecta información de energía en los puertos XHCI:

    case PCI_IF_XHCI:
      devprop_add_value(device, "device_type", (UINT8*)"XHCI", 4);
      break;

A diferencia de los EHCI:

    case PCI_IF_EHCI:
      devprop_add_value(device, "device_type", (UINT8*)"EHCI", 4);
      if (gSettings.HighCurrent) {
        devprop_add_value(device, "AAPL,current-available", (UINT8*)&current_available_high, 2);
        devprop_add_value(device, "AAPL,current-extra",     (UINT8*)&current_extra_high, 2);
      } else {
        devprop_add_value(device, "AAPL,current-available", (UINT8*)&current_available, 2);
        devprop_add_value(device, "AAPL,current-extra",     (UINT8*)&current_extra, 2);
      }
      devprop_add_value(device, "AAPL,current-in-sleep",  (UINT8*)&current_in_sleep, 2);
      break;

Voy a pedirle a los devs de Clover que extiendan los parches de energía a dispositivos XHCI, mientras veo si puedo crear una versión con el cambio para que pruebes y la subo mas tarde.

 

EDITO 2: acá te dejo un config.plist con las claves AAPL,… para el dispositivo XHC. Si no funciona podes cambiar en el config todo lo llamado XCI a USB.

 

config.plist.zip

Share this post


Link to post
Share on other sites

Los parches de Clover están agregando al DSDT un dispositivo XHC1 con el device-id de los puertos VIA (0x3432) y un Method _DSM al dispositivo XHC con el device-id de los puertos Intel (0x1E31):

                Device (XHC1)
                {
                    Name (_ADR, Zero)
                    Name (_PRW, Package (0x02)
                    {
                        0x09, 
                        0x04
                    })
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x11)
                            {
                                "device-id", 
                                Buffer (0x04)
                                {
                                    0x32, 0x34, 0x00, 0x00
                                }, 

                                "built-in", 
                                Buffer (0x01)
                                {
                                    0x00
                                }, 

                                "device_type", 
                                Buffer (0x05)
                                {
                                    "XHCI"
                                }, 

                                "AAPL,current-available", 
                                0x0834, 
                                "AAPL,current-extra", 
                                0x0A8C, 
                                "AAPL,current-in-sleep", 
                                0x0A8C, 
                                "AAPL,max-port-current-in-sleep", 
                                0x0834, 
                                "AAPL,device-internal", 
                                Zero, 
                                Buffer (0x01)
                                {
                                    0x00
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3)
                        RefOf (Local0)
                        Return (Local0)
                    }
                }
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x11)
                    {
                        "device-id", 
                        Buffer (0x04)
                        {
                            0x31, 0x1E, 0x00, 0x00
                        }, 

                        "built-in", 
                        Buffer (0x01)
                        {
                            0x00
                        }, 

                        "device_type", 
                        Buffer (0x05)
                        {
                            "XHCI"
                        }, 

                        "AAPL,current-available", 
                        0x0834, 
                        "AAPL,current-extra", 
                        0x0A8C, 
                        "AAPL,current-in-sleep", 
                        0x0A8C, 
                        "AAPL,max-port-current-in-sleep", 
                        0x0834, 
                        "AAPL,device-internal", 
                        Zero, 
                        Buffer (0x01)
                        {
                            0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3)
                RefOf (Local0)
                Return (Local0)
            }
        }

A pesar de esto sigue apareciendo el mensaje "The IOUSBFamily did not receive enough extra current for the SuperSpeed device" en la Consola.

Share this post


Link to post
Share on other sites

Dice que NO recibe los mA que requiere, es decir alimentación. Has descartado desde windows antes de seguir insistiendo y especulando con OS X?

Share this post


Link to post
Share on other sites

Comparando mi IOReg con el de una Macmini6,2 encontre estas diferencias:
 
El IOReg original de una Macmini6,2 tiene estos dispositivos:
 
EHC1@1D y EHC2@1A para los puertos USB 2.0.
 
XHC1@14 para los puertos USB 3.0.
 
En estos dispositivos están estas "properties":
 
AAPL,current-available
AAPL,current-extra
AAPL,current-extra-in-sleep
AAPL,device-internal
AAPL,max-port-current-in-sleep
 
En el caso de mi IOReg los dispositivos USB 2.0 concuerdan (EHC1@1D y EHC2@1A) pero no tienen las properties. El dispositivo USB 3.0 en cambio lo tengo como XHC@14 en lugar de XHC1@14 y tampoco tiene esas properties.
 
Me gustaría arreglar esto para ver si soluciono el problema.
 
Tendría que agregar las properties a los dispositivos EHC1@1D y EHC2@1A, renombrar el XHC@14 a XHC1@14 y agregar las properties también acá.
 
Ahora voy a ver si me sale algo por DSDT. Voy a dejar los parches de Clover de lado para tener más control de lo que hago.
 
Me dan una mano?
 
EDITO:
 
Este es mi dispositivo XHC en mi DSDT. Que alguien me guíe. Lo puedo renombrar a XHC1 y aplicar todas las properties AAPL,xxx?
 

        Device (XHC)
        {
            Name (_ADR, 0x00140000)
            OperationRegion (XPRT, PCI_Config, 0xD0, 0x10)
            Field (XPRT, DWordAcc, NoLock, Preserve)
            {
                PR2,    32, 
                PR2M,   32, 
                PR3,    32, 
                PR3M,   32
            }

            Method (CUID, 1, Serialized)
            {
                If (LEqual (Arg0, Buffer (0x10)
                        {
                            /* 0000 */    0xA9, 0x12, 0x95, 0x7C, 0x05, 0x17, 0xB4, 0x4C, 
                            /* 0008 */    0xAF, 0x7D, 0x50, 0x6A, 0x24, 0x23, 0xAB, 0x71
                        }))
                {
                    Return (One)
                }

                Return (Zero)
            }

            Method (POSC, 3, Serialized)
            {
                CreateDWordField (Arg2, Zero, CDW1)
                If (LNotEqual (Arg1, One))
                {
                    Or (CDW1, 0x08, CDW1)
                }

                If (LEqual (XHCI, Zero))
                {
                    Or (CDW1, 0x02, CDW1)
                }

                If (LNot (And (CDW1, One)))
                {
                    XSEL ()
                }

                Return (Arg2)
            }

            Method (XSEL, 0, Serialized)
            {
                If (LOr (LEqual (XHCI, 0x02), LEqual (XHCI, 0x03)))
                {
                    Store (Zero, Local0)
                    And (PR3, 0xFFFFFFF0, Local0)
                    Or (Local0, XHPM, Local0)
                    And (Local0, PR3M, PR3)
                    Store (Zero, Local0)
                    And (PR2, 0xFFFFFFF0, Local0)
                    Or (Local0, XHPM, Local0)
                    And (Local0, PR2M, PR2)
                    Store (One, XUSB)
                }
            }

            Method (_S3D, 0, NotSerialized)
            {
                Return (0x02)
            }

            Method (_S4D, 0, NotSerialized)
            {
                Return (0x02)
            }

            Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (HSP1)
                {
                    Name (_ADR, One)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR2, One)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR2, One)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (HSP2)
                {
                    Name (_ADR, 0x02)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR2, 0x02)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR2, 0x02)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (HSP3)
                {
                    Name (_ADR, 0x03)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR2, 0x04)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR2, 0x04)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (HSP4)
                {
                    Name (_ADR, 0x04)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR2, 0x08)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR2, 0x08)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (SSP1)
                {
                    Name (_ADR, 0x05)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR3, One)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR3, One)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (SSP2)
                {
                    Name (_ADR, 0x06)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR3, 0x02)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR3, 0x02)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (SSP3)
                {
                    Name (_ADR, 0x07)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR3, 0x04)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR3, 0x04)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }

                Device (SSP4)
                {
                    Name (_ADR, 0x08)
                    Method (_UPC, 0, Serialized)
                    {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF, 
                            0x03, 
                            Zero, 
                            Zero
                        })
                        If (LNot (And (PR3, 0x08)))
                        {
                            Store (Zero, Index (UPCP, Zero))
                        }

                        Return (UPCP)
                    }

                    Method (_PLD, 0, Serialized)
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                /* 0008 */    0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
                            }
                        })
                        CreateBitField (DerefOf (Index (PLDP, Zero)), 0x40, VIS)
                        If (LNot (And (PR3, 0x08)))
                        {
                            And (VIS, Zero, VIS)
                        }

                        Return (PLDP)
                    }
                }
            }

            Method (_PRW, 0, NotSerialized)
            {
                Return (GPRW (0x0D, 0x04))
            }
        }

Share this post


Link to post
Share on other sites

Definitivamente tenía que ver con esto último. El parcheo de DSDT es más complejo que renombrar "XHC" a "XHC1" e inyectar las properties pero ahora tengo mis dos pendrives funcionando, el 2.0 y el 3.0.

 

Buscando encontré una guía que lo explica bastante bien: http://www.insanelymac.com/forum/topic/287901-how-to-get-intel-7-series-usb-30-fully-working-step-by-step-guide/

 

Muchísimas gracias Maniac10 y juanerson por la ayuda.

Share this post


Link to post
Share on other sites

Me alegro que lo hayas resuelto. Si puedes fijate en el repositorio DSDT de PJALM que tiene un parche para tu motherboard, como para que compares que editar.

 

Y para que sepas nomas, Slice va a agregar las propiedades de energia en los puertos XHC en el proximo commit, asi que pronto sera suficiente con encender HighCurrent para que todo funcione como debe.

 

EDITO: ya esta hecho el cambio en el código fuente en la versión 2835, solo hace falta compilarlo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×