diff --git a/CloverPackage/CloverV2/EFI/CLOVER/config-sample.plist b/CloverPackage/CloverV2/EFI/CLOVER/config-sample.plist index 97e23dc89..bb4174ff3 100755 --- a/CloverPackage/CloverV2/EFI/CLOVER/config-sample.plist +++ b/CloverPackage/CloverV2/EFI/CLOVER/config-sample.plist @@ -1140,6 +1140,8 @@ 0 RebuildAppleMemoryMap + ResizeAppleGpuBars + -1 SetupVirtualMap SignalAppleOS diff --git a/buildme b/buildme index ff83d9621..76cd2bfc2 100755 --- a/buildme +++ b/buildme @@ -186,10 +186,10 @@ if [[ -x "${DIR_TOOLS}"/Scripts/build.sh ]]; then else local parameter=${1:-none} if [[ "${parameter}" == HFSPlus ]]; then - #./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN + ./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN else - #./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN + ./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN fi fi diff --git a/rEFIt_UEFI/Platform/Settings.h b/rEFIt_UEFI/Platform/Settings.h index b800dd318..7a9050f48 100755 --- a/rEFIt_UEFI/Platform/Settings.h +++ b/rEFIt_UEFI/Platform/Settings.h @@ -2097,8 +2097,9 @@ printf("%s", ""); XBool ProtectSecureBoot = false; XBool ProtectUefiServices = false; XBool ProvideCustomSlide = false; - uint8_t ProvideMaxSlide = false; + uint8_t ProvideMaxSlide = 0; XBool RebuildAppleMemoryMap = false; + int8_t ResizeAppleGpuBars = -1; XBool SetupVirtualMap = false; XBool SignalAppleOS = false; XBool SyncRuntimePermissions = false; @@ -2122,6 +2123,7 @@ printf("%s", ""); if ( !(ProvideCustomSlide == other.ProvideCustomSlide) ) return false; if ( !(ProvideMaxSlide == other.ProvideMaxSlide) ) return false; if ( !(RebuildAppleMemoryMap == other.RebuildAppleMemoryMap) ) return false; + if ( !(ResizeAppleGpuBars == other.ResizeAppleGpuBars) ) return false; if ( !(SetupVirtualMap == other.SetupVirtualMap) ) return false; if ( !(SignalAppleOS == other.SignalAppleOS) ) return false; if ( !(SyncRuntimePermissions == other.SyncRuntimePermissions) ) return false; @@ -2143,6 +2145,7 @@ printf("%s", ""); ProvideCustomSlide = other.dgetProvideCustomSlide(); ProvideMaxSlide = other.dgetProvideMaxSlide(); RebuildAppleMemoryMap = other.dgetRebuildAppleMemoryMap(); + ResizeAppleGpuBars = other.dgetResizeAppleGpuBars(); SetupVirtualMap = other.dgetSetupVirtualMap(); SignalAppleOS = other.dgetSignalAppleOS(); SyncRuntimePermissions = other.dgetSyncRuntimePermissions(); diff --git a/rEFIt_UEFI/Platform/ati.cpp b/rEFIt_UEFI/Platform/ati.cpp index e87eca761..caa3fc2c5 100644 --- a/rEFIt_UEFI/Platform/ati.cpp +++ b/rEFIt_UEFI/Platform/ati.cpp @@ -497,7 +497,7 @@ const radeon_card_info_t radeon_cards[] = { { 0x6981, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull }, { 0x6985, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull }, { 0x6986, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull }, - { 0x6987, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull }, + { 0x6987, CHIP_FAMILY_GREENLAND, "AMD Radeon RX640", kNull }, { 0x6995, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull }, { 0x699F, CHIP_FAMILY_GREENLAND, "AMD Radeon RX550", kNull }, @@ -1094,6 +1094,65 @@ Catalina 0x731F1002 */ +// +/* + * Native ID for Monterey 12.0.1 +AMD7000 +0x67901002 0x67981002 0x679A1002 0x679E1002 0x67801002 0x68201002 0x68211002 0x68231002 0x68251002 0x68271002 0x682B1002 0x682D1002 0x682F1002 0x68351002 0x68391002 0x683B1002 0x683D1002 0x683F1002 0x68001002 0x68011002 0x68061002 0x68081002 0x68101002 0x68181002 0x68191002 + + +AMD8000 +0x66401002 0x66411002 0x66461002 0x66471002 0x66501002 0x66511002 0x665C1002 0x665D1002 0x67B01002 + +AMD9000 +0x69201002 0x69211002 0x69301002 0x69381002 0x69391002 0x73001002 0x730F1002 + +AMD9500 +0x67E01002 0x67E31002 0x67E81002 0x67EB1002 0x67EF1002 0x67FF1002 0x67E11002 0x67E71002 0x67E91002 0x67C01002 0x67C11002 0x67C21002 0x67C41002 0x67C71002 0x67DF1002 0x67D01002 0x67C81002 0x67C91002 0x67CA1002 0x67CC1002 0x67CF1002 + +AMD10000 +0x68601002 0x68611002 0x68621002 0x68631002 0x68641002 0x68671002 0x68681002 0x68691002 0x686A1002 0x686B1002 0x686C1002 0x686D1002 0x686E1002 0x687F1002 0x69A01002 0x69A11002 0x69A21002 0x69A31002 0x69AF1002 0x66A01002 0x66A11002 0x66A21002 0x66A31002 0x66A71002 0x66AF1002 + +X4000 +Buffin +0x67E01002 0x67E31002 0x67E81002 0x67EB1002 0x67EF1002 0x67FF1002 0x67E11002 0x67E71002 0x67E91002 +Bonair +0x66401002 0x66411002 0x66461002 0x66471002 0x66501002 0x66511002 0x665C1002 0x665D1002 +Ellesmere +0x67C01002 0x67C11002 0x67C21002 0x67C41002 0x67C71002 0x67DF1002 0x67D01002 0x67C81002 0x67C91002 0x67CA1002 0x67CC1002 0x67CF1002 +Fiji +0x73001002 0x730F1002 +Hawaii +0x67B01002 +Pitcairn +0x68001002 0x68011002 0x68061002 0x68081002 0x68101002 0x68181002 0x68191002 +Tahiti +0x67901002 0x67981002 0x679A1002 0x679E1002 0x67801002 +Tonga +0x69201002 0x69211002 0x69301002 0x69381002 0x69391002 +Verde +0x68201002 0x68211002 0x68231002 0x68251002 0x68271002 0x682B1002 0x682D1002 0x682F1002 0x68351002 0x68391002 0x683B1002 0x683D1002 0x683F1002 + + + +X5000 +Vega10 +0x68601002 0x68611002 0x68621002 0x68631002 0x68641002 0x68671002 0x68681002 0x68691002 0x686A1002 0x686B1002 0x686C1002 0x686D1002 0x686E1002 0x686F1002 0x687F1002 +Vega12 +0x69A01002 0x69A11002 0x69A21002 0x69A31002 0x69AF1002 +Vega20 +0x66A01002 0x66A11002 0x66A21002 0x66A31002 0x66A71002 0x66AF1002 + +X6000 +Navi10 +0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002 +Navi12 +0x73601002 +Navi14 +0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002 +Navi21 +0x73A21002 0x73AB1002 0x73BF1002 0x73A31002 +*/ const CHAR8 *chip_family_name[] = { "UNKNOW", diff --git a/rEFIt_UEFI/Platform/cpu.cpp b/rEFIt_UEFI/Platform/cpu.cpp index 4ac4c3845..90e5b5c4e 100755 --- a/rEFIt_UEFI/Platform/cpu.cpp +++ b/rEFIt_UEFI/Platform/cpu.cpp @@ -189,6 +189,7 @@ void GetCPUProperties (void) gCPUStructure.ExtFeatures = quad(gCPUStructure.CPUID[CPUID_81][ECX], gCPUStructure.CPUID[CPUID_81][EDX]); DBG(" The CPU%s supported SSE4.1\n", (gCPUStructure.Features & CPUID_FEATURE_SSE4_1)?"":" not"); + DBG(" The CPU%s supported RDRAND\n", (gCPUStructure.Features & CPUID_FEATURE_RDRAND)?"":" not"); /* Pack CPU Family and Model */ if (gCPUStructure.Family == 0x0f) { gCPUStructure.Family += gCPUStructure.Extfamily; diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h index 628df55d9..055f55f7f 100755 --- a/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h @@ -98,6 +98,7 @@ public: XmlBool ProvideCustomSlide = XmlBool(); XmlUInt8 ProvideMaxSlide = XmlUInt8(); XmlBool RebuildAppleMemoryMap = XmlBool(); + XmlInt8 ResizeAppleGpuBars = XmlInt8(); XmlBool SetupVirtualMap = XmlBool(); XmlBool SignalAppleOS = XmlBool(); XmlBool SyncRuntimePermissions = XmlBool(); @@ -116,6 +117,7 @@ public: XBool dgetProvideCustomSlide() const { return ProvideCustomSlide.isDefined() ? ProvideCustomSlide.value() : ProvideCustomSlide.nullValue; }; uint8_t dgetProvideMaxSlide() const { return ProvideMaxSlide.isDefined() ? ProvideMaxSlide.value() : ProvideMaxSlide.nullValue; }; XBool dgetRebuildAppleMemoryMap() const { return RebuildAppleMemoryMap.isDefined() ? RebuildAppleMemoryMap.value() : RebuildAppleMemoryMap.nullValue; }; + int8_t dgetResizeAppleGpuBars() const { return ResizeAppleGpuBars.isDefined() ? ResizeAppleGpuBars.value() : (-1); }; XBool dgetSetupVirtualMap() const { return parent.isDefined() ? SetupVirtualMap.isDefined() ? SetupVirtualMap.value() : XBool(true) : SetupVirtualMap.nullValue; }; // TODO: different default value if section is not defined XBool dgetSignalAppleOS() const { return SignalAppleOS.isDefined() ? SignalAppleOS.value() : SignalAppleOS.nullValue; }; XBool dgetSyncRuntimePermissions() const { return parent.isDefined() ? SyncRuntimePermissions.isDefined() ? SyncRuntimePermissions.value() : XBool(true) : XBool(false); }; // TODO: different default value if section is not defined @@ -131,7 +133,7 @@ public: OcKernelQuirks_Class OcKernelQuirks; OcBooterQuirks_Class OcBooterQuirks; - XmlDictField m_fields[31] = { + XmlDictField m_fields[32] = { {"AvoidRuntimeDefrag", OcBooterQuirks.AvoidRuntimeDefrag}, {"DevirtualiseMmio", OcBooterQuirks.DevirtualiseMmio}, {"DisableSingleUser", OcBooterQuirks.DisableSingleUser}, @@ -146,6 +148,7 @@ public: {"ProvideCustomSlide", OcBooterQuirks.ProvideCustomSlide}, {"ProvideMaxSlide", OcBooterQuirks.ProvideMaxSlide}, {"RebuildAppleMemoryMap", OcBooterQuirks.RebuildAppleMemoryMap}, + {"ResizeAppleGpuBars", OcBooterQuirks.ResizeAppleGpuBars}, {"SetupVirtualMap", OcBooterQuirks.SetupVirtualMap}, {"SignalAppleOS", OcBooterQuirks.SignalAppleOS}, {"SyncRuntimePermissions", OcBooterQuirks.SyncRuntimePermissions}, diff --git a/rEFIt_UEFI/include/QuirksCodes.h b/rEFIt_UEFI/include/QuirksCodes.h index 8cba1899a..2001ed345 100644 --- a/rEFIt_UEFI/include/QuirksCodes.h +++ b/rEFIt_UEFI/include/QuirksCodes.h @@ -26,6 +26,7 @@ #define QUIRK_VIRT bit(13) #define QUIRK_OS bit(14) #define QUIRK_PERM bit(15) +#define QUIRK_GPUBAR bit(16) diff --git a/rEFIt_UEFI/refit/main.cpp b/rEFIt_UEFI/refit/main.cpp index 647df87e0..84e22157f 100644 --- a/rEFIt_UEFI/refit/main.cpp +++ b/rEFIt_UEFI/refit/main.cpp @@ -1016,6 +1016,7 @@ void LOADER_ENTRY::StartLoader() mOpenCoreConfiguration.Booter.Quirks.ProvideCustomSlide = gSettings.Quirks.OcBooterQuirks.ProvideCustomSlide; mOpenCoreConfiguration.Booter.Quirks.ProvideMaxSlide = gSettings.Quirks.OcBooterQuirks.ProvideMaxSlide; mOpenCoreConfiguration.Booter.Quirks.RebuildAppleMemoryMap = gSettings.Quirks.OcBooterQuirks.RebuildAppleMemoryMap; + mOpenCoreConfiguration.Booter.Quirks.ResizeAppleGpuBars = gSettings.Quirks.OcBooterQuirks.ResizeAppleGpuBars; mOpenCoreConfiguration.Booter.Quirks.SetupVirtualMap = gSettings.Quirks.OcBooterQuirks.SetupVirtualMap; mOpenCoreConfiguration.Booter.Quirks.SignalAppleOS = gSettings.Quirks.OcBooterQuirks.SignalAppleOS; mOpenCoreConfiguration.Booter.Quirks.SyncRuntimePermissions = gSettings.Quirks.OcBooterQuirks.SyncRuntimePermissions; diff --git a/rEFIt_UEFI/refit/menu.cpp b/rEFIt_UEFI/refit/menu.cpp index 6f69b6670..67e0b4b42 100644 --- a/rEFIt_UEFI/refit/menu.cpp +++ b/rEFIt_UEFI/refit/menu.cpp @@ -455,6 +455,8 @@ void FillInputs(XBool New) InputItems[InputItemsCount++].SValue.SWPrintf("0x%016llX", gSettings.Smbios.ExtendedFirmwareFeatures); InputItems[InputItemsCount].ItemType = Hex; //126 InputItems[InputItemsCount++].SValue.SWPrintf("0x%016llX", gSettings.Smbios.ExtendedFirmwareFeaturesMask); + InputItems[InputItemsCount].ItemType = Decimal; //127 + InputItems[InputItemsCount++].SValue.SWPrintf("%04d", gSettings.Quirks.OcBooterQuirks.ResizeAppleGpuBars); @@ -1089,6 +1091,19 @@ void ApplyInputs(void) gSettings.Smbios.ExtendedFirmwareFeaturesMask = StrHexToUint64(InputItems[i].SValue.wc_str()); DBG("applied ExtendedFirmwareFeaturesMask=0x%llX\n", gSettings.Smbios.ExtendedFirmwareFeaturesMask); } + i++; //127 + if (InputItems[i].Valid) { + INTN Minus = 0; + if (InputItems[i].SValue[0] == '-') { + Minus = 1; + } + gSettings.Quirks.OcBooterQuirks.ResizeAppleGpuBars = StrDecimalToUintn(InputItems[i].SValue.data(Minus)); + if (Minus) { + gSettings.Quirks.OcBooterQuirks.ResizeAppleGpuBars = -gSettings.Quirks.OcBooterQuirks.ResizeAppleGpuBars; + } + DBG(" set GpuBar = %d\n", gSettings.Quirks.OcBooterQuirks.ResizeAppleGpuBars); + } + if (NeedSave) { ApplySettings(); @@ -2581,11 +2596,12 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuQuirks() SubScreen->AddMenuCheck("ProtectMemoryRegions", QUIRK_REGION, 101); SubScreen->AddMenuCheck("ProtectSecureBoot", QUIRK_SECURE, 101); SubScreen->AddMenuCheck("ProtectUefiServices", QUIRK_UEFI, 101); - SubScreen->AddMenuItemInput(123, "ProvideConsoleGopEnable", false); +// SubScreen->AddMenuItemInput(123, "ProvideConsoleGopEnable", false); SubScreen->AddMenuCheck("ProvideCustomSlide", QUIRK_CUSTOM, 101); //decimal SubScreen->AddMenuItemInput(122, "ProvideMaxSlide:", true); SubScreen->AddMenuCheck("RebuildAppleMemoryMap", QUIRK_MAP, 101); + SubScreen->AddMenuItemInput(127, "ResizeAppleGpuBars:", true); SubScreen->AddMenuCheck("SetupVirtualMap", QUIRK_VIRT, 101); SubScreen->AddMenuCheck("SignalAppleOS", QUIRK_OS, 101); SubScreen->AddMenuCheck("SyncRuntimePermissions", QUIRK_PERM, 101);