Skip to content

Commit

Permalink
Merge pull request #87 from khronokernel/laptop
Browse files Browse the repository at this point in the history
0.5.7 merge
  • Loading branch information
khronokernel authored Apr 6, 2020
2 parents 3e4598c + b60c70d commit 8a253fc
Show file tree
Hide file tree
Showing 43 changed files with 1,042 additions and 446 deletions.
3 changes: 1 addition & 2 deletions AMD/AMD-USB-map.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
* Last edited: March 15, 2020
* Supported version: 0.5.6
* Supported version: 0.5.7

With OpenCore I think it's about time we finally destroy some AMD myths, like how USB is just screwed on AMD and can't be mapped. Well, that is false! And I will show you the path of enlightenment.

Expand Down
3 changes: 1 addition & 2 deletions AMD/NullCPU-patch.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Improve GPU power management and remove nullcpupowermanagement.kext

* Last edited: March 15, 2020
* Supported version: 0.5.6
* Supported version: 0.5.7

What you'll need:

Expand Down
73 changes: 40 additions & 33 deletions AMD/AMD-config.md → AMD/fx.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# AMD
# Bulldozer(15h) and Jaguar(16h)

* Last edited: March 15, 2020
* Supported version: 0.5.6
* Supported version: 0.5.7

## Starting Point

