Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

UEFI with EmuVariable on my ThinkPad T460

 

Just a side note: the issue doesn't appear to be EFI driver-related. Tried to use one and the same EFI drivers (incl. this one) with all Clover build, mentioned by me in my previous post. Tested the different Clover builds, using the EFI drivers from r3974 and r3977 (though I suspect they are identical, haven't checked their checksums to be sure of that). The issue appears to be pure bootx64.efi (Clover) - related.

Link to comment
Share on other sites

@Slice, I can confirm that Clover 3977 compiled with EDK 23701 works fine on my rig, any revision of EDK above this fails to boot, just stuck at the aptiofix initialisation line. Diff between 23701 and 23702 is as follows, I hope it helps:

--- a/trunk/edk2/MdePkg/Library/BaseLib/String.c
+++ b/trunk/edk2/MdePkg/Library/BaseLib/String.c
@@ -1,7 +1,7 @@
 /** @file
   Unicode and ASCII string primitives.
 
-  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
   which accompanies this distribution.  The full text of the license may be found at
@@ -638,7 +638,7 @@
   If String has no pad spaces or valid decimal digits,
   then 0 is returned.
   If the number represented by String overflows according
-  to the range defined by UINTN, then ASSERT().
+  to the range defined by UINTN, then MAX_UINTN is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains
   more than PcdMaximumUnicodeStringLength Unicode characters, not including
@@ -656,40 +656,8 @@
   )
 {
   UINTN     Result;
-  
-  //
-  // ASSERT String is less long than PcdMaximumUnicodeStringLength.
-  // Length tests are performed inside StrLen().
-  //
-  ASSERT (StrSize (String) != 0);
-
-  //
-  // Ignore the pad spaces (space or tab)
-  //
-  while ((*String == L' ') || (*String == L'\t')) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == L'0') {
-    String++;
-  }
-
-  Result = 0;
-
-  while (InternalIsDecimalDigitCharacter (*String)) {
-    //
-    // If the number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= ((((UINTN) ~0) - (*String - L'0')) / 10));
-
-    Result = Result * 10 + (*String - L'0');
-    String++;
-  }
-  
+
+  StrDecimalToUintnS (String, (CHAR16 **) NULL, &Result);
   return Result;
 }
 
@@ -717,7 +685,7 @@
   If String has no pad spaces or valid decimal digits,
   then 0 is returned.
   If the number represented by String overflows according
-  to the range defined by UINT64, then ASSERT().
+  to the range defined by UINT64, then MAX_UINT64 is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains
   more than PcdMaximumUnicodeStringLength Unicode characters, not including
@@ -736,39 +704,7 @@
 {
   UINT64     Result;
   
-  //
-  // ASSERT String is less long than PcdMaximumUnicodeStringLength.
-  // Length tests are performed inside StrLen().
-  //
-  ASSERT (StrSize (String) != 0);
-
-  //
-  // Ignore the pad spaces (space or tab)
-  //
-  while ((*String == L' ') || (*String == L'\t')) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == L'0') {
-    String++;
-  }
-
-  Result = 0;
-
-  while (InternalIsDecimalDigitCharacter (*String)) {
-    //
-    // If the number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= DivU64x32 (((UINT64) ~0) - (*String - L'0') , 10));
-
-    Result = MultU64x32 (Result, 10) + (*String - L'0');
-    String++;
-  }
-  
+  StrDecimalToUint64S (String, (CHAR16 **) NULL, &Result);
   return Result;
 }
 
@@ -796,7 +732,7 @@
   If String has no leading pad spaces, leading zeros or valid hexadecimal digits,
   then zero is returned.
   If the number represented by String overflows according to the range defined by
-  UINTN, then ASSERT().
+  UINTN, then MAX_UINTN is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains more than
   PcdMaximumUnicodeStringLength Unicode characters, not including the Null-terminator,
@@ -815,49 +751,7 @@
 {
   UINTN     Result;
 
-  //
-  // ASSERT String is less long than PcdMaximumUnicodeStringLength.
-  // Length tests are performed inside StrLen().
-  //
-  ASSERT (StrSize (String) != 0);
-  
-  //
-  // Ignore the pad spaces (space or tab) 
-  //
-  while ((*String == L' ') || (*String == L'\t')) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == L'0') {
-    String++;
-  }
-
-  if (InternalCharToUpper (*String) == L'X') {
-    if (*(String - 1) != L'0') {
-      return 0;
-    }
-    //
-    // Skip the 'X'
-    //
-    String++;
-  }
-
-  Result = 0;
-  
-  while (InternalIsHexaDecimalDigitCharacter (*String)) {
-    //
-    // If the Hex Number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= ((((UINTN) ~0) - InternalHexCharToUintn (*String)) >> 4));
-
-    Result = (Result << 4) + InternalHexCharToUintn (*String);
-    String++;
-  }
-
+  StrHexToUintnS (String, (CHAR16 **) NULL, &Result);
   return Result;
 }
 
@@ -886,7 +780,7 @@
   If String has no leading pad spaces, leading zeros or valid hexadecimal digits,
   then zero is returned.
   If the number represented by String overflows according to the range defined by
-  UINT64, then ASSERT().
+  UINT64, then MAX_UINT64 is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains more than
   PcdMaximumUnicodeStringLength Unicode characters, not including the Null-terminator,
@@ -905,51 +799,7 @@
 {
   UINT64    Result;
 
-  //
-  // ASSERT String is less long than PcdMaximumUnicodeStringLength.
-  // Length tests are performed inside StrLen().
-  //
-  ASSERT (StrSize (String) != 0);
-  
-  //
-  // Ignore the pad spaces (space or tab) 
-  //
-  while ((*String == L' ') || (*String == L'\t')) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == L'0') {
-    String++;
-  }
-
-  if (InternalCharToUpper (*String) == L'X') {
-    ASSERT (*(String - 1) == L'0');
-    if (*(String - 1) != L'0') {
-      return 0;
-    }
-    //
-    // Skip the 'X'
-    //
-    String++;
-  }
-
-  Result = 0;
-  
-  while (InternalIsHexaDecimalDigitCharacter (*String)) {
-    //
-    // If the Hex Number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= RShiftU64 (((UINT64) ~0) - InternalHexCharToUintn (*String) , 4));
-
-    Result = LShiftU64 (Result, 4);
-    Result = Result + InternalHexCharToUintn (*String);
-    String++;
-  }
-
+  StrHexToUint64S (String, (CHAR16 **) NULL, &Result);
   return Result;
 }
 
@@ -1681,7 +1531,7 @@
   If String has only pad spaces, then 0 is returned.
   If String has no pad spaces or valid decimal digits, then 0 is returned.
   If the number represented by String overflows according to the range defined by
-  UINTN, then ASSERT().
+  UINTN, then MAX_UINTN is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero, and String contains more than
   PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
@@ -1700,38 +1550,7 @@
 {
   UINTN     Result;
   
-  //
-  // ASSERT Strings is less long than PcdMaximumAsciiStringLength
-  //
-  ASSERT (AsciiStrSize (String) != 0);
-
-  //
-  // Ignore the pad spaces (space or tab)
-  //
-  while ((*String == ' ') || (*String == '\t' )) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == '0') {
-    String++;
-  }
-
-  Result = 0;
-
-  while (InternalAsciiIsDecimalDigitCharacter (*String)) {
-    //
-    // If the number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= ((((UINTN) ~0) - (*String - L'0')) / 10));
-
-    Result = Result * 10 + (*String - '0');
-    String++;
-  }
-  
+  AsciiStrDecimalToUintnS (String, (CHAR8 **) NULL, &Result);
   return Result;
 }
 
@@ -1755,7 +1574,7 @@
   If String has only pad spaces, then 0 is returned.
   If String has no pad spaces or valid decimal digits, then 0 is returned.
   If the number represented by String overflows according to the range defined by
-  UINT64, then ASSERT().
+  UINT64, then MAX_UINT64 is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero, and String contains more than
   PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
@@ -1774,38 +1593,7 @@
 {
   UINT64     Result;
   
-  //
-  // ASSERT Strings is less long than PcdMaximumAsciiStringLength
-  //
-  ASSERT (AsciiStrSize (String) != 0);
-
-  //
-  // Ignore the pad spaces (space or tab)
-  //
-  while ((*String == ' ') || (*String == '\t' )) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == '0') {
-    String++;
-  }
-
-  Result = 0;
-
-  while (InternalAsciiIsDecimalDigitCharacter (*String)) {
-    //
-    // If the number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= DivU64x32 (((UINT64) ~0) - (*String - L'0') , 10));
-
-    Result = MultU64x32 (Result, 10) + (*String - '0');
-    String++;
-  }
-  
+  AsciiStrDecimalToUint64S (String, (CHAR8 **) NULL, &Result);
   return Result;
 }
 
@@ -1832,7 +1620,7 @@
   0 is returned.
 
   If the number represented by String overflows according to the range defined by UINTN,
-  then ASSERT().
+  then MAX_UINTN is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero,
   and String contains more than PcdMaximumAsciiStringLength ASCII characters not including
@@ -1851,49 +1639,7 @@
 {
   UINTN     Result;
 
-  //
-  // ASSERT Strings is less long than PcdMaximumAsciiStringLength
-  //
-  ASSERT (AsciiStrSize (String) != 0);
-  
-  //
-  // Ignore the pad spaces (space or tab) 
-  //
-  while ((*String == ' ') || (*String == '\t' )) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == '0') {
-    String++;
-  }
-
-  if (InternalBaseLibAsciiToUpper (*String) == 'X') {
-    ASSERT (*(String - 1) == '0');
-    if (*(String - 1) != '0') {
-      return 0;
-    }
-    //
-    // Skip the 'X'
-    //
-    String++;
-  }
-
-  Result = 0;
-  
-  while (InternalAsciiIsHexaDecimalDigitCharacter (*String)) {
-    //
-    // If the Hex Number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= ((((UINTN) ~0) - InternalHexCharToUintn (*String)) >> 4));
-
-    Result = (Result << 4) + InternalAsciiHexCharToUintn (*String);
-    String++;
-  }
-
+  AsciiStrHexToUintnS (String, (CHAR8 **) NULL, &Result);
   return Result;
 }
 
@@ -1921,7 +1667,7 @@
   0 is returned.
 
   If the number represented by String overflows according to the range defined by UINT64,
-  then ASSERT().
+  then MAX_UINT64 is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero,
   and String contains more than PcdMaximumAsciiStringLength ASCII characters not including
@@ -1940,53 +1686,7 @@
 {
   UINT64    Result;
 
-  //
-  // ASSERT Strings is less long than PcdMaximumAsciiStringLength
-  //
-  ASSERT (AsciiStrSize (String) != 0);
-  
-  //
-  // Ignore the pad spaces (space or tab) and leading Zeros
-  //
-  //
-  // Ignore the pad spaces (space or tab) 
-  //
-  while ((*String == ' ') || (*String == '\t' )) {
-    String++;
-  }
-
-  //
-  // Ignore leading Zeros after the spaces
-  //
-  while (*String == '0') {
-    String++;
-  }
-
-  if (InternalBaseLibAsciiToUpper (*String) == 'X') {
-    ASSERT (*(String - 1) == '0');
-    if (*(String - 1) != '0') {
-      return 0;
-    }
-    //
-    // Skip the 'X'
-    //
-    String++;
-  }
-
-  Result = 0;
-  
-  while (InternalAsciiIsHexaDecimalDigitCharacter (*String)) {
-    //
-    // If the Hex Number represented by String overflows according 
-    // to the range defined by UINTN, then ASSERT().
-    //
-    ASSERT (Result <= RShiftU64 (((UINT64) ~0) - InternalHexCharToUintn (*String) , 4));
-
-    Result = LShiftU64 (Result, 4);
-    Result = Result + InternalAsciiHexCharToUintn (*String);
-    String++;
-  }
-
+  AsciiStrHexToUint64S (String, (CHAR8 **) NULL, &Result);
   return Result;
 }
--- a/trunk/edk2/MdePkg/Include/Library/BaseLib.h
+++ b/trunk/edk2/MdePkg/Include/Library/BaseLib.h
@@ -1395,7 +1395,7 @@
   If String has no pad spaces or valid decimal digits,
   then 0 is returned.
   If the number represented by String overflows according
-  to the range defined by UINTN, then ASSERT().
+  to the range defined by UINTN, then MAX_UINTN is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains
   more than PcdMaximumUnicodeStringLength Unicode characters not including
@@ -1435,7 +1435,7 @@
   If String has no pad spaces or valid decimal digits,
   then 0 is returned.
   If the number represented by String overflows according
-  to the range defined by UINT64, then ASSERT().
+  to the range defined by UINT64, then MAX_UINT64 is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains
   more than PcdMaximumUnicodeStringLength Unicode characters not including
@@ -1477,7 +1477,7 @@
   If String has no leading pad spaces, leading zeros or valid hexadecimal digits,
   then zero is returned.
   If the number represented by String overflows according to the range defined by
-  UINTN, then ASSERT().
+  UINTN, then MAX_UINTN is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains more than
   PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator,
@@ -1519,7 +1519,7 @@
   If String has no leading pad spaces, leading zeros or valid hexadecimal digits,
   then zero is returned.
   If the number represented by String overflows according to the range defined by
-  UINT64, then ASSERT().
+  UINT64, then MAX_UINT64 is returned.
 
   If PcdMaximumUnicodeStringLength is not zero, and String contains more than
   PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator,
@@ -1997,7 +1997,7 @@
   If String has only pad spaces, then 0 is returned.
   If String has no pad spaces or valid decimal digits, then 0 is returned.
   If the number represented by String overflows according to the range defined by
-  UINTN, then ASSERT().
+  UINTN, then MAX_UINTN is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero, and String contains more than
   PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
@@ -2034,7 +2034,7 @@
   If String has only pad spaces, then 0 is returned.
   If String has no pad spaces or valid decimal digits, then 0 is returned.
   If the number represented by String overflows according to the range defined by
-  UINT64, then ASSERT().
+  UINT64, then MAX_UINT64 is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero, and String contains more than
   PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
@@ -2075,7 +2075,7 @@
   0 is returned.
 
   If the number represented by String overflows according to the range defined by UINTN,
-  then ASSERT().
+  then MAX_UINTN is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero,
   and String contains more than PcdMaximumAsciiStringLength ASCII characters not including
@@ -2116,7 +2116,7 @@
   0 is returned.
 
   If the number represented by String overflows according to the range defined by UINT64,
-  then ASSERT().
+  then MAX_UINT64 is returned.
   If String is NULL, then ASSERT().
   If PcdMaximumAsciiStringLength is not zero,
   and String contains more than PcdMaximumAsciiStringLength ASCII characters not including
  • Like 1
Link to comment
Share on other sites

Weird. I got a update of Micky's Build_Clover.command and he updated edk2 version to r23704. 23704 just works fine on my desktop... And seems nothing obvious changes with r23520.

Starting from r23705 commits made regarding "ACPI Table Rev Options.. ". Later some fix on previous commits by them ( > 23705) . Later again other changes, but for me 23704 is ok.

23703 should be almost the same (refinement of debug messages in 23704). 23702, 23701, 23700 all the job is around "safe string" functions, Asserts etc.  May be ..culprit is around there...

Edited by Micky1979
  • Like 1
Link to comment
Share on other sites

Starting from r23705 commits made regarding "ACPI Table Rev Options.. ". Later some fix on previous commits by them ( > 23705) . Later again other changes, but for me 23704 is ok.

23703 should be almost the same (refinement of debug messages in 23704). 23702, 23701, 23700 all the job is around "safe string" functions, Asserts etc.  May be ..culprit is around there...

Thanks for clarification. Typically I don't want to update edk2 unless necessary. TBH I don't care what's changed about edk2.  :P

  • Like 1
Link to comment
Share on other sites

Yes, it should be r23701. r23702 is the first problematic for most of us.

 

Sent from my MI 5s using Tapatalk

changes updating from 23701 to 23702:

 

 

MdePkg:

checking..available, continuing..

Updating '.':

U    Include/Library/BaseLib.h

U    Library/BaseLib/String.c

Updated to revision 23702.

 

(like already mentioned by dgsga)

 

 

Attached some builds of Clover r3977 with different edk2 revs, if someone-else is intrested to help and confirming that the problem starts with r23702:

Clover_r3977_edkII_23700.pkg.zip

Clover_r3977_edkII_23701.pkg.zip

Clover_r3977_edkII_23702.pkg.zip

 

What if we revert changes of 23702?

....testing

edk2 r23700 here works well (+/- 10 seconds to the login screen)

edk2 r23701 here works well (+/- 10 seconds to the login screen)

edk2 r23702 slow boot. Quickly show some dots and here hangs for 10/12 seconds, than boot as usual.

Edited by Micky1979
  • Like 1
Link to comment
Share on other sites

@micky1979 

 

i tested your builds and then build them myself.

 

same results as you

edk2 r23700: Ok 
edk2 r23701: Ok (same boot time as before)
edk2 r23702:  very slow boot. after OsxAptio2 - then long hang.

  • Like 2
Link to comment
Share on other sites

edk2 r23700 here works well (+/- 10 seconds to the login screen)

edk2 r23701 here works well (+/- 10 seconds to the login screen)

edk2 r23702 slow boot. Quickly show some dots and here hangs for 10/12 seconds, than boot as usual.

 

Same results for me on both my desktop (AMI Aptio) and my laptop (HPQ EFI) with one difference: with r23702 Clover stays at the dots forever on both machines

  • Like 1
Link to comment
Share on other sites

Capturing screen after OnExitBootServices has called (what come after '+++++' line) with KernelAndKextsPatch debug ON might help Slice to determine where the delay is. Can be bad reading kernelcache plist? AsciiStrHexToUint64 in 'GetPlistHexValue' has new return value? Safestring with "-D DISABLE_NEW_DEPRECATED_INTERFACES" defined in shell patch only.

 

I test Mickeys precompiled 23701 & 23702, they both boot just fine on my machine (uEFI BOOTX64 with HFSPlus, FSInject, OsxAptioFixDrv/OsxAptioFix2Drv drivers).

  • Like 1
Link to comment
Share on other sites

hello Slice 
 
this is mine


KernelAndKextPatches

AppleRTC

AsusAICPUPM

Debug

ForceKextsToLoad

\System\Library\Extensions\IOAudioFamily.kext

KernelCpu

KextsToPatch


Comment
Patch_Ig-paftform-id 4 LVDS
Find

BQMAAAIAAAAwAgAA

MatchOS
10.11.x,10.12.x
Name
AppleIntelFramebufferCapri
Replace

BQMAAAIAAAAwAAAA



Comment
Apple Logo 10.12
Find

AQAAdSU=

MatchOS
10.12.x
Name
IOGraphicsFamily
Replace

AQAA6yU=



Comment
Apple Logo
Find

QYjE6xE=

MatchOS
10.11.x
Name
IOGraphicsFamily
Replace

QYjE6zE=



Comment
Apple Logo Yose / El Capo
Find

AQAAdRc=

MatchOS
10.11.x
Name
IOGraphicsFamily
Replace

AQAA6xc=



Comment
BT4LE-Handoff-Hotspot Fix
Find

SIXAdFwPt0g=

MatchOS
10.11.x,10.12.x
Name
IOBluetoothFamily
Replace

Qb4PAAAA61k=



Comment
BCM94352 5Ghz Fix
Find

QYP8/3QsSA==

MatchOS
10.11.x
Name
AirPortBrcm4360
Replace

ZscGVVPrKw==



Comment
Yosemite Handoff
Find

SIX/dEdIiwc=

MatchOS
10.11.x,10.12.x
Name
IOBluetoothFamily
Replace

Qb4PAAAA60Q=



Comment
BCM94352 5Ghz Fix Sierra
Find

gflSqgAAdSk=

MatchOS
10.12.x
Name
AirPortBrcm4360
Replace

gflSqgAAZpA=



Number_of_KextsToPatch
8

 

 

thanks

Link to comment
Share on other sites

Who have a problem with 23702 please show your set of KernelAndKextPatches. Is there any empty patch?

 

I have no empty patches, but I have disabled ones (my config is based on a generic config for the whole ProBook 4x40s series by RehabMan):

 

 

 

<key>KextsToPatch</key>

<array>

<dict>

<key>Comment</key>

<string>change 15 port limit to 26 in XHCI kext (100-series)</string>

<key>Disabled</key>

<true/>

<key>Find</key>

<data>

g72M/v//EA==

</data>

<key>Name</key>

<string>AppleUSBXHCIPCI</string>

<key>Replace</key>

<data>

g72M/v//Gw==

</data>

</dict>

<dict>

<key>Comment</key>

<string>AppleHDA .xml.zl to .zml.zl</string>

<key>Disabled</key>

<true/>

<key>Find</key>

<data>

LnhtbC56bA==

</data>

<key>Name</key>

<string>AppleHDA</string>

<key>Replace</key>

<data>

LnptbC56bA==

</data>

</dict>

<dict>

<key>Comment</key>

<string>Enable TRIM for non-Apple SSDs</string>

<key>Disabled</key>

<false/>

<key>Find</key>

<data>

AEFQUExFIFNTRAA=

</data>

<key>Name</key>

<string>IOAHCIBlockStorage</string>

<key>Replace</key>

<data>

AAAAAAAAAAAAAAA=

</data>

</dict>

<dict>

<key>Comment</key>

<string>Boot graphics glitch, 10.12.dp1 (credit denskop)</string>

<key>Find</key>

<data>

AQAAdSU=

</data>

<key>Name</key>

<string>IOGraphicsFamily</string>

<key>Replace</key>

<data>

AQAA6yU=

</data>

</dict>

<dict>

<key>Comment</key>

<string>Boot graphics glitch, 10.10.x/10.11.x (credit lisai9093, cecekpawon)</string>

<key>Find</key>

<data>

AQAAdRc=

</data>

<key>Name</key>

<string>IOGraphicsFamily</string>

<key>Replace</key>

<data>

AQAA6xc=

</data>

</dict>

<dict>

<key>Comment</key>

<string>AirPortBrcm4360 whitelist patch (board-id), 10.12.dp1, credit RehabMan</string>

<key>Find</key>

<data>

MdtMO33YdRI=

</data>

<key>Name</key>

<string>AirPortBrcm4360</string>

<key>Replace</key>

<data>

Mdv/w5CQkJA=

</data>

</dict>

<dict>

<key>Comment</key>

<string>AirPortBrcm4360 whitelist patch (board-id), 10.11.x, credit RehabMan</string>

<key>Find</key>

<data>

MdtMO2XYdRI=

</data>

<key>Name</key>

<string>AirPortBrcm4360</string>

<key>Replace</key>

<data>

Mdv/w5CQkJA=

</data>

</dict>

<dict>

<key>Comment</key>

<string>AirPortBrcm4360 whitelist patch (board-id), 10.10.5, credit RehabMan</string>

<key>Find</key>

<data>

MdtJiwQkSDtF2HUS

</data>

<key>Name</key>

<string>AirPortBrcm4360</string>

<key>Replace</key>

<data>

Mdv/w5CQkJCQkJCQ

</data>

</dict>

<dict>

<key>Comment</key>

<string>10.9.5 5Ghz US FCC, svko</string>

<key>Find</key>

<data>

WFQAIBcnIAAA

</data>

<key>Name</key>

<string>AirPortBrcm4360</string>

<key>Replace</key>

<data>

WFQAG2cxlQAJ

</data>

</dict>

<dict>

<key>Comment</key>

<string>10.10.2+ 5Ghz US FCC, the-darkvoid</string>

<key>Find</key>

<data>

QYP8/3QsSA==

</data>

<key>Name</key>

<string>AirPortBrcm4360</string>

<key>Replace</key>

<data>

ZscGVVPrKw==

</data>

</dict>

<dict>

<key>Comment</key>

<string>10.10.2+ BT4LE-Handoff-Hotspot, Dokterdok</string>

<key>Find</key>

<data>

SIXAdFwPt0g=

</data>

<key>Name</key>

<string>IOBluetoothFamily</string>

<key>Replace</key>

<data>

Qb4PAAAA61k=

</data>

</dict>

<dict>

<key>Comment</key>

<string>10.11.dp1+ BT4LE-Handoff-Hotspot, credit RehabMan based on Dokterdok original</string>

<key>Find</key>

<data>

SIX/dEdIiwc=

</data>

<key>Name</key>

<string>IOBluetoothFamily</string>

<key>Replace</key>

<data>

Qb4PAAAA60Q=

</data>

</dict>

<dict>

<key>Comment</key>

<string>HDMI-audio HD3000, 0x00010000, port 0406</string>

<key>Disabled</key>

<false/>

<key>Find</key>

<data>

BAYAAAAEAAAJAAAA

</data>

<key>Name</key>

<string>AppleIntelSNBGraphicsFB</string>

<key>Replace</key>

<data>

BAYAAAAIAAAJAAAA

</data>

</dict>

<dict>

<key>Comment</key>

<string>HDMI-video, 64MB BIOS, HD4000 0x01660004 #1 of 2</string>

<key>Find</key>

<data>

BABmAQEDAQEAAAAC

</data>

<key>Name</key>

<string>AppleIntelFramebufferCapri</string>

<key>Replace</key>

<data>

BABmAQECBAIAAAAE

</data>

</dict>

<dict>

<key>Comment</key>

<string>HDMI-video, 64MB BIOS, HD4000 0x01660004 #2 of 2 (order dependency, port 0406 patch)</string>

<key>Find</key>

<data>

MAIAAAAAAAABAAAAQAAAAAAAAAABAAAAQAAAAAAAAAAB

AAAAQAAAAAAAAAAAAAAA

</data>

<key>Name</key>

<string>AppleIntelFramebufferCapri</string>

<key>Replace</key>

<data>

MAIAAAIFAAAABAAABwQAAAMEAAAABAAAgQAAAAQGAAAA

BAAAgQAAAAAAAAAAAgAR

</data>

</dict>

<dict>

<key>Comment</key>

<string>HDMI-audio HD4000 0x01660003/0004, port 0406 (order dependency HDMI-video 0x01660004 above)</string>

<key>Disabled</key>

<false/>

<key>Find</key>

<data>

BAYAAAAEAACBAAAA

</data>

<key>Name</key>

<string>AppleIntelFramebufferCapri</string>

<key>Replace</key>

<data>

BAYAAAAIAAAGAAAA

</data>

</dict>

<dict>

<key>Comment</key>

<string>IDT 76d9 #1 of 4</string>

<key>Disabled</key>

<true/>

<key>Find</key>

<data>

PYsZ1BE=

</data>

<key>Name</key>

<string>AppleHDA</string>

<key>Replace</key>

<data>

Pdl2HRE=

</data>

</dict>

<dict>

<key>Comment</key>

<string>IDT 76d9 #2 of 4</string>

<key>Disabled</key>

<true/>

<key>Find</key>

<data>

PYQZ1BE=

</data>

<key>Name</key>

<string>AppleHDA</string>

<key>Replace</key>

<data>

PQAAAAA=

</data>

</dict>

<dict>

<key>Comment</key>

<string>IDT 76d9 #3 of 4</string>

<key>Disabled</key>

<true/>

<key>Find</key>

<data>

PYMZ1BE=

</data>

<key>Name</key>

<string>AppleHDA</string>

<key>Replace</key>

<data>

PQAAAAA=

</data>

</dict>

<dict>

<key>Comment</key>

<string>IDT 76d9 #4 of 4</string>

<key>Disabled</key>

<true/>

<key>Find</key>

<data>

PYoZ1BE=

</data>

<key>Name</key>

<string>AppleHDA</string>

<key>Replace</key>

<data>

PQAAAAA=

</data>

</dict>

</array>

 

 

Link to comment
Share on other sites

Who have a problem with 23702 please show your set of KernelAndKextPatches. Is there any empty patch?

 

 

None disabled nor empty, though I do have a copy of KextsToPatch called #KextsToPatch where I moved some patches I can't use with this motherboard.

 

 

 

	<key>KernelAndKextPatches</key>
	<dict>
		<key>#KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>USB3 - Patch MSI or pin interrupts 2</string>
				<key>Find</key>
				<data>
				QcdHCAAAQAA=
				</data>
				<key>Name</key>
				<string>AppleUSBXHCI</string>
				<key>Replace</key>
				<data>
				QcdHCAAAAAA=
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB3 - Patch MSI or pin interrupts 1</string>
				<key>Find</key>
				<data>
				gUkIAABAAA==
				</data>
				<key>Name</key>
				<string>AppleUSBXHCI</string>
				<key>Replace</key>
				<data>
				gUkIAAAAAA==
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB3 - Disable Intel USB3.0 10.10</string>
				<key>Find</key>
				<data>
				9oDUAAAAgHU0
				</data>
				<key>Name</key>
				<string>AppleUSBXHCI</string>
				<key>Replace</key>
				<data>
				9oDUAAAAgOs0
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB3 - Disable XHCI 1.0 check 10.10</string>
				<key>Find</key>
				<data>
				QbzHAgDgPQABAAA=
				</data>
				<key>Name</key>
				<string>AppleUSBXHCI</string>
				<key>Replace</key>
				<data>
				QbzHAgDgPQAAAAA=
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB3 - Enable PCI power management</string>
				<key>Find</key>
				<data>
				dU1Ii7voAQAA
				</data>
				<key>Name</key>
				<string>AppleUSBXHCI</string>
				<key>Replace</key>
				<data>
				601Ii7voAQAA
				</data>
			</dict>
		</array>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<true/>
		<key>KernelPm</key>
		<false/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Fix Orange Disk</string>
				<key>Find</key>
				<data>
				RXh0ZXJuYWw=
				</data>
				<key>Name</key>
				<string>AppleAHCIPort</string>
				<key>Replace</key>
				<data>
				SW50ZXJuYWw=
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Wi-Fi Region to RoW</string>
				<key>Find</key>
				<data>
				D7eH3AQAAA==
				</data>
				<key>Name</key>
				<string>AirPortAtheros40</string>
				<key>Replace</key>
				<data>
				uGoAAACQkA==
				</data>
			</dict>
		</array>
	</dict>

 

 

Link to comment
Share on other sites

mine:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>MatchBuild</key>
		<string>158778 16B2555</string>
		<key>MatchOS</key>
		<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x</string>
		<key>Comment</key>
		<string>Enable TRIM for SSD</string>
		<key>Find</key>
		<data>AEFQUExFIFNTRAA=</data>
		<key>Name</key>
		<string>IOAHCIBlockStorage</string>
		<key>Replace</key>
		<data>AAAAAAAAAAAAAAA=</data>
	</dict>
	<dict>
		<key>MatchOS</key>
		<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x</string>
		<key>Comment</key>
		<string>remove usb limit</string>
		<key>Find</key>
		<data>g72M/v//EA==</data>
		<key>Name</key>
		<string>AppleUSBXHCIPCI</string>
		<key>Replace</key>
		<data>g72M/v//Fg==</data>
	</dict>
	<dict>
		<key>MatchOS</key>
		<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x</string>
		<key>Comment</key>
		<string>Zeroing 11d41983 codec</string>
		<key>Find</key>
		<data>gxnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>AAAAAA==</data>
	</dict>
	<dict>
		<key>MatchOS</key>
		<string>10.12.x</string>
		<key>Comment</key>
		<string>Zeroing 11d4198a codec (patched by AppleHDA Patcher.app)</string>
		<key>Find</key>
		<data>ihnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>AAAAAA==</data>
	</dict>
	<dict>
		<key>Comment</key>
		<string>Zeroing 11d41984 codec (patched by AppleHDA Patcher.app)</string>
		<key>Find</key>
		<data>hBnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>AAAAAA==</data>
	</dict>
	<dict>
		<key>Comment</key>
		<string>Patching 11d4198b with 111d76e0 codec (patched by AppleHDA Patcher.app)</string>
		<key>Find</key>
		<data>ixnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>4HYdEQ==</data>
	</dict>
</array>
</plist>

BTW commit r23702 introduce the "S" variant of some string functions and they later have done some corrections. the bug form me is in SafeString.c.

Maybe we should focus on strings that apparently contains some format string like '#', 'X' etc.?? (wont say something stupid.. but.. looks at Maniac10's config)

#	
Used with o, x or X specifiers the value is preceded with 0, 0x or 0X respectively for values different than zero. Used with e, E and f, it forces the written output to contain a decimal point even if no digits would follow. By default, if no digits follow, no decimal point is written. Used with g or G the result is the same as with e or E but trailing zeros are not removed.
@Maniac10 could you try w/o your unused #KextsToPatch?
Link to comment
Share on other sites

I've been having in the latest weeks the issue that my BIOS get reset after restarting (gigabyte), although I have AppleRTC set true. I'm booting legacy. Does anyone else have the same issue.

I'm now running the latest clover with the latest compatible edk2 version.

 

It is also possible that my mainboard dies...

Link to comment
Share on other sites

mine:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>MatchBuild</key>
		<string>158778 16B2555</string>
		<key>MatchOS</key>
		<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x</string>
		<key>Comment</key>
		<string>Enable TRIM for SSD</string>
		<key>Find</key>
		<data>AEFQUExFIFNTRAA=</data>
		<key>Name</key>
		<string>IOAHCIBlockStorage</string>
		<key>Replace</key>
		<data>AAAAAAAAAAAAAAA=</data>
	</dict>
	<dict>
		<key>MatchOS</key>
		<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x</string>
		<key>Comment</key>
		<string>remove usb limit</string>
		<key>Find</key>
		<data>g72M/v//EA==</data>
		<key>Name</key>
		<string>AppleUSBXHCIPCI</string>
		<key>Replace</key>
		<data>g72M/v//Fg==</data>
	</dict>
	<dict>
		<key>MatchOS</key>
		<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x</string>
		<key>Comment</key>
		<string>Zeroing 11d41983 codec</string>
		<key>Find</key>
		<data>gxnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>AAAAAA==</data>
	</dict>
	<dict>
		<key>MatchOS</key>
		<string>10.12.x</string>
		<key>Comment</key>
		<string>Zeroing 11d4198a codec (patched by AppleHDA Patcher.app)</string>
		<key>Find</key>
		<data>ihnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>AAAAAA==</data>
	</dict>
	<dict>
		<key>Comment</key>
		<string>Zeroing 11d41984 codec (patched by AppleHDA Patcher.app)</string>
		<key>Find</key>
		<data>hBnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>AAAAAA==</data>
	</dict>
	<dict>
		<key>Comment</key>
		<string>Patching 11d4198b with 111d76e0 codec (patched by AppleHDA Patcher.app)</string>
		<key>Find</key>
		<data>ixnUEQ==</data>
		<key>Name</key>
		<string>AppleHDA</string>
		<key>Replace</key>
		<data>4HYdEQ==</data>
	</dict>
</array>
</plist>

BTW commit r23702 introduce the "S" variant of some string functions and they later have done some corrections. the bug form me is in SafeString.c.

Maybe we should focus on strings that apparently contains some format string like '#', 'X' etc.?? (wont say something stupid.. but.. looks at Maniac10's config)

#	
Used with o, x or X specifiers the value is preceded with 0, 0x or 0X respectively for values different than zero. Used with e, E and f, it forces the written output to contain a decimal point even if no digits would follow. By default, if no digits follow, no decimal point is written. Used with g or G the result is the same as with e or E but trailing zeros are not removed.
@Maniac10 could you try w/o your unused #KextsToPatch?

 

 

Sure, I'll try it tonight.

 

EDIT: It didn't boot either.

Edited by Maniac10
Link to comment
Share on other sites

×
×
  • Create New...