119119#define PCAT_RTC_ADDRESS_REGISTER 0x70
120120#define PCAT_RTC_DATA_REGISTER 0x71
121121
122+ #ifdef JIEF_DEBUG
123+ /*
124+ * Define READ_FROM_OC to have mOpenCoreConfiguration initialized from config-oc.plist
125+ * The boot should work.
126+ * Next, comment out the next lines one by one. Once the boot failed, we got the section that
127+ * holds the setting that makes a difference.
128+ */
129+ // #define USE_OC_SECTION_Acpi
130+ // #define USE_OC_SECTION_Booter
131+ // #define USE_OC_SECTION_DeviceProperties
132+ // #define USE_OC_SECTION_Kernel
133+ // #define USE_OC_SECTION_Misc
134+ // #define USE_OC_SECTION_Nvram
135+ // #define USE_OC_SECTION_PlatformInfo
136+ // #define USE_OC_SECTION_Uefi
137+ #endif
122138
123139// variables
124140
@@ -291,13 +307,14 @@ OcMain (
291307 EFI_STATUS Status;
292308// OC_PRIVILEGE_CONTEXT *Privilege;
293309
294- DEBUG (( DEBUG_INFO , " OC: OcMiscEarlyInit...\n " ) );
310+ DBG ( " OC: OcMiscEarlyInit...\n " );
295311 Status = OcMiscEarlyInit (
296312 Storage,
297313 &mOpenCoreConfiguration ,
298314 mOpenCoreVaultKey
299315 );
300316
317+ DBG (" OC: OcMiscEarlyInit=%s\n " , efiStrError (Status));
301318 if (EFI_ERROR (Status)) {
302319 return ;
303320 }
@@ -306,7 +323,7 @@ OcMain (
306323
307324// DEBUG ((DEBUG_INFO, "OC: OcLoadNvramSupport...\n"));
308325// OcLoadNvramSupport (Storage, &mOpenCoreConfiguration);
309- DEBUG (( DEBUG_INFO , " OC: OcMiscMiddleInit...\n " ) );
326+ DBG ( " OC: OcMiscMiddleInit...\n " );
310327 OcMiscMiddleInit (
311328 Storage,
312329 &mOpenCoreConfiguration ,
@@ -315,21 +332,19 @@ OcMain (
315332 mStorageHandle ,
316333 mOpenCoreConfiguration .Booter .Quirks .ForceBooterSignature ? mOpenCoreBooterHash : NULL
317334 );
318- DEBUG (( DEBUG_INFO , " OC: OcLoadUefiSupport...\n " ) );
335+ DBG ( " OC: OcLoadUefiSupport...\n " );
319336 OcLoadUefiSupport (Storage, &mOpenCoreConfiguration , &mOpenCoreCpuInfo , mOpenCoreBooterHash );
320- // DEBUG_CODE_BEGIN ();
321- // DEBUG ((DEBUG_INFO, "OC: OcMiscLoadSystemReport...\n"));
322- // OcMiscLoadSystemReport (&mOpenCoreConfiguration, mStorageHandle);
323- // DEBUG_CODE_END ();
324- // DEBUG ((DEBUG_INFO, "OC: OcLoadAcpiSupport...\n"));
325- // OcLoadAcpiSupport (&mOpenCoreStorage, &mOpenCoreConfiguration);
326- // DEBUG ((DEBUG_INFO, "OC: OcLoadPlatformSupport...\n"));
337+ #ifdef USE_OC_SECTION_Acpi
338+ DBG (" OC: OcLoadAcpiSupport...\n " );
339+ OcLoadAcpiSupport (&mOpenCoreStorage , &mOpenCoreConfiguration );
340+ #endif
341+ // DBG("OC: OcLoadPlatformSupport...\n"));
327342// OcLoadPlatformSupport (&mOpenCoreConfiguration, &mOpenCoreCpuInfo);
328- // DEBUG ((DEBUG_INFO, "OC: OcLoadDevPropsSupport...\n"));
343+ // DBG( "OC: OcLoadDevPropsSupport...\n"));
329344// OcLoadDevPropsSupport (&mOpenCoreConfiguration);
330- DEBUG (( DEBUG_INFO , " OC: OcMiscLateInit...\n " ) );
345+ DBG ( " OC: OcMiscLateInit...\n " );
331346 OcMiscLateInit (Storage, &mOpenCoreConfiguration );
332- DEBUG (( DEBUG_INFO , " OC: OcLoadKernelSupport...\n " ) );
347+ DBG ( " OC: OcLoadKernelSupport...\n " );
333348 OcLoadKernelSupport (&mOpenCoreStorage , &mOpenCoreConfiguration , &mOpenCoreCpuInfo );
334349
335350 if (mOpenCoreConfiguration .Misc .Security .EnablePassword ) {
@@ -343,7 +358,7 @@ OcMain (
343358// Privilege = NULL;
344359 }
345360
346- DEBUG (( DEBUG_INFO , " OC: All green, starting boot management...\n " ) );
361+ DBG ( " OC: All green, starting boot management...\n " );
347362
348363// OcMiscBoot (
349364// &mOpenCoreStorage,
@@ -964,20 +979,6 @@ void LOADER_ENTRY::StartLoader()
964979 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * FileSystem = OcLocateFileSystem (OcLoadedImage->DeviceHandle , OcLoadedImage->FilePath );
965980 Status = OcStorageInitFromFs (&mOpenCoreStorage , FileSystem, NULL , NULL , self.getCloverDirFullPath ().wc_str (), NULL );
966981
967- /*
968- * Define READ_FROM_OC to have mOpenCoreConfiguration initialized from config-oc.plist
969- * The boot should work.
970- * Next, comment out the next lines one by one. Once the boot failed, we got the section that
971- * holds the setting that makes a difference.
972- */
973- // #define USE_OC_SECTION_Acpi
974- // #define USE_OC_SECTION_Booter
975- // #define USE_OC_SECTION_DeviceProperties
976- // #define USE_OC_SECTION_Kernel
977- // #define USE_OC_SECTION_Misc
978- // #define USE_OC_SECTION_Nvram
979- // #define USE_OC_SECTION_PlatformInfo
980- // #define USE_OC_SECTION_Uefi
981982
982983 #if !defined(USE_OC_SECTION_Acpi) && !defined(USE_OC_SECTION_Booter) && !defined(USE_OC_SECTION_DeviceProperties) && !defined(USE_OC_SECTION_Kernel) && !defined(USE_OC_SECTION_Misc) && \
983984 !defined (USE_OC_SECTION_Nvram) && !defined (USE_OC_SECTION_PlatformInfo) && !defined (USE_OC_SECTION_Uefi)
@@ -1012,18 +1013,6 @@ void LOADER_ENTRY::StartLoader()
10121013 DBG (" Erase mOpenCoreConfiguration.Kernel\n " );
10131014 #else
10141015 DBG (" Keep mOpenCoreConfiguration.Kernel\n " );
1015- for ( size_t i = 0 ; i < mOpenCoreConfiguration .Kernel .Add .Count ; i ++ ) {
1016- OC_KERNEL_ADD_ENTRY * entry = mOpenCoreConfiguration .Kernel .Add .Values [i];
1017- OC_STRING_ASSIGN (entry->BundlePath , S8Printf (" Kexts\\ %s" , OC_BLOB_GET (&entry->BundlePath )).c_str ());
1018- }
1019-
1020- // DBG("mOpenCoreConfiguration.Kernel.Add.Count=%d\n", mOpenCoreConfiguration.Kernel.Add.Count);
1021- // for ( size_t i = 0 ; i < mOpenCoreConfiguration.Kernel.Add.Count ; i++ )
1022- // {
1023- // DBG("mOpenCoreConfiguration.Kernel.Add.Values[%zd]->Identifier=%s\n", i, OC_BLOB_GET(&mOpenCoreConfiguration.Kernel.Add.Values[i]->Identifier));
1024- // DBG("mOpenCoreConfiguration.Kernel.Add.Values[%zd]->BundlePath=%s\n", i, OC_BLOB_GET(&mOpenCoreConfiguration.Kernel.Add.Values[i]->BundlePath));
1025- // DBG("mOpenCoreConfiguration.Kernel.Add.Values[%zd]->PlistPath=%s\n", i, OC_BLOB_GET(&mOpenCoreConfiguration.Kernel.Add.Values[i]->PlistPath));
1026- // }
10271016 #endif
10281017 #ifndef USE_OC_SECTION_Misc
10291018 memset (&mOpenCoreConfiguration .Misc , 0 , sizeof (mOpenCoreConfiguration .Misc ));
@@ -1048,15 +1037,6 @@ void LOADER_ENTRY::StartLoader()
10481037 DBG (" Erase mOpenCoreConfiguration.Uefi\n " );
10491038 #else
10501039 DBG (" Keep mOpenCoreConfiguration.Uefi\n " );
1051- // memset(&mOpenCoreConfiguration.Uefi.Apfs, 0, sizeof(mOpenCoreConfiguration.Uefi.Apfs));
1052- // memset(&mOpenCoreConfiguration.Uefi.Audio, 0, sizeof(mOpenCoreConfiguration.Uefi.Audio));
1053- // memset(&mOpenCoreConfiguration.Uefi.ConnectDrivers, 0, sizeof(mOpenCoreConfiguration.Uefi.ConnectDrivers));
1054- // memset(&mOpenCoreConfiguration.Uefi.Drivers, 0, sizeof(mOpenCoreConfiguration.Uefi.Drivers));
1055- // memset(&mOpenCoreConfiguration.Uefi.Input, 0, sizeof(mOpenCoreConfiguration.Uefi.Input));
1056- // memset(&mOpenCoreConfiguration.Uefi.Output, 0, sizeof(mOpenCoreConfiguration.Uefi.Output));
1057- // memset(&mOpenCoreConfiguration.Uefi.ProtocolOverrides, 0, sizeof(mOpenCoreConfiguration.Uefi.ProtocolOverrides));
1058- // memset(&mOpenCoreConfiguration.Uefi.Quirks, 0, sizeof(mOpenCoreConfiguration.Uefi.Quirks));
1059- // memset(&mOpenCoreConfiguration.Uefi.ReservedMemory, 0, sizeof(mOpenCoreConfiguration.Uefi.ReservedMemory)); // doesn't matter
10601040 #endif
10611041
10621042 #endif
@@ -1066,6 +1046,9 @@ void LOADER_ENTRY::StartLoader()
10661046 if ( gSettings .Boot .DebugLog ) {
10671047 mOpenCoreConfiguration .Misc .Debug .AppleDebug = true ;
10681048 mOpenCoreConfiguration .Misc .Debug .ApplePanic = true ;
1049+ #ifdef JIEF_DEBUG
1050+ mOpenCoreConfiguration .Misc .Debug .SysReport = true ;
1051+ #endif
10691052
10701053 #ifndef LESS_DEBUG
10711054 mOpenCoreConfiguration .Misc .Debug .DisplayLevel = 0x80400042 ;
@@ -1078,7 +1061,7 @@ void LOADER_ENTRY::StartLoader()
10781061 egSetGraphicsModeEnabled (false );
10791062 mOpenCoreConfiguration .Misc .Debug .ApplePanic = true ;
10801063 mOpenCoreConfiguration .Misc .Debug .DisplayLevel = 0x80000042 ;
1081- mOpenCoreConfiguration .Misc .Debug .Target = 0x3 ;
1064+ mOpenCoreConfiguration .Misc .Debug .Target = 0x41 ;
10821065 #endif
10831066 }
10841067
@@ -1409,8 +1392,13 @@ void LOADER_ENTRY::StartLoader()
14091392 }
14101393 #endif
14111394
1395+ #ifdef USE_OC_SECTION_Uefi
1396+ gSettings .Devices .USB .USBFixOwnership = false ; // Use OC FixUsbOwnership
1397+ mOpenCoreConfiguration .Uefi .Quirks .ReleaseUsbOwnership = false ; // Clover has it's own FixUsbOwnership
1398+ #else
14121399 mOpenCoreConfiguration .Uefi .Output .ProvideConsoleGop = gSettings .GUI .ProvideConsoleGop ;
14131400 OC_STRING_ASSIGN (mOpenCoreConfiguration .Uefi .Output .Resolution , XString8 (gSettings .GUI .ScreenResolution ).c_str ());
1401+ #endif
14141402
14151403 if ( OpenRuntimeEfiName.notEmpty () ) {
14161404 XStringW FileName = SWPrintf (" %ls\\ %ls\\ %ls" , self.getCloverDirFullPath ().wc_str (), getDriversPath ().wc_str (), OpenRuntimeEfiName.wc_str ());
@@ -1653,6 +1641,10 @@ void LOADER_ENTRY::StartLoader()
16531641
16541642#ifdef JIEF_DEBUG
16551643 // SaveOemTables();
1644+ if ( mOpenCoreConfiguration .Misc .Debug .SysReport ) {
1645+ DBG (" OC: OcMiscLoadSystemReport\n " );
1646+ OcMiscLoadSystemReport (&mOpenCoreConfiguration , self.getSelfDeviceHandle ());
1647+ }
16561648#endif
16571649//
16581650
@@ -1837,6 +1829,25 @@ void LOADER_ENTRY::StartLoader()
18371829 LoadedImage->LoadOptions = (void *)LoadOptionsAsXStringW.wc_str ();
18381830 LoadedImage->LoadOptionsSize = (UINT32 )LoadOptionsAsXStringW.sizeInBytesIncludingTerminator ();
18391831
1832+ DBG (" UEFI Quirks\n " );
1833+ DBG (" EBSD %d TST %d AHS %d DSP %d EVA %d EV %d FUS %d IIFR %d RGB %d RUPR %d RUO %d ROR %d RBVR %d SRP %d UFC %d FOWF %d" ,
1834+ mOpenCoreConfiguration .Uefi .Quirks .ExitBootServicesDelay ,
1835+ mOpenCoreConfiguration .Uefi .Quirks .TscSyncTimeout ,
1836+ mOpenCoreConfiguration .Uefi .Quirks .ActivateHpetSupport ,
1837+ mOpenCoreConfiguration .Uefi .Quirks .DisableSecurityPolicy ,
1838+ mOpenCoreConfiguration .Uefi .Quirks .EnableVectorAcceleration ,
1839+ mOpenCoreConfiguration .Uefi .Quirks .EnableVmx ,
1840+ mOpenCoreConfiguration .Uefi .Quirks .ForgeUefiSupport ,
1841+ mOpenCoreConfiguration .Uefi .Quirks .IgnoreInvalidFlexRatio ,
1842+ mOpenCoreConfiguration .Uefi .Quirks .ResizeGpuBars ,
1843+ mOpenCoreConfiguration .Uefi .Quirks .ResizeUsePciRbIo ,
1844+ mOpenCoreConfiguration .Uefi .Quirks .ReleaseUsbOwnership ,
1845+ mOpenCoreConfiguration .Uefi .Quirks .ReloadOptionRoms ,
1846+ mOpenCoreConfiguration .Uefi .Quirks .RequestBootVarRouting ,
1847+ mOpenCoreConfiguration .Uefi .Quirks .ShimRetainProtocol ,
1848+ mOpenCoreConfiguration .Uefi .Quirks .UnblockFsConnect ,
1849+ mOpenCoreConfiguration .Uefi .Quirks .ForceOcWriteFlash );
1850+
18401851 DBG (" Kernel quirks\n " );
18411852 DBG (" ACPCL %d AXCL %d AXEM %d AXFB %d CSG %d DIM %d DLJ %d DRC %d DPM %d EBTFF %d EDI %d FAI %d IPBS %d LKP %d PNKD %d PTKP %d TPD %d XPL %d PCC %d\n " ,
18421853 mOpenCoreConfiguration .Kernel .Quirks .AppleCpuPmCfgLock ,
0 commit comments