From f4cb0bed68ca73b624a9f334bce84a4d9e9318af Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Thu, 1 Dec 2022 08:02:46 -0700 Subject: [PATCH] build: Add FixPCIeLinkRate.efi --- CHANGELOG.md | 2 ++ README.md | 2 ++ payloads/Config/config.plist | 12 ++++++++++++ payloads/Drivers/FixPCIeLinkRate.efi | Bin 0 -> 25600 bytes resources/build/firmware.py | 6 ++++++ resources/constants.py | 4 ++++ 6 files changed, 26 insertions(+) create mode 100644 payloads/Drivers/FixPCIeLinkRate.efi diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f5e4219f..6fcb62d83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # OpenCore Legacy Patcher changelog ## 0.5.3 +- Integrate FixPCIeLinkrate.efi v0.1.0 + - Fixes link rate for PCIe 3.0 devices on MacPro3,1 ## 0.5.2 - Ventura Specific Updates: diff --git a/README.md b/README.md index adeceb6b3..38629ae24 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,8 @@ To run the project from source, see here: [Build and run from source](./SOURCE.m * Endless hours helping architect and troubleshoot many portions of the project * [flagers](https://github.com/flagersgit) * Aid with Nvidia Web Driver research and development +* [joevt](https://github.com/joevt) + * [FixPCIeLinkrate](https://github.com/joevt/joevtApps) * MacRumors and Unsupported Mac Communities * Endless testing, reporting issues * Apple diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index e9a82e4ff..90059b1c3 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -2517,6 +2517,18 @@ LoadEarly + + Comment + + Path + FixPCIeLinkRate.efi + Enabled + + Arguments + + LoadEarly + + Input diff --git a/payloads/Drivers/FixPCIeLinkRate.efi b/payloads/Drivers/FixPCIeLinkRate.efi new file mode 100644 index 0000000000000000000000000000000000000000..41ff2625d30a41ed37132bc9764fe15b08ec2016 GIT binary patch literal 25600 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