Expand All @@ -17,7 +16,6 @@ Now with all that, we'll need some things to get started:
* [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS): For generating our SMBIOS
* [Sample.plist](https://github.com/acidanthera/OpenCorePkg/releases): This is found under the Docs folder of the release download
* [AMD Kernel Patches](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore): Needed for booting macOS on AMD hardware(save these for later, we'll go over how to use them below)
* [Ryzen/Threadripper(17h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h) (Supports 10.13, 10.14, and 10.15)
* [Bulldozer/Jaguar(15h/16h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/15h_16h) (Supports 10.13, 10.14, and 10.15)

Now with those downloaded, we can get to really get started:
Expand Down Expand Up @@ -50,7 +48,7 @@ This is where you'll add SSDTs for your system, these are very important to **bo

Note that you **should not** add your generated `DSDT.aml` here, it is already in your firmware. So if present, remove the entry for it in your `config.plist` and under EFI/ACPI.

For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension\(Assembled\) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well.
For those wanting a deeper dive into dumping your DSDT, how to make these SSDTs, and compiling them, please see the [**Getting started with ACPI**](../extras/acpi.md) **page.** Compiled SSDTs have a **.aml** extension(Assembled) and will go into the `EFI/OC/ACPI` folder and **must** be specified in your config under `ACPI -> Add` as well.

**Block**

Expand All @@ -77,22 +75,22 @@ Settings relating to ACPI, leave everything here as default.

## Booter

![Booter](https://cdn.discordapp.com/attachments/456913818467958789/681325158815760384/Screen_Shot_2020-02-23_at_7.22.44_PM.png)
![Booter](https://cdn.discordapp.com/attachments/683011276938543134/696573787994325013/Screen_Shot_2020-04-05_at_10.15.09_PM.png)

This section is dedicated to quirks relating to boot.efi patching with FwRuntimeServices, the replacement for AptioMemoryFix.efi
This section is dedicated to quirks relating to boot.efi patching with OpenRuntime, the replacement for AptioMemoryFix.efi

**MmioWhitelist**:

This section is allowing spaces to be passthrough to macOS that are generally ignored, useful when paired with `DevirtualiseMmio`

**Quirks**:

Settings relating to boot.efi patching and firmware fixes, for us we care about enabling `SetupVirtualMap`
Settings relating to boot.efi patching and firmware fixes, one we need to change is `RebuildAppleMemoryMap`

* **AvoidRuntimeDefrag**: YES
* Fixes UEFI runtime services like date, time, NVRAM, power control, etc
* **DevirtualiseMmio**: NO
* Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful for most firmware though breaks on most AMD systems.
* Reduces Stolen Memory Footprint, expands options for `slide=N` values and generally useful especially on HEDT and Xeon systems
* **DisableSingleUser**: NO
* Disables the use of `Cmd+S` and `-s`, this is closer to the behaviour of T2 based machines
* **DisableVariableWrite**: NO
Expand All @@ -105,18 +103,23 @@ Settings relating to boot.efi patching and firmware fixes, for us we care about
* Removes write protection from CR0 register during their execution
* **ForceExitBootServices**: NO
* Ensures ExitBootServices calls succeeds even when MemoryMap has changed, don't use unless necessary
* **ProtectCsmRegion**: NO
* Needed for fixing artefacts and sleep-wake issues, AvoidRuntimeDefrag resolves this already so avoid this quirk unless necessary
* **ProtectMemoryRegion**: NO
* Needed for fixing artefacts and sleep-wake issues, generally only needed on very old firmwares
* **ProtectSecureBoot**: NO
* Fixes secureboot keys on MacPro5,1 and Insyde firmwares
* **ProtectUefiServices**: NO
* Protects UEFI services from being overridden by the firmware, mainly relevant for VMs, Icelake and newer Coffeelake systems
* **ProvideCustomSlide**: YES
* If there's a conflicting slide value, this option forces macOS to use a pseudo-random value. Needed for those receiving `Only N/256 slide values are usable!` debug message
* **RebuildAppleMemoryMap**: YES
* Generates Memory Map compatible with macOS
* **SetupVirtualMap**: YES
* Fixes SetVirtualAddresses calls to virtual addresses
* **ShrinkMemoryMap**: NO
* Needed for systems with large memory maps that don't fit, don't use unless necessary
* Fixes SetVirtualAddresses calls to virtual addresses, not needed on Skylake and newer
* **SignalAppleOS**: NO
* Tricks the hardware into thinking its always booting macOS, mainly benifitial for MacBook Pro's with dGPUs as booting Windows won't allow for the iGPU to be used
* **SyncRuntimePermissions**: NO
* Fixes alignment with MAT tables and required to boot Windows and Linux with MAT tables, also recommended for macOS. Mainly relevant for Skylake and newer

## DeviceProperties

![DeviceProperties](https://media.discordapp.net/attachments/456913818467958789/681334251865636866/Screen_Shot_2020-02-23_at_7.58.51_PM.png?width=1674&height=866)
Expand Down Expand Up @@ -156,7 +159,6 @@ TL;DR, delete all the PciRoot's here as we won't be using this section.
**Patch**: This is where the AMD kernel patching magic happens. Please do note that `KernelToPatch` and `MatchOS` from Clover becomes `Kernel` and `MinKernel`/ `MaxKernel` in OpenCore, you can find pre-made patches by [AlGrey](https://amd-osx.com/forum/memberlist.php?mode=viewprofile&u=10918&sid=e0feb8a14a97be482d2fd68dbc268f97)(algrey#9303):

Kernel patches:
* [Ryzen/Threadripper(17h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h) (10.13, 10.14, and 10.15)
* [Bulldozer/Jaguar(15h/16h)](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/15h_16h) (10.13, 10.14, and 10.15)

To merge:
Expand Down Expand Up @@ -213,12 +215,14 @@ Settings relating to the kernel, for us we'll be enabling `DummyPowerManagement`
* Hides Recovery and other partitions unless spacebar is pressed, more closely matches real Mac behaviour
* **HideSelf**: YES
* Hides the EFI partition as a boot option in OC's boot picker
* **PickerAttributes**:
* **ConsoleAttributes**: `0`
* Sets OpenCore's UI color, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info
* **PickerAttributes**: `0`
* Used for setting custom picker attributes, won't be covered here but see 8.3.8 of [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) for more info
* **PickerAudioAssist**: NO
* Used for enabling VoiceOver like support in the picker, unless you want your hack talking to you keep this disabled
* **PollAppleHotKeys**: NO
* Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use AppleUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can't select anything in OC's picker, disabling this option can help. Popular commands:
* Allows you to use Apple's hotkeys during boot, depending on the firmware you may need to use OpenUsbKbDxe.efi instead of OpenCore's builtin support. Do note that if you can select anything in OC's picker, disabling this option can help. Popular commands:
* `Cmd+V`: Enables verbose
* `Cmd+Opt+P+R`: Cleans NVRAM
* `Cmd+R`: Boots Recovery partition
Expand All @@ -231,7 +235,10 @@ Settings relating to the kernel, for us we'll be enabling `DummyPowerManagement`

**Debug**: Helpful for debugging OpenCore boot issues(We'll be changing everything *but* `DisplayDelay`)

* **DisableWatchDog**: YES \(May need to be set for YES if OpenCore is stalling on something while booting, can also help for early macOS boot issues\)
* **AppleDebug**: YES
* Enables boot.efi logging, useful for debuuging. Note this is only supported on 10.15.4 and newer
* **DisableWatchDog**: YES
* Disables the UEFI watchdog, can help with early boot issues
* **Target**: `67`
* Shows more debug information, requires debug version of OpenCore
* **DisplayLevel**: `2147483714`
Expand Down Expand Up @@ -264,7 +271,7 @@ We'll be changing `AllowNvramReset`, `AllowSetDefault`, `RequireSignature`, `Req
* Self-explanatory, enables or disables
* **Path**
* Path to file after the `Tools` folder
* ex: [Shell.efi](https://github.com/acidanthera/OpenCoreShell/releases)
* ex: [OpenShell.efi](https://github.com/acidanthera/OpenCorePkg/releases)

**Entries**: Used for specifying irregular boot paths that can't be found naturally with OpenCore

Expand All @@ -280,7 +287,7 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant

* **UIScale**:
* `01`: Standard resolution(Clover equivalent is `0x28`)
* `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`\)
* `02`: HiDPI (generally required for FileVault to function correctly on smaller displays, Clover equivalent is `0x2A`)

* **DefaultBackgroundColor**: Background color used by boot.efi
* `00000000`: Syrah Black
Expand All @@ -294,8 +301,6 @@ Won't be covered here, see 8.6 of [Configuration.pdf](https://github.com/acidant
* **keepsyms=1** - this is a companion setting to debug=0x100 that tells the OS to also print the symbols on a kernel panic. That can give some more helpful insight as to what's causing the panic itself.
* **npci=0x2000** - this disables some PCI debugging related to `kIOPCIConfiguratorPFM64`, alternative is `npci= 0x3000` which disables debugging related to `kIOPCIConfiguratorTBMSIEnable`and `gIOPCITunnelledKey`. Required for when getting stuck on `PCI Start Configuration` as there are IRQ conflicts relating to your PCI lanes. **Not needed if Above4GDecoding is enabled**. [Source](https://opensource.apple.com/source/IOPCIFamily/IOPCIFamily-370.0.2/IOPCIBridge.cpp.auto.html)
* **agdpmod=pikera** - used for disabling boardID on Navi GPUs(RX 5000 series), without this you'll get a black screen. **Don't use if you don't have Navi**
* **alcid=1** - used for setting layout-id for AppleALC, see [supported codecs](https://github.com/acidanthera/applealc/wiki/supported-codecs) to figure out which layout to use for your specific system.


* **csr-active-config**: Settings for SIP, generally recommended to manually change this within Recovery partition with `csrutil` via the recovery partition

Expand All @@ -307,9 +312,9 @@ csr-active-config is set to `00000000` which enables System Integrity Protection

Recommended to leave enabled for best security practices

* **nvda\_drv**: <>
* **nvda\_drv**: <>
* For enabling Nvidia WebDrivers, set to 31 if running a [Maxwell or Pascal GPU](https://github.com/khronokernel/Catalina-GPU-Buyers-Guide/blob/master/README.md#Unsupported-nVidia-GPUs). This is the same as setting nvda\_drv=1 but instead we translate it from [text to hex](https://www.browserling.com/tools/hex-to-text), Clover equivalent is `NvidiaWeb`. **AMD, Intel and Kepler GPU users should delete this section.**
* **prev-lang:kbd**: <>
* **prev-lang:kbd**: <>
* Needed for non-latin keyboards in the format of `lang-COUNTRY:keyboard`, recommeneded to keep blank though you can specify it(**Default in Sample config is Russian**):
* American: `en-US:0`(`656e2d55533a30` in HEX)
* Full list can be found in [AppleKeyboardLayouts.txt](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt)
Expand Down Expand Up @@ -362,15 +367,15 @@ SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3

The order is `Product | Serial | Board Serial (MLB)`

The `Type` part gets copied to Generic -> SystemProductName.
The `Type` part gets copied to Generic -> SystemProductName.

The `Serial` part gets copied to Generic -> SystemSerialNumber.
The `Serial` part gets copied to Generic -> SystemSerialNumber.

The `Board Serial` part gets copied to Generic -> MLB.
The `Board Serial` part gets copied to Generic -> MLB.

The `SmUUID` part gets copied toto Generic -> SystemUUID.
The `SmUUID` part gets copied toto Generic -> SystemUUID.

We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address)
We set Generic -> ROM to either an Apple ROM (dumped from a real Mac), your NIC MAC address, or any random MAC address (could be just 6 random bytes, for this guide we'll use `11223300 0000`. After install follow the [Fixing iServices](/post-install/iservices.md) page on how to find your real MAC Address)

**Reminder that you want either an invalid serial or valid serial numbers but those not in use, you want to get a message back like: "Invalid Serial" or "Purchase Date not Validated"**

Expand Down Expand Up @@ -411,9 +416,9 @@ We set Generic -> ROM to either an Apple ROM \(dumped from a real Mac\), your

Only drivers present here should be:

* HFSPlus.efi
* HfsPlus.efi
* ApfsDriverLoader.efi
* FwRuntimeServices.efi
* OpenRuntime.efi

**Audio**: Related to AudioDxe settings, for us we'll be ignoring(leave as default). This is unrelated to audio support in macOS

Expand All @@ -436,12 +441,14 @@ Only drivers present here should be:

**Input**: Related to boot.efi keyboard passthrough used for FileVault and Hotkey support

* **KeyFiltering**: NO
* Verifies and discards uninitialised data, mainly prevalent on 7 series Gigabyte boards
* **KeyForgetThreshold**: `5`
* The delay between each key input when holding a key down, for best results use `5` milliseconds
* **KeyMergeThreshold**: `2`
* The length of time that a key will be registered before resetting, for best results use `2` milliseconds
* **KeySupport**: `YES`
* Enables OpenCore's built in key support and **required for boot picker selection**, do not use with AppleUsbKbDxe.efi
* Enables OpenCore's built in key support and **required for boot picker selection**, do not use with OpenUsbKbDxe.efi
* **KeySupportMode**: `Auto`
* Keyboard translation for OpenCore
* **KeySwap**: `NO`
Expand Down Expand Up @@ -492,7 +499,7 @@ Only drivers present here should be:
* **ExitBootServicesDelay**: `0`
* Only required for very specific use cases like setting to `3000` - `5000` for ASUS Z87-Pro running FileVault2
* **IgnoreInvalidFlexRatio**: NO
* Fix for when MSR\_FLEX\_RATIO \(0x194\) can't be disabled in the BIOS, required for all pre-skylake based systems
* Fix for when MSR\_FLEX\_RATIO (0x194) can't be disabled in the BIOS, required for all pre-skylake based systems
* **ReleaseUsbOwnership**: NO
* Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Clover equivalent is `FixOwnership`
* **RequestBootVarFallback**: YES
Expand Down
Loading

0 comments on commit 8a253fc

Please sign in to comment.