提交 444365c8 编写于 作者: V vit9696

OcAppleKernelLib: Fixed `IncreasePciBarSize` on 10.11.5

上级 ca6c8299
......@@ -22,6 +22,7 @@ OpenCore Changelog
- Fixed patching of ACPI tables in low memory
- Fixed macOS 11.0 DMG recovery loading without hotplug
- Fixed `XhciPortLimit` quirk on 10.12.6 and possibly other versions
- Fixed `IncreasePciBarSize` quirk on 10.11.5 and possibly other versions
#### v0.6.0
- Fixed sound corruption with AudioDxe
......
......@@ -2181,7 +2181,7 @@ blocking.
\texttt{IncreasePciBarSize}\\
\textbf{Type}: \texttt{plist\ boolean}\\
\textbf{Failsafe}: \texttt{false}\\
\textbf{Requirement}: FIXME\\
\textbf{Requirement}: 10.10\\
\textbf{Description}: Increases 32-bit PCI bar size in IOPCIFamily from 1 to 4 GBs.
\emph{Note}: This option should be avoided whenever possible. In general the necessity
......
......@@ -999,6 +999,33 @@ mIncreasePciBarSizePatch = {
.Limit = EFI_PAGE_SIZE
};
STATIC
UINT8
mIncreasePciBarSizePatchLegacyFind[] = {
0x01, 0x00, 0x00, 0x40
};
STATIC
UINT8
mIncreasePciBarSizePatchLegacyReplace[] = {
0x01, 0x00, 0x00, 0x80
};
STATIC
PATCHER_GENERIC_PATCH
mIncreasePciBarSizeLegacyPatch = {
.Comment = DEBUG_POINTER ("IncreasePciBarSizeLegacy"),
.Base = "__ZN17IOPCIConfigurator24probeBaseAddressRegisterEP16IOPCIConfigEntryjj",
.Find = mIncreasePciBarSizePatchLegacyFind,
.Mask = NULL,
.Replace = mIncreasePciBarSizePatchLegacyReplace,
.ReplaceMask = NULL,
.Size = sizeof (mIncreasePciBarSizePatchLegacyFind),
.Count = 1,
.Skip = 0,
.Limit = EFI_PAGE_SIZE
};
STATIC
EFI_STATUS
PatchIncreasePciBarSize (
......@@ -1012,9 +1039,20 @@ PatchIncreasePciBarSize (
return EFI_NOT_FOUND;
}
if (!OcMatchDarwinVersion (KernelVersion, KERNEL_VERSION_YOSEMITE_MIN, 0)) {
DEBUG ((DEBUG_INFO, "OCAK: Skipping com.apple.iokit.IOPCIFamily IncreasePciBarSize on %u\n", KernelVersion));
return EFI_SUCCESS;
}
Status = PatcherApplyGenericPatch (Patcher, &mIncreasePciBarSizePatch);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_INFO, "OCAK: Failed to apply patch com.apple.iokit.IOPCIFamily IncreasePciBarSize - %r\n", Status));
Status = PatcherApplyGenericPatch (Patcher, &mIncreasePciBarSizeLegacyPatch);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_INFO, "OCAK: Failed to apply legacy patch com.apple.iokit.IOPCIFamily IncreasePciBarSize - %r\n", Status));
} else {
DEBUG ((DEBUG_INFO, "OCAK: Patch success legacy com.apple.iokit.IOPCIFamily IncreasePciBarSize\n"));
}
} else {
DEBUG ((DEBUG_INFO, "OCAK: Patch success com.apple.iokit.IOPCIFamily IncreasePciBarSize\n"));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册