# UEFI

UEFI

Note

How we deal with these options that aren't nested under a section needs work. Right now they're treated as a separate heading, so you can see it in the sidebar and the table of contents, but it may be a better idea to do something else.

Note

This is just an sample to exemplify organization, please do not rely on the content!

# ConnectDrivers: YES

  • Forces .efi drivers, change to NO will automatically connect added UEFI drivers. This can make booting slightly faster, but not all drivers connect themselves. E.g. certain file system drivers may not load.

# APFS

By default, OpenCore only loads APFS drivers from macOS Big Sur and newer. If you are booting macOS Catalina or earlier, you may need to set a new minimum version/date. Not setting this can result in OpenCore not finding your macOS partition!

macOS Sierra and earlier use HFS instead of APFS. You can skip this section if booting older versions of macOS.

APFS Versions

Both MinVersion and MinDate need to be set if changing the minimum version.

macOS Version Min Version Min Date
High Sierra (10.13.6) 748077008000000 20180621
Mojave (10.14.6) 945275007000000 20190820
Catalina (10.15.4) 1412101001000000 20200306
No restriction -1 -1

# Audio

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

# Drivers

Add your .efi drivers here.

Note

This is one way things could be organized for different platforms. Another way could be:

Only drivers present here should be:

  • HfsPlus.efi (or HfsPlusLegacy.efi on Nehalem, Arrandale, and Sandy Bridge)
  • OpenRuntime.efi
  • OpenUsbKbDxe.efi (if your firmware does not support UEFI)

# Nehalem, Arrandale, Sandy Bridge

Only drivers present here should be:

  • HfsPlusLegacy.efi
  • OpenRuntime.efi
  • OpenUsbKbDxe.efi (if your firmware does not support UEFI)

# Haswell, Broadwell, Skylake, Kaby Lake

Only drivers present here should be:

  • HfsPlus.efi
  • OpenRuntime.efi
More in-depth Info
Key Type Description
Path String Path of the file from OC/Drivers directory
LoadEarly Boolean Load the driver early before NVRAM setup, should only be enabled for OpenRuntime.efi and OpenVariableRuntimeDxe.efi if using legacy NVRAM
Arguments String Some drivers accept additional arguments which are specified here.

# Input

Related to boot.efi keyboard passthrough used for FileVault and Hotkey support, leave everything here as default as we have no use for these quirks. See here for more details: Security and FileVault (opens new window)

# Output

Relating to OpenCore's visual output, leave everything here as default as we have no use for these quirks.

More in-depth Info
Output Value Comment
UIScale 0 0 will automatically set based on resolution
-1 will leave it unchanged
1 for 1x scaling, for normal displays
2 for 2x scaling, for HiDPI displays

# ProtocolOverrides

Mainly relevant for Virtual machines, legacy macs and FileVault users. See here for more details: Security and FileVault (opens new window)

# Quirks

Note

This is one way things could be organized for different platforms. Another way could be:

# Laptops

Quirk Enabled Comment
ReleaseUsbOwnership YES
UnblockFsConnect NO Needed mainly by HP motherboards

# All Other Platforms

Quirk Enabled Comment
UnblockFsConnect NO Needed mainly by HP motherboards

Relating to quirks with the UEFI environment, for us we'll be changing the following:

Quirk Platforms Enabled Comment
ReleaseUsbOwnership All Laptop Platforms YES
UnblockFsConnect All NO Needed mainly by HP motherboards
More in-depth Info
  • DisableSecurityPolicy: NO

    • Disables platform security policy in firmware, recommended for buggy firmwares where disabling Secure Boot does not allow 3rd party firmware drivers to load.
    • If running a Microsoft Surface device, recommended to enable this option
  • ReleaseUsbOwnership: YES

    • Releases USB controller from firmware driver, needed for when your firmware doesn't support EHCI/XHCI Handoff. Most laptops have garbage firmwares so we'll need this as well
  • RequestBootVarRouting: YES

    • Redirects AptioMemoryFix from EFI_GLOBAL_VARIABLE_GUID to OC_VENDOR_VARIABLE_GUID. Needed for when firmware tries to delete boot entries and is recommended to be enabled on all systems for correct update installation, Startup Disk control panel functioning, etc.
  • UnblockFsConnect: NO

    • Some firmware block partition handles by opening them in By Driver mode, which results in File System protocols being unable to install. Mainly relevant for HP systems when no drives are listed

# ReservedMemory

Used for exempting certain memory regions from OSes to use, mainly relevant for Sandy Bridge iGPUs or systems with faulty memory. Use of this quirk is not covered in this guide