Clover Settings Annotated

Do not blindly enable Clover options because some random poster recommended it. Always start with an empty configuration and enable only options that are needed. This page details the reasoning behind each entry in config.plist.

ACPI

	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Patches</key>
			<array>
				<dict>
					<key>Comment</key>
					<string>change SAT0 to SATA</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					U0FUMA==
					</data>
					<key>Replace</key>
					<data>
					U0FUQQ==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change HDAS to HDEF</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					SERBUw==
					</data>
					<key>Replace</key>
					<data>
					SERFRg==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change NTFY to XTFY</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					TlRGWQk=
					</data>
					<key>Replace</key>
					<data>
					WFRGWQk=
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change RWAK to XWAK</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					UldBSwk=
					</data>
					<key>Replace</key>
					<data>
					WFdBSwk=
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change XHC to XHC2 on TBDU</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					WEhDXwhfQURSAA==
					</data>
					<key>Replace</key>
					<data>
					WEhDMghfQURSAA==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change TBDU.XHC to TBDU.XHC2</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					VEJEVVhIQ18=
					</data>
					<key>Replace</key>
					<data>
					VEJEVVhIQzI=
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change PNP0C09 to PNPFFFF</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					QdAMCQ==
					</data>
					<key>Replace</key>
					<data>
					QdD//w==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change HS09._UPC to HS09.XUPC</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					SFMwORQMX1VQQw==
					</data>
					<key>Replace</key>
					<data>
					SFMwORQMWFVQQw==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change GFX0 to IGPU</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					R0ZYMA==
					</data>
					<key>Replace</key>
					<data>
					SUdQVQ==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change H_EC to EC</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					SF9FQw==
					</data>
					<key>Replace</key>
					<data>
					RUNfXw==
					</data>
				</dict>
			</array>
		</dict>

SAT0 patch fixes potential SATA compatibility issues (untested). HDEF is checked by AppleHDAController to identify a controller as "not GFX." The NTFY and RWAK patches are to fix TB3 hotplugging. The two patches to rename TBDU.XHC to TBDU.XHC2 are required for TB3 companion ports because they require a unique device name and XHC is already taken by the PCH XHCI controller. The XHC.GPEH patch redirects the USB hotplug events from the original SB.PCI0.XHC device (which we disable in a custom SSDT) to the PCH XHCI SB.PCI0.XHC device. We disable the PNP0C09 device which is recognized as the embedded-controller by OSX. It has to be disabled because the NUC has a "virtual" EC that ignores reads/writes to it and this confuses OSX (for example, if it sees there's an EC, it will try to write sleep/wake info to it). However, to enable USB power management, we still rename H_EC to EC even though we do not use the EC. The power management kext does not actually do anything hardware-wise, but it does set static limits for the USB controller to use. The HS09._UPC change allows us to redefine the _UPC method in the SDST in order for OSX to recogize the Wifi/BT card as internal (otherwise the port does not show up). Finally, the GFX0 to IGPU patch allows the graphics power management drivers to load for the Intel iGPU.

		<key>SSDT</key>
		<dict>
			<key>Generate</key>
			<dict>
				<key>PluginType</key>
				<true/>
			</dict>
		</dict>
	</dict>

This is needed to enable XCPM.

Boot

	<key>Arguments</key>
	<string>alcid=11 -disablegfxfirmware</string>
	<key>Boot</key>
	<dict>
		<key>NeverHibernate</key>
		<true/>
	</dict>
	<key>XMPDetection</key>
	<string>Yes</string>

The alcid argument is for AppleALC for our HDA fix. disablegfxfirmware is required for Intel iGPU to boot since Apple's iGPU firmware is not supported. Hiberation is not implemented so we make sure we do not accidently trip it. XMP detection is only useful for people who overclock their RAM.

Devices

	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(1,0)/Pci(0,0)</key>
			<dict>
				<key>device-id</key>
				<data>
				4GcAAA==
				</data>
			</dict>
			<key>PciRoot(0)/Pci(1,2)/Pci(0,0)</key>
			<dict>
				<key>name</key>
				<string>pci14e4,16bc</string>
			</dict>
			<key>PciRoot(0)/Pci(31,0)</key>
			<dict>
				<key>name</key>
				<string>pci8086,9cc1</string>
			</dict>
		</dict>
	</dict>

The first device-id patch chages the Vega M to be recognized as a Baffin GPU so the graphics accelerator can be enabled. The first name patch changes the device name for the SD card reader so it can be recognized by AppleSDHC. The second name patch makes AppleLPC get recognized on the LPC device (the driver does some non-critical power management).

Graphics

	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>
		<key>ig-platform-id</key>
		<string>0x59120003</string>
	</dict>

This enables the iGPU.

KernelAndKextPatches

	<key>KernelAndKextPatches</key>
	<dict>
		<key>KernelPm</key>
		<true/>
		<key>KernelToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha</string>
				<key>Disabled</key>
				<false/>
				<key>Find</key>
				<data>
				ILniAAAADzA=
				</data>
				<key>Replace</key>
				<data>
				ILniAAAAkJA=
				</data>
			</dict>
		</array>

These are needed for CPU power management. Both patch issues with a locked MSR 0xE2 (many motherboards including Intel NUC do this) in different places.

Last updated