FredWst Posted October 25, 2015 Share Posted October 25, 2015 Salut, Voici un patch DSDT pour OwnerShip Ehci et Xhci. Je l'ai testé sur un Dell Optiplex 7020 et Ozmosis. (oui oui OZ fonctionne sur ce type de machine ) J'ai aussi un procédure pour flasher avec les outils efi. si cela intéresse quelqu'un. Régions à ajouter au device ECH1 Device (EHC1) { Name (_ADR, 0x001D0000) // _ADR: Address OperationRegion (MADB, PCI_Config, 0x10, 0x04) Field (MADB, DWordAcc, NoLock, Preserve) { BADR, 32 } OperationRegion (MHCC, SystemMemory, Add (BADR, 0x08), 0x04) Field (MHCC, DWordAcc, NoLock, Preserve) { VAL, 32 } OperationRegion (MHC1, SystemMemory, Add (BADR, 0x20), 0x0C) Field (MHC1, DWordAcc, NoLock, Preserve) { UCMD, 32, USTS, 32, INTR, 32 } OperationRegion (ECAP, PCI_Config, And (ShiftRight (VAL, 0x08), 0xFF), 0x08) Field (ECAP, DWordAcc, NoLock, Preserve) { V00, 32, V04, 32 } Régions à ajouter au device ECH2 Device (EHC2) { Name (_ADR, 0x001A0000) // _ADR: Address OperationRegion (MADB, PCI_Config, 0x10, 0x04) Field (MADB, DWordAcc, NoLock, Preserve) { BADR, 32 } OperationRegion (MHCC, SystemMemory, Add (BADR, 0x08), 0x04) Field (MHCC, DWordAcc, NoLock, Preserve) { VAL, 32 } OperationRegion (MHC1, SystemMemory, Add (BADR, 0x20), 0x0C) Field (MHC1, DWordAcc, NoLock, Preserve) { UCMD, 32, USTS, 32, INTR, 32 } OperationRegion (ECAP, PCI_Config, And (ShiftRight (VAL, 0x08), 0xFF), 0x08) Field (ECAP, DWordAcc, NoLock, Preserve) { V00, 32, V04, 32 } Régions à ajouter au device XHC1 Device (XHC1) { Name (_ADR, 0x00140000) // _ADR: Address OperationRegion (MCMD, PCI_Config, 0x04, 0x02) Field (MCMD, WordAcc, NoLock, Preserve) { CMD, 16 } OperationRegion (MADB, PCI_Config, 0x10, 0x04) Field (MADB, DWordAcc, NoLock, Preserve) { BADR, 32 } OperationRegion (MHCC, SystemMemory, Subtract (BADR, 0x04), 0x1C) Field (MHCC, ByteAcc, NoLock, Preserve) { CARV, 32, HCS1, 32, HCS2, 32, HCS3, 32, HCCP, 32, DBOF, 32, RTSO, 32 } Fonction à ajouter au même niveau que PINI qui doit déjà exister. Method (FHCI, 2, Serialized) { Name (TMP, Zero) OperationRegion (ECAP, SystemMemory, Add (Arg0, Arg1), 0x08) Field (ECAP, DWordAcc, NoLock, Preserve) { V00, 32, V04, 32 } If (LEqual (And (V00, 0xFF), One)) { Store (V00, TMP) /* \FHCI.TMP_ */ Or (TMP, 0x01000000, TMP) /* \FHCI.TMP_ */ Store (TMP, V00) /* \FHCI.V00_ */ Store (V04, TMP) /* \FHCI.TMP_ */ And (TMP, 0x001F1FEE, TMP) /* \FHCI.TMP_ */ Or (TMP, 0xE0000000, TMP) /* \FHCI.TMP_ */ Store (TMP, V04) /* \FHCI.V04_ */ And (V00, 0xFEFEFFFF, V00) /* \FHCI.V00_ */ Return (Zero) } Return (Add (Arg1, And (ShiftRight (V00, 0x06), 0x03FC), Arg1)) } Code à ajouter dans PINI Method (PINI, 0, Serialized) { And (\_SB.PCI0.EHC1.V04, 0xFFFF0000, \_SB.PCI0.EHC1.V04) And (\_SB.PCI0.EHC1.UCMD, 0xFFFFFF00, \_SB.PCI0.EHC1.UCMD) Store (Zero, \_SB.PCI0.EHC1.INTR) Store (0x1000, \_SB.PCI0.EHC1.USTS) Store (One, \_SB.PCI0.EHC1.V00) Or (\_SB.PCI0.EHC1.V00, 0x01000000, \_SB.PCI0.EHC1.V00) And (\_SB.PCI0.EHC2.V04, 0xFFFF0000, \_SB.PCI0.EHC2.V04) And (\_SB.PCI0.EHC2.UCMD, 0xFFFFFF00, \_SB.PCI0.EHC2.UCMD) Store (Zero, \_SB.PCI0.EHC2.INTR) Store (0x1000, \_SB.PCI0.EHC2.USTS) Store (One, \_SB.PCI0.EHC2.V00) Or (\_SB.PCI0.EHC2.V00, 0x01000000, \_SB.PCI0.EHC2.V00) Name (ADDR, Zero) Name (EXTC, Zero) Store (Subtract (\_SB.PCI0.XHC1.BADR, 0x04), ADDR) /* \PINI.ADDR */ Store (And (ShiftRight (\_SB.PCI0.XHC1.HCCP, 0x0E), 0x0003FFFC), EXTC) /* \PINI.EXTC */ While (EXTC) { Store (FHCI (ADDR, EXTC), EXTC) /* \PINI.EXTC */ } } Fred 2 Link to comment Share on other sites More sharing options...
sebinouse Posted October 25, 2015 Share Posted October 25, 2015 Je n'ai jamais compris à quoi ces régions servaient ? Tu peux nous en dire plus sur le but de ce patch ? Et je suis bien tenté par Oz mais sur Intel NUC, j'ai commencé à rassembler les tutos et autres outils mais je ne suis pas contre un petit peu plus d'infos ! Link to comment Share on other sites More sharing options...
FredWst Posted October 25, 2015 Author Share Posted October 25, 2015 Salut, Les régions sont des zones qui permettent d'accéder aux registres du matériel pour (re) configurer celui-ci. (Les datasheets sont disponibles chez intel) Dans certain cas le bios garde l'accès aux ports USB ce qui peut bloquer le boot de OSX. J'avais ce problème avec mon Optiplex 7020 et donc pas de boot avec Osmoses. (Pas d'option dans le bios) Ce patch est l'équivalent à l'option de clover : (il est d'ailleurs basé sur ce code) <key>FixOwnership</key> <true/> Ozmosis fonctionne à 100% sur les cartes mère avec Bios Aptio Ami. C'est le cas de mon Dell Optiplex 7020. Les autres bios, c'est à tester. Fred. Link to comment Share on other sites More sharing options...
Recommended Posts