Jump to content
jc84

10.11.5 El Capitan Install,Configuration Surface Pro 3 i5

4 posts in this topic

Recommended Posts

Last Updated 2016-June-20

 

OSX 10.11.5

This is what i have done so far to get my SP3 i5 256 working. Booting from SSD in USB3 Case as I am testing I do not want to mess with my Internal SP3 SSD.

 

The build in not perfect but works. still early days.

chat with us and share https://gitter.im/julianjc84/jc84_SP3_hookups

 

Updates Notes

I require the use of USBInjectAll.kext to fix the USBports for USB wifi adapter. Seems to only effect me with USB booting. OS,s installed on internal SSD seem to not have usb issue.

 

Issues:

  • minor video artifacts once system is booted below menu bar.
  • No Battery

 

What work and work great


Tools

 

 

Must have applications, the ones I recommend are as follows.

 

IORegistryExplorer 2.1- registry look up and because every other version saves corrupt files 

http://www.tonymacx86.com/attachments/audio/24086d1341545382-guide-how-make-copy-ioreg-ioregistryexplorer-slrid_v10.6.3.zip

 

MaciASL - rehabman edition for editing DSDT and SSDT APCI

https://bitbucket.org/RehabMan/acpica/downloads

 

iasl - decomplie DSDT and SSDT's from .aml to .dsl

https://bitbucket.org/RehabMan/acpica/downloads

 

ssdtPGen - generate powermanagment

https://github.com/Piker-Alpha/ssdtPRGen.sh

 

Pacifist - extract .pkg files and pull out the files you require with out installing

https://www.charlessoft.com/

 

Clover Configurator - to edit them clover.plist files

http://mackie100projects.altervista.org/download/

 

TextWrangler - to view some plist files

http://www.barebones.com/products/textwrangler/

 

 


Clover - Clover_v2.3k_r3424

 

 

Formatted the EFI as FAT32 - I don't know if you need to do this.

diskutil list
  
  #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk8
   1:                        EFI EFI                     209.7 MB   disk8s1
   2:                  Apple_HFS SSD1                    60.0 GB    disk8s2
   3:                  Apple_HFS SSD2-damagedOS          59.5 GB    disk8s3
newfs_msdos -F 32 -v EFI /dev/disk8s1 #formats disk8s1 as fat32

Clover Installer Settings

Install for UEFI booting Only

Install Clover in the ESP

Drivers64UEFI

  CsmVideoDxe-64.efi
  DataHubDxe-64.efi
  OsxAptioFixDrv-64.efi
  PartitionDxe-64.efi


Clover Configuration .plist

 

 

 
clover.plist text

Key values used for Intel 4400 for video QI QE. used in conjunction with fake FakePCIID_HD4600_HD4400.kext, FakePCIID.kext
<key>ig-platform-id</key>
        <string>0x0a260006</string>
<key>IntelGFX</key>

            <string>0x04128086</string>

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>FixRegions_10000000</key>
				<true/>
				<key>NewWay_80000000</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>-v dart=0 kext-dev-mode=1 rootless=0</string>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>SSD1</string>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>IntelGFX</key>
			<string>0x04128086</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>Inject</key>
			<true/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Language</key>
		<string>en:0</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<false/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<true/>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NvidiaSingle</key>
		<false/>
		<key>ig-platform-id</key>
		<string>0x0a260006</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Enable TRIM for SSD confirmed works 10.11</string>
				<key>Find</key>
				<data>
				QVBQTEUgU1NE
				</data>
				<key>Name</key>
				<string>IOAHCIBlockStorage</string>
				<key>Replace</key>
				<data>
				AAAAAAAAAAAA
				</data>
			</dict>
		</array>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>MLB</key>
		<string>C02032109R5DC771H</string>
		<key>ROM</key>
		<string>UseMacAddr0</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>05/24/13</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MBA61.88Z.0099.B04.1305241529</string>
		<key>Board-ID</key>
		<string>Mac-7DF21CB3ED6977E5</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>Air-Enclosure</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>10</string>
		<key>Family</key>
		<string>MacBook Air</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<true/>
		<key>ProductName</key>
		<string>MacBookAir6,2</string>
		<key>SerialNumber</key>
		<string>CK228A27F5V8</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

 

 


Clover as Images

 

 

 

 


DSDT and ssdt's

 

 

 

Using a DSDT.aml will break, SD card reader, touch voodooi2c, front camera, rear camera.

,

,

Exported DSDT from Clover boot menu with F4 (there is no feed back when generated except you see the files in EFI/EFI/CLOVER/APCI/origin

 

You will see a bunch of files. I only kept the following

 
//----
 
DSDT.aml
SSDT-0 sata.aml
SSDT-1 USB.aml
SSDT-2-custom CPU.aml
SSDT-7 GFX0.aml
 
SSDT-8-custom nullethernet.aml
 
DSDT.aml - main table
SSDT-0.aml - SATA 
SSDT-1.aml - USB
SSDT-2.aml - cpu based - not used after the decompile
SSDT-3.aml - cpu based - not used after the decompile
SSDT-7.aml - graphics
//-----
Drop all in a folder and run iasl https://bitbucket.org/RehabMan/acpica/downloads on them from terminal to decompile
copy iasl into /usr/bin
authenticate
cd to where the dsdt files are.
iasl -da -dl *.aml
still pumps out a few errors but over all good. i think only 3 unresolved.
if only i could make ref.txt i don't know how many variables :|
 
patches applied.
 
[sys] fix the _DSM in DSDT.dsl & SSDT-7.dsl
[igpu] Rename GFX0 to IGPU to the DSDT.dsl & SSDT-7.dsl
[igpu] brightness fix to the DSDT.dsl file only
brightness slider only works after I have change the display resolution. 
File Save as ACPI machine language binary makes .AML
Copy to: EFI/EFI/CLOVER/APCI/patched
 
CPU patch
curl -o ~/Library/ssdtPRGen.zip https://codeload.github.com/Piker-Alpha/ssdtPRGen.sh/zip/master
unzip -qu ~/Library/ssdtPRGen.zip -d ~/Library/
mv ~/Library/ssdtPRGen.sh-master ~/Library/ssdtPRGen
rm ~/Library/ssdtPRGen.zip

added a copy of dsdt.aml file to ~/Library/ssdtPRGen

ran

~/ssdtPRGen.sh

The only differences I noticed if you do not add the dsdt.aml Warnings will show and the cpu reference are \_SB instead of _PR_

WITH DSDT

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140926-64 [Oct 24 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Disassembly of iASL1qT1JT.aml, Sat Oct 17 15:10:51 2015
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000624 (1572)
 *     Revision         0x01
 *     Checksum         0x77
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20141107 (538185991)
 */
DefinitionBlock ("iASL1qT1JT.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj)
 
    Scope (\_PR.CPU0)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            Package (0x06)
            {
                0x0B54, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1D00, 
                0x1D00
            }, 
 
            Package (0x06)
            {
                0x0AF0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1C00, 
                0x1C00
            }, 
 
            Package (0x06)
            {
                0x0A8C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1B00, 
                0x1B00
            }, 
 
            Package (0x06)
            {
                0x0A28, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1A00, 
                0x1A00
            }, 
 
            Package (0x06)
            {
                0x09C4, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1900, 
                0x1900
            }, 
 
            Package (0x06)
            {
                0x0960, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1800, 
                0x1800
            }, 
 
            Package (0x06)
            {
                0x08FC, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1700, 
                0x1700
            }, 
 
            Package (0x06)
            {
                0x0898, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1600, 
                0x1600
            }, 
 
            Package (0x06)
            {
                0x0834, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1500, 
                0x1500
            }, 
 
            Package (0x06)
            {
                0x07D0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1400, 
                0x1400
            }, 
 
            Package (0x06)
            {
                0x076C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1300, 
                0x1300
            }, 
 
            Package (0x06)
            {
                0x0708, 
                0x36E1, 
                0x0A, 
                0x0A, 
                0x1200, 
                0x1200
            }, 
 
            Package (0x06)
            {
                0x06A4, 
                0x333D, 
                0x0A, 
                0x0A, 
                0x1100, 
                0x1100
            }, 
 
            Package (0x06)
            {
                0x0640, 
                0x2FAC, 
                0x0A, 
                0x0A, 
                0x1000, 
                0x1000
            }, 
 
            Package (0x06)
            {
                0x05DC, 
                0x2C2D, 
                0x0A, 
                0x0A, 
                0x0F00, 
                0x0F00
            }, 
 
            Package (0x06)
            {
                0x0578, 
                0x28C1, 
                0x0A, 
                0x0A, 
                0x0E00, 
                0x0E00
            }, 
 
            Package (0x06)
            {
                0x0514, 
                0x2567, 
                0x0A, 
                0x0A, 
                0x0D00, 
                0x0D00
            }, 
 
            Package (0x06)
            {
                0x04B0, 
                0x221F, 
                0x0A, 
                0x0A, 
                0x0C00, 
                0x0C00
            }, 
 
            Package (0x06)
            {
                0x044C, 
                0x1EE8, 
                0x0A, 
                0x0A, 
                0x0B00, 
                0x0B00
            }, 
 
            Package (0x06)
            {
                0x03E8, 
                0x1BC3, 
                0x0A, 
                0x0A, 
                0x0A00, 
                0x0A00
            }, 
 
            Package (0x06)
            {
                0x0384, 
                0x18B0, 
                0x0A, 
                0x0A, 
                0x0900, 
                0x0900
            }, 
 
            Package (0x06)
            {
                0x0320, 
                0x15AE, 
                0x0A, 
                0x0A, 
                0x0800, 
                0x0800
            }
        })
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
            Return (Package (0x06)
            {
                One, 
                0x04, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    Zero, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xCD, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x06, 
                    0xF5, 
                    0x015E
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x07, 
                    0xF5, 
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store ("Method CPU0._DSM Called", Debug)
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                     0x03                                             /* . */
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type", 
                One
            })
        }
    }
 
    Scope (\_PR.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU1.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
            Return (Package (0x05)
            {
                One, 
                0x03, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    0x03E8, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x02, 
                    0x94, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xC6, 
                    0xC8
                }
            })
        }
    }
 
    Scope (\_PR.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU2.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
 
    Scope (\_PR.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU3.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
}
 

 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj) 

WITHOUT DSDT - and wont load or give you pwr management

 

 

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140210-00 [Feb 10 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000036A (874)
 *     Revision         0x01
 *     Checksum         0x00
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20140210 (538182160)
 */
 
DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
    without
    External (\_SB.CPU0, DeviceObj)
    External (\_SB.CPU1, DeviceObj)
    External (\_SB.CPU2, DeviceObj)
    External (\_SB.CPU3, DeviceObj)
 
    Scope (\_SB.CPU0)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            /* High Frequency Modes (turbo) */
            Package (0x06) { 0x0B54, 0x003A98, 0x0A, 0x0A, 0x1D00, 0x1D00 },
            Package (0x06) { 0x0AF0, 0x003A98, 0x0A, 0x0A, 0x1C00, 0x1C00 },
            Package (0x06) { 0x0A8C, 0x003A98, 0x0A, 0x0A, 0x1B00, 0x1B00 },
            Package (0x06) { 0x0A28, 0x003A98, 0x0A, 0x0A, 0x1A00, 0x1A00 },
            Package (0x06) { 0x09C4, 0x003A98, 0x0A, 0x0A, 0x1900, 0x1900 },
            Package (0x06) { 0x0960, 0x003A98, 0x0A, 0x0A, 0x1800, 0x1800 },
            Package (0x06) { 0x08FC, 0x003A98, 0x0A, 0x0A, 0x1700, 0x1700 },
            Package (0x06) { 0x0898, 0x003A98, 0x0A, 0x0A, 0x1600, 0x1600 },
            Package (0x06) { 0x0834, 0x003A98, 0x0A, 0x0A, 0x1500, 0x1500 },
            Package (0x06) { 0x07D0, 0x003A98, 0x0A, 0x0A, 0x1400, 0x1400 },
            /* High Frequency Modes (non-turbo) */
            Package (0x06) { 0x076C, 0x003A98, 0x0A, 0x0A, 0x1300, 0x1300 },
            Package (0x06) { 0x0708, 0x0036E1, 0x0A, 0x0A, 0x1200, 0x1200 },
            Package (0x06) { 0x06A4, 0x00333D, 0x0A, 0x0A, 0x1100, 0x1100 },
            Package (0x06) { 0x0640, 0x002FAC, 0x0A, 0x0A, 0x1000, 0x1000 },
            Package (0x06) { 0x05DC, 0x002C2D, 0x0A, 0x0A, 0x0F00, 0x0F00 },
            Package (0x06) { 0x0578, 0x0028C1, 0x0A, 0x0A, 0x0E00, 0x0E00 },
            Package (0x06) { 0x0514, 0x002567, 0x0A, 0x0A, 0x0D00, 0x0D00 },
            Package (0x06) { 0x04B0, 0x00221F, 0x0A, 0x0A, 0x0C00, 0x0C00 },
            Package (0x06) { 0x044C, 0x001EE8, 0x0A, 0x0A, 0x0B00, 0x0B00 },
            Package (0x06) { 0x03E8, 0x001BC3, 0x0A, 0x0A, 0x0A00, 0x0A00 },
            Package (0x06) { 0x0384, 0x0018B0, 0x0A, 0x0A, 0x0900, 0x0900 },
            /* Low Frequency Mode */
            Package (0x06) { 0x0320, 0x0015AE, 0x0A, 0x0A, 0x0800, 0x0800 }
        })
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
 
            /* Low Power Modes for CPU0 */
            Return (Package (0x06)
            {
                One,
                0x04,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    Zero,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xCD,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x06,
                    0xF5,
                    0x015E
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x07,
                    0xF5,
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)
        {
            Store ("Method CPU0._DSM Called", Debug)
 
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type",
                One
            })
        }
    }
 
    Scope (\_SB.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU1.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
 
            /* Low Power Modes for CPU1 */
            Return (Package (0x05)
            {
                One,
                0x03,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    0x03E8,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x02,
                    0x94,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xC6,
                    0xC8
                }
            })
        }
    }
 
    Scope (\_SB.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU2.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
 
    Scope (\_SB.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU3.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
}
 

 

 

External (\_SB.CPU0, DeviceObj)
External (\_SB.CPU1, DeviceObj)
External (\_SB.CPU2, DeviceObj)
External (\_SB.CPU3, DeviceObj)

DSDTs used and how they came about.
//----- 
DSDT.aml - from the clover f4 export
SSDT-0.aml - sata
SSDT-2.aml - cpu saved output generated with ssdtPRGen.sh script in conjunction with the above dsdt
SSDT-7.aml - graphics from clover f4 export with igup patched above
SSDT-8.aml - added for en0 Ethernet ID used with NullEthernet.kext (more info in kext section)
//-----


.kext used

Kext installed
EFI/EFI/CLOVER/kext/10.11
 
FakePCIID_Intel_HD_Graphics.kext - video from https://bitbucket.org/RehabMan/os-x-fake-pci-id/downloads
FakePCIID.kext - link above
 
FakeSMC.kext - version 6.16.1372 was it http://sourceforge.net/projects/hwsensors/
 
NullEthernet.kext - required for iMessage(not tested yet). NullEthernet requires injection: using SSDTmethod add with ssdt-rmne.aml renamed to SSDT-8.aml for loading the en0. The physical mac address supplied in the SSDT!.
check that en0 is en0 with IORegistryExplorer, You may need to delete networkinginterfaces.plist from /Library/Preferences/SystemConfiguration and reboot, I had to delete as it was en2 will all the testing and changes i have been doing.
Interesting. when I use NullEthernet I get video artifacts, applying the 9mb azul patch seems to have no effect.
 
VoodooHDA.kext - audio, built in.
 
-- // for wifi to work i need to use RehabMan-USBInjectAll
USBInjectAll.kext else i get usb crashes.
RtWlanU.kext - USB wifi for the EW-7811un wifi dongle
 
SurFacePro 4 Type Cover works out of the box on SurfacePro 3, however single touch only on track pad.


Touch - Single Input User Environment

as the DSDT file is messy, I2C only seems to pick up the touch with out a dsdt, the underdevelopment kext work pretty good.
https://www.youtube.com/watch?v=1eSbTCgJP24 - this video is dated and old 100ms delay. You should really try the kext bellow.
http://monstersoft.com/sp3/VoodooI2C.kext.5ms.zip Touch has never been so good in so long. Single Input only.


Battery Fixes - incomplete, HELP

 

 

learn more here: https://github.com/RehabMan/OS-X-ACPI-Battery-Driver

too complex, maybe you can help? ? ?

some background reading here to assist http://www.tonymacx86.com/el-capitan-laptop-support/116102-guide-how-patch-dsdt-working-battery-status.html

 

The Code so far with so many errors and very incomplete. totally wrong *(*Y&^%&

 

 

#Maintained by: RehabMan for: Laptop Patches
#battery_Surface-Pro-v3.txt

# created by JULIANJC84 2015-10-25

# works for:
# Microsoft Surface Pro 3

into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized)\n
{\n
	Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
}\n
end;

into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
    Store(Arg3, Local0)\n
    Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
    Return(Local0)\n
}\n
end;

# RECB READ EC BUFFER
# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert 
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;

into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
// Arg2 - value to write\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

# 32-bit REGISTERS BATTERY 0
# ONLY ONE USED BY FBIF
into device label EC0 code_regex (B0SN),(\s+32) replace_matched begin 0SN0,8, 0SN1,8, 0SN2,8, 0SN3,8//%1%2 end; # VERIFIED
# FIX 32-bit METHODS
into method label FBIF code_regex \(\^\^SBRG\.EC0\.B0SN, replaceall_matched begin B1B4(^^SBRG.EC0.0SN0,^^SBRG.EC0.0SN1,^^SBRG.EC0.0SN2,^^SBRG.EC0.0SN3), end; # VERIFIED
# FIX 64,48,96 METHODS
into device label EC0 code_regex (B0DN,)\s+(64) replace_matched begin 0DNX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0CM,)\s+(48) replace_matched begin 0CMX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0MN,)\s+(96) replace_matched begin 0MNX,%2,//%1%2 end; #VERIFIED
# FIX REGISTERS 64,48,96
into method label FBIF code_regex B0DN\), replace_matched begin WECB(0x81,64,0DNX), end; # 64 BIT VERIFIED
into method label FBIF code_regex B0CM\), replace_matched begin WECB(0x89,48,0CMX), end; # 48 BIT VERIFIED
into method label FBIF code_regex B0MN, replace_matched begin WECB(0x75,96,0MNX), end; # 96 BIT VERIFIED

# 16-BIT REGISTERS BAT0
into device label EC0 code_regex (B0VL,)\s+(16,) replace_matched begin 0VL0,8,0VL1,8,//%1%2 end; # BVO1 VERIFIED
into device label EC0 code_regex (B0CR,)\s+(16,) replace_matched begin 0CR0,8,0CR1,8,//%1%2 end; # BCR1 VERIFIED
into device label EC0 code_regex (B0RC,)\s+(16,) replace_matched begin 0RC0,8,0RC1,8,//%1%2 end; # BRC1 FBIF VERIFIED
into device label EC0 code_regex (B0FC,)\s+(16,) replace_matched begin 0FC0,8,0FC1,8,//%1%2 end; # BIF2 VERIFIED
into device label EC0 code_regex (B0CC,)\s+(16,) replace_matched begin 0CC0,8,0CC1,8,//%1%2 end; # FBIF VERIFIED
into device label EC0 code_regex (B0DC,)\s+(16,) replace_matched begin 0DC0,8,0DC1,8,//%1%2 end; # BIF1 VERIFIED
into device label EC0 code_regex (B0DV,)\s+(16,) replace_matched begin 0DV0,8,0DV1,8,//%1%2 end; # BIF4 VERIFIED

into device label EC0 code_regex (B0AH,)\s+(16,) replace_matched begin 0AH0,8,0AH1,8,//%1%2 end; # BIF4 VERIFIED

# FIX 16-bit METHODS BAT0
into method label BVO1 code_regex \(B0VL, replaceall_matched begin (B1B2(0VL0,0VL1), end; # VERIFIED
into method label BCR1 code_regex \(B0CR, replaceall_matched begin (B1B2(0CR0,0CR1), end; # VERIFIED
into method label BRC1 code_regex \(B0RC, replaceall_matched begin (B1B2(0RC0,0RC1), end; # VERIFIED

into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0RC, replace_matched begin (B1B2(^^SBRG.EC0.0RC0,^^SBRG.EC0.0RC1), end; # VERIFIED 16 BIT
into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0CC, replace_matched begin (B1B2(^^SBRG.EC0.0CC0,^^SBRG.EC0.0CC1), end; # VERIFIED 16 BIT

into method label BIF1 code_regex \(B0DC, replaceall_matched begin (B1B2(0DC0,0DC1), end;
into method label BIF2 code_regex \(B0FC, replaceall_matched begin (B1B2(0FC0,0FC1), end;
into method label BIF4 code_regex \(B0DV, replaceall_matched begin (B1B2(0DV0,0DV1), end;

into method label _BTP code_regex \(Arg0,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (Arg0, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;
into method label _BTP code_regex \(0x05,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (0x05, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;

# disable BAT1 device
into method label _STA parent_label BAT1 replace_content begin Return (Zero) end;






# // - - Surface Pro 3 Hex Offset Calculation - - \\
#Offsets are in bytes (8bits make 1 Byte)
#Offset then written in hex16
#Convert all lines to bits then to bytes then to hex

#Offset (0x53),  83bytes 83*8 = 664bits staring point (now we are in bits)
#B0TP,   16, 	83bytes 83*8 = 664bits staring point (now we are in bits)
#B0VL,   16, 	664+16 = 680bits
#B0CR,   16, 	680+16 = 696bits
#B0AC,   16,	696+16 = 712bits
#B0ME,   16,	712+16 = 728bits
#B0RS,   16, 	728+16=744bits
#B0RC,   16, 	774+16=760bits
#B0FC,   16, 	760+16=776bits
#B0MC,   16, 	776+16=792bits
#B0MV,   16, 	792+16=808bits
#B0ST,   16, 	808+16=824bits
#B0CC,   16, 	824+16=840bits
#B0DC,   16, 	840+16=856bits
#B0DV,   16, 	856+16=872bits
#B0SI,   16, 	872+16=888bits
#B0SN,   32, 	888+16=904bits
#B0MN,   96, 	904+32=936/8 = 0x75
#B0DN,   64, 	936+96=1032/8 =  129 = 0x81
#B0CM,   48, 	1032+64=1096/8 = 137 = 0x89
#B0MA,   8, 	1096+48=1144/8 = 143 =0x8f 

 

 

 

 

Share this post


Link to post
Share on other sites
Advertisement

Last Updated 2016-June-20

 

OSX 10.11.5

This is what i have done so far to get my SP3 i5 256 working. Booting from SSD in USB3 Case as I am testing I do not want to mess with my Internal SP3 SSD.

 

The build in not perfect but works. still early days.

chat with us and share https://gitter.im/julianjc84/jc84_SP3_hookups

 

Updates Notes

I require the use of USBInjectAll.kext to fix the USBports for USB wifi adapter. Seems to only effect me with USB booting. OS,s installed on internal SSD seem to not have usb issue.

 

Issues:

  • minor video artifacts once system is booted below menu bar.
  • No Battery

 

What work and work great


Tools

 

 

Must have applications, the ones I recommend are as follows.

 

IORegistryExplorer 2.1- registry look up and because every other version saves corrupt files 

http://www.tonymacx86.com/attachments/audio/24086d1341545382-guide-how-make-copy-ioreg-ioregistryexplorer-slrid_v10.6.3.zip

 

MaciASL - rehabman edition for editing DSDT and SSDT APCI

https://bitbucket.org/RehabMan/acpica/downloads

 

iasl - decomplie DSDT and SSDT's from .aml to .dsl

https://bitbucket.org/RehabMan/acpica/downloads

 

ssdtPGen - generate powermanagment

https://github.com/Piker-Alpha/ssdtPRGen.sh

 

Pacifist - extract .pkg files and pull out the files you require with out installing

https://www.charlessoft.com/

 

Clover Configurator - to edit them clover.plist files

http://mackie100projects.altervista.org/download/

 

TextWrangler - to view some plist files

http://www.barebones.com/products/textwrangler/

 

 


Clover - Clover_v2.3k_r3424

 

 

Formatted the EFI as FAT32 - I don't know if you need to do this.

diskutil list
  
  #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk8
   1:                        EFI EFI                     209.7 MB   disk8s1
   2:                  Apple_HFS SSD1                    60.0 GB    disk8s2
   3:                  Apple_HFS SSD2-damagedOS          59.5 GB    disk8s3
newfs_msdos -F 32 -v EFI /dev/disk8s1 #formats disk8s1 as fat32

Clover Installer Settings

Install for UEFI booting Only

Install Clover in the ESP

Drivers64UEFI

  CsmVideoDxe-64.efi
  DataHubDxe-64.efi
  OsxAptioFixDrv-64.efi
  PartitionDxe-64.efi


Clover Configuration .plist

 

 

 
clover.plist text

Key values used for Intel 4400 for video QI QE. used in conjunction with fake FakePCIID_HD4600_HD4400.kext, FakePCIID.kext
<key>ig-platform-id</key>
        <string>0x0a260006</string>
<key>IntelGFX</key>

            <string>0x04128086</string>

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>FixRegions_10000000</key>
				<true/>
				<key>NewWay_80000000</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>-v dart=0 kext-dev-mode=1 rootless=0</string>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>SSD1</string>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>IntelGFX</key>
			<string>0x04128086</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>Inject</key>
			<true/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Language</key>
		<string>en:0</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<false/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<true/>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NvidiaSingle</key>
		<false/>
		<key>ig-platform-id</key>
		<string>0x0a260006</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Enable TRIM for SSD confirmed works 10.11</string>
				<key>Find</key>
				<data>
				QVBQTEUgU1NE
				</data>
				<key>Name</key>
				<string>IOAHCIBlockStorage</string>
				<key>Replace</key>
				<data>
				AAAAAAAAAAAA
				</data>
			</dict>
		</array>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>MLB</key>
		<string>C02032109R5DC771H</string>
		<key>ROM</key>
		<string>UseMacAddr0</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>05/24/13</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MBA61.88Z.0099.B04.1305241529</string>
		<key>Board-ID</key>
		<string>Mac-7DF21CB3ED6977E5</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>Air-Enclosure</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>10</string>
		<key>Family</key>
		<string>MacBook Air</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<true/>
		<key>ProductName</key>
		<string>MacBookAir6,2</string>
		<key>SerialNumber</key>
		<string>CK228A27F5V8</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

 

 


Clover as Images

 

 

 

 


DSDT and ssdt's

 

 

 

Using a DSDT.aml will break, SD card reader, touch voodooi2c, front camera, rear camera.

,

,

Exported DSDT from Clover boot menu with F4 (there is no feed back when generated except you see the files in EFI/EFI/CLOVER/APCI/origin

 

You will see a bunch of files. I only kept the following

 
//----
 
DSDT.aml
SSDT-0 sata.aml
SSDT-1 USB.aml
SSDT-2-custom CPU.aml
SSDT-7 GFX0.aml
 
SSDT-8-custom nullethernet.aml
 
DSDT.aml - main table
SSDT-0.aml - SATA 
SSDT-1.aml - USB
SSDT-2.aml - cpu based - not used after the decompile
SSDT-3.aml - cpu based - not used after the decompile
SSDT-7.aml - graphics
//-----
Drop all in a folder and run iasl https://bitbucket.org/RehabMan/acpica/downloads on them from terminal to decompile
copy iasl into /usr/bin
authenticate
cd to where the dsdt files are.
iasl -da -dl *.aml
still pumps out a few errors but over all good. i think only 3 unresolved.
if only i could make ref.txt i don't know how many variables :|
 
patches applied.
 
[sys] fix the _DSM in DSDT.dsl & SSDT-7.dsl

[igpu] Rename GFX0 to IGPU to the DSDT.dsl & SSDT-7.dsl

[igpu] brightness fix to the DSDT.dsl file only
brightness slider only works after I have change the display resolution. 
File Save as ACPI machine language binary makes .AML
Copy to: EFI/EFI/CLOVER/APCI/patched
 
CPU patch
curl -o ~/Library/ssdtPRGen.zip https://codeload.github.com/Piker-Alpha/ssdtPRGen.sh/zip/master
unzip -qu ~/Library/ssdtPRGen.zip -d ~/Library/
mv ~/Library/ssdtPRGen.sh-master ~/Library/ssdtPRGen
rm ~/Library/ssdtPRGen.zip

added a copy of dsdt.aml file to ~/Library/ssdtPRGen

ran

~/ssdtPRGen.sh

The only differences I noticed if you do not add the dsdt.aml Warnings will show and the cpu reference are \_SB instead of _PR_

WITH DSDT

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140926-64 [Oct 24 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Disassembly of iASL1qT1JT.aml, Sat Oct 17 15:10:51 2015
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000624 (1572)
 *     Revision         0x01
 *     Checksum         0x77
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20141107 (538185991)
 */
DefinitionBlock ("iASL1qT1JT.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj)
 
    Scope (\_PR.CPU0)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            Package (0x06)
            {
                0x0B54, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1D00, 
                0x1D00
            }, 
 
            Package (0x06)
            {
                0x0AF0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1C00, 
                0x1C00
            }, 
 
            Package (0x06)
            {
                0x0A8C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1B00, 
                0x1B00
            }, 
 
            Package (0x06)
            {
                0x0A28, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1A00, 
                0x1A00
            }, 
 
            Package (0x06)
            {
                0x09C4, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1900, 
                0x1900
            }, 
 
            Package (0x06)
            {
                0x0960, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1800, 
                0x1800
            }, 
 
            Package (0x06)
            {
                0x08FC, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1700, 
                0x1700
            }, 
 
            Package (0x06)
            {
                0x0898, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1600, 
                0x1600
            }, 
 
            Package (0x06)
            {
                0x0834, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1500, 
                0x1500
            }, 
 
            Package (0x06)
            {
                0x07D0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1400, 
                0x1400
            }, 
 
            Package (0x06)
            {
                0x076C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1300, 
                0x1300
            }, 
 
            Package (0x06)
            {
                0x0708, 
                0x36E1, 
                0x0A, 
                0x0A, 
                0x1200, 
                0x1200
            }, 
 
            Package (0x06)
            {
                0x06A4, 
                0x333D, 
                0x0A, 
                0x0A, 
                0x1100, 
                0x1100
            }, 
 
            Package (0x06)
            {
                0x0640, 
                0x2FAC, 
                0x0A, 
                0x0A, 
                0x1000, 
                0x1000
            }, 
 
            Package (0x06)
            {
                0x05DC, 
                0x2C2D, 
                0x0A, 
                0x0A, 
                0x0F00, 
                0x0F00
            }, 
 
            Package (0x06)
            {
                0x0578, 
                0x28C1, 
                0x0A, 
                0x0A, 
                0x0E00, 
                0x0E00
            }, 
 
            Package (0x06)
            {
                0x0514, 
                0x2567, 
                0x0A, 
                0x0A, 
                0x0D00, 
                0x0D00
            }, 
 
            Package (0x06)
            {
                0x04B0, 
                0x221F, 
                0x0A, 
                0x0A, 
                0x0C00, 
                0x0C00
            }, 
 
            Package (0x06)
            {
                0x044C, 
                0x1EE8, 
                0x0A, 
                0x0A, 
                0x0B00, 
                0x0B00
            }, 
 
            Package (0x06)
            {
                0x03E8, 
                0x1BC3, 
                0x0A, 
                0x0A, 
                0x0A00, 
                0x0A00
            }, 
 
            Package (0x06)
            {
                0x0384, 
                0x18B0, 
                0x0A, 
                0x0A, 
                0x0900, 
                0x0900
            }, 
 
            Package (0x06)
            {
                0x0320, 
                0x15AE, 
                0x0A, 
                0x0A, 
                0x0800, 
                0x0800
            }
        })
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
            Return (Package (0x06)
            {
                One, 
                0x04, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    Zero, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xCD, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x06, 
                    0xF5, 
                    0x015E
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x07, 
                    0xF5, 
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store ("Method CPU0._DSM Called", Debug)
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                     0x03                                             /* . */
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type", 
                One
            })
        }
    }
 
    Scope (\_PR.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU1.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
            Return (Package (0x05)
            {
                One, 
                0x03, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    0x03E8, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x02, 
                    0x94, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xC6, 
                    0xC8
                }
            })
        }
    }
 
    Scope (\_PR.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU2.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
 
    Scope (\_PR.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU3.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
}
 

 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj) 

WITHOUT DSDT - and wont load or give you pwr management

 

 

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140210-00 [Feb 10 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000036A (874)
 *     Revision         0x01
 *     Checksum         0x00
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20140210 (538182160)
 */
 
DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
    without
    External (\_SB.CPU0, DeviceObj)
    External (\_SB.CPU1, DeviceObj)
    External (\_SB.CPU2, DeviceObj)
    External (\_SB.CPU3, DeviceObj)
 
    Scope (\_SB.CPU0)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            /* High Frequency Modes (turbo) */
            Package (0x06) { 0x0B54, 0x003A98, 0x0A, 0x0A, 0x1D00, 0x1D00 },
            Package (0x06) { 0x0AF0, 0x003A98, 0x0A, 0x0A, 0x1C00, 0x1C00 },
            Package (0x06) { 0x0A8C, 0x003A98, 0x0A, 0x0A, 0x1B00, 0x1B00 },
            Package (0x06) { 0x0A28, 0x003A98, 0x0A, 0x0A, 0x1A00, 0x1A00 },
            Package (0x06) { 0x09C4, 0x003A98, 0x0A, 0x0A, 0x1900, 0x1900 },
            Package (0x06) { 0x0960, 0x003A98, 0x0A, 0x0A, 0x1800, 0x1800 },
            Package (0x06) { 0x08FC, 0x003A98, 0x0A, 0x0A, 0x1700, 0x1700 },
            Package (0x06) { 0x0898, 0x003A98, 0x0A, 0x0A, 0x1600, 0x1600 },
            Package (0x06) { 0x0834, 0x003A98, 0x0A, 0x0A, 0x1500, 0x1500 },
            Package (0x06) { 0x07D0, 0x003A98, 0x0A, 0x0A, 0x1400, 0x1400 },
            /* High Frequency Modes (non-turbo) */
            Package (0x06) { 0x076C, 0x003A98, 0x0A, 0x0A, 0x1300, 0x1300 },
            Package (0x06) { 0x0708, 0x0036E1, 0x0A, 0x0A, 0x1200, 0x1200 },
            Package (0x06) { 0x06A4, 0x00333D, 0x0A, 0x0A, 0x1100, 0x1100 },
            Package (0x06) { 0x0640, 0x002FAC, 0x0A, 0x0A, 0x1000, 0x1000 },
            Package (0x06) { 0x05DC, 0x002C2D, 0x0A, 0x0A, 0x0F00, 0x0F00 },
            Package (0x06) { 0x0578, 0x0028C1, 0x0A, 0x0A, 0x0E00, 0x0E00 },
            Package (0x06) { 0x0514, 0x002567, 0x0A, 0x0A, 0x0D00, 0x0D00 },
            Package (0x06) { 0x04B0, 0x00221F, 0x0A, 0x0A, 0x0C00, 0x0C00 },
            Package (0x06) { 0x044C, 0x001EE8, 0x0A, 0x0A, 0x0B00, 0x0B00 },
            Package (0x06) { 0x03E8, 0x001BC3, 0x0A, 0x0A, 0x0A00, 0x0A00 },
            Package (0x06) { 0x0384, 0x0018B0, 0x0A, 0x0A, 0x0900, 0x0900 },
            /* Low Frequency Mode */
            Package (0x06) { 0x0320, 0x0015AE, 0x0A, 0x0A, 0x0800, 0x0800 }
        })
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
 
            /* Low Power Modes for CPU0 */
            Return (Package (0x06)
            {
                One,
                0x04,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    Zero,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xCD,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x06,
                    0xF5,
                    0x015E
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x07,
                    0xF5,
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)
        {
            Store ("Method CPU0._DSM Called", Debug)
 
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type",
                One
            })
        }
    }
 
    Scope (\_SB.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU1.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
 
            /* Low Power Modes for CPU1 */
            Return (Package (0x05)
            {
                One,
                0x03,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    0x03E8,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x02,
                    0x94,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xC6,
                    0xC8
                }
            })
        }
    }
 
    Scope (\_SB.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU2.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
 
    Scope (\_SB.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU3.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
}
 

 

 

External (\_SB.CPU0, DeviceObj)
External (\_SB.CPU1, DeviceObj)
External (\_SB.CPU2, DeviceObj)
External (\_SB.CPU3, DeviceObj)

DSDTs used and how they came about.
//----- 
DSDT.aml - from the clover f4 export
SSDT-0.aml - sata
SSDT-2.aml - cpu saved output generated with ssdtPRGen.sh script in conjunction with the above dsdt
SSDT-7.aml - graphics from clover f4 export with igup patched above
SSDT-8.aml - added for en0 Ethernet ID used with NullEthernet.kext (more info in kext section)
//-----


.kext used

Kext installed
EFI/EFI/CLOVER/kext/10.11
 
FakePCIID_Intel_HD_Graphics.kext - video from https://bitbucket.org/RehabMan/os-x-fake-pci-id/downloads
FakePCIID.kext - link above
 
FakeSMC.kext - version 6.16.1372 was it http://sourceforge.net/projects/hwsensors/
 
NullEthernet.kext - required for iMessage(not tested yet). NullEthernet requires injection: using SSDTmethod add with ssdt-rmne.aml renamed to SSDT-8.aml for loading the en0. The physical mac address supplied in the SSDT!.
check that en0 is en0 with IORegistryExplorer, You may need to delete networkinginterfaces.plist from /Library/Preferences/SystemConfiguration and reboot, I had to delete as it was en2 will all the testing and changes i have been doing.
Interesting. when I use NullEthernet I get video artifacts, applying the 9mb azul patch seems to have no effect.
 
VoodooHDA.kext - audio, built in.
 
-- // for wifi to work i need to use RehabMan-USBInjectAll
USBInjectAll.kext else i get usb crashes.
RtWlanU.kext - USB wifi for the EW-7811un wifi dongle
 
SurFacePro 4 Type Cover works out of the box on SurfacePro 3, however single touch only on track pad.


Touch - Single Input User Environment

as the DSDT file is messy, I2C only seems to pick up the touch with out a dsdt, the underdevelopment kext work pretty good.
https://www.youtube.com/watch?v=1eSbTCgJP24 - this video is dated and old 100ms delay. You should really try the kext bellow.
http://monstersoft.com/sp3/VoodooI2C.kext.5ms.zip Touch has never been so good in so long. Single Input only.


Battery Fixes - incomplete, HELP

 

 

learn more here: https://github.com/RehabMan/OS-X-ACPI-Battery-Driver

too complex, maybe you can help? ? ?

some background reading here to assist http://www.tonymacx86.com/el-capitan-laptop-support/116102-guide-how-patch-dsdt-working-battery-status.html

 

The Code so far with so many errors and very incomplete. totally wrong *(*Y&^%&

 

 

#Maintained by: RehabMan for: Laptop Patches
#battery_Surface-Pro-v3.txt

# created by JULIANJC84 2015-10-25

# works for:
# Microsoft Surface Pro 3

into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized)\n
{\n
	Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
}\n
end;

into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
    Store(Arg3, Local0)\n
    Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
    Return(Local0)\n
}\n
end;

# RECB READ EC BUFFER
# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert 
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;

into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
// Arg2 - value to write\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

# 32-bit REGISTERS BATTERY 0
# ONLY ONE USED BY FBIF
into device label EC0 code_regex (B0SN),(\s+32) replace_matched begin 0SN0,8, 0SN1,8, 0SN2,8, 0SN3,8//%1%2 end; # VERIFIED
# FIX 32-bit METHODS
into method label FBIF code_regex \(\^\^SBRG\.EC0\.B0SN, replaceall_matched begin B1B4(^^SBRG.EC0.0SN0,^^SBRG.EC0.0SN1,^^SBRG.EC0.0SN2,^^SBRG.EC0.0SN3), end; # VERIFIED
# FIX 64,48,96 METHODS
into device label EC0 code_regex (B0DN,)\s+(64) replace_matched begin 0DNX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0CM,)\s+(48) replace_matched begin 0CMX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0MN,)\s+(96) replace_matched begin 0MNX,%2,//%1%2 end; #VERIFIED
# FIX REGISTERS 64,48,96
into method label FBIF code_regex B0DN\), replace_matched begin WECB(0x81,64,0DNX), end; # 64 BIT VERIFIED
into method label FBIF code_regex B0CM\), replace_matched begin WECB(0x89,48,0CMX), end; # 48 BIT VERIFIED
into method label FBIF code_regex B0MN, replace_matched begin WECB(0x75,96,0MNX), end; # 96 BIT VERIFIED

# 16-BIT REGISTERS BAT0
into device label EC0 code_regex (B0VL,)\s+(16,) replace_matched begin 0VL0,8,0VL1,8,//%1%2 end; # BVO1 VERIFIED
into device label EC0 code_regex (B0CR,)\s+(16,) replace_matched begin 0CR0,8,0CR1,8,//%1%2 end; # BCR1 VERIFIED
into device label EC0 code_regex (B0RC,)\s+(16,) replace_matched begin 0RC0,8,0RC1,8,//%1%2 end; # BRC1 FBIF VERIFIED
into device label EC0 code_regex (B0FC,)\s+(16,) replace_matched begin 0FC0,8,0FC1,8,//%1%2 end; # BIF2 VERIFIED
into device label EC0 code_regex (B0CC,)\s+(16,) replace_matched begin 0CC0,8,0CC1,8,//%1%2 end; # FBIF VERIFIED
into device label EC0 code_regex (B0DC,)\s+(16,) replace_matched begin 0DC0,8,0DC1,8,//%1%2 end; # BIF1 VERIFIED
into device label EC0 code_regex (B0DV,)\s+(16,) replace_matched begin 0DV0,8,0DV1,8,//%1%2 end; # BIF4 VERIFIED

into device label EC0 code_regex (B0AH,)\s+(16,) replace_matched begin 0AH0,8,0AH1,8,//%1%2 end; # BIF4 VERIFIED

# FIX 16-bit METHODS BAT0
into method label BVO1 code_regex \(B0VL, replaceall_matched begin (B1B2(0VL0,0VL1), end; # VERIFIED
into method label BCR1 code_regex \(B0CR, replaceall_matched begin (B1B2(0CR0,0CR1), end; # VERIFIED
into method label BRC1 code_regex \(B0RC, replaceall_matched begin (B1B2(0RC0,0RC1), end; # VERIFIED

into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0RC, replace_matched begin (B1B2(^^SBRG.EC0.0RC0,^^SBRG.EC0.0RC1), end; # VERIFIED 16 BIT
into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0CC, replace_matched begin (B1B2(^^SBRG.EC0.0CC0,^^SBRG.EC0.0CC1), end; # VERIFIED 16 BIT

into method label BIF1 code_regex \(B0DC, replaceall_matched begin (B1B2(0DC0,0DC1), end;
into method label BIF2 code_regex \(B0FC, replaceall_matched begin (B1B2(0FC0,0FC1), end;
into method label BIF4 code_regex \(B0DV, replaceall_matched begin (B1B2(0DV0,0DV1), end;

into method label _BTP code_regex \(Arg0,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (Arg0, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;
into method label _BTP code_regex \(0x05,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (0x05, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;

# disable BAT1 device
into method label _STA parent_label BAT1 replace_content begin Return (Zero) end;






# // - - Surface Pro 3 Hex Offset Calculation - - \\
#Offsets are in bytes (8bits make 1 Byte)
#Offset then written in hex16
#Convert all lines to bits then to bytes then to hex

#Offset (0x53),  83bytes 83*8 = 664bits staring point (now we are in bits)
#B0TP,   16, 	83bytes 83*8 = 664bits staring point (now we are in bits)
#B0VL,   16, 	664+16 = 680bits
#B0CR,   16, 	680+16 = 696bits
#B0AC,   16,	696+16 = 712bits
#B0ME,   16,	712+16 = 728bits
#B0RS,   16, 	728+16=744bits
#B0RC,   16, 	774+16=760bits
#B0FC,   16, 	760+16=776bits
#B0MC,   16, 	776+16=792bits
#B0MV,   16, 	792+16=808bits
#B0ST,   16, 	808+16=824bits
#B0CC,   16, 	824+16=840bits
#B0DC,   16, 	840+16=856bits
#B0DV,   16, 	856+16=872bits
#B0SI,   16, 	872+16=888bits
#B0SN,   32, 	888+16=904bits
#B0MN,   96, 	904+32=936/8 = 0x75
#B0DN,   64, 	936+96=1032/8 =  129 = 0x81
#B0CM,   48, 	1032+64=1096/8 = 137 = 0x89
#B0MA,   8, 	1096+48=1144/8 = 143 =0x8f 

 

 

 

 

can you please tell me how to install touch driver

when i try to load VoodooI2C.kext with terminal by sudo kextload VoodooI2C.kext

i get this error(it is present in the location)

/Users/ashwin/VoodooI2C.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8).

 

also is there a way to have scrolling with touchpad like on windows

thank you

Share this post


Link to post
Share on other sites
On the surface pro hackintosh the only thing not working for the community is 
the internal wifi. I found this page for Linux kernal driver database 
suggesting that support for the 88w8797 was added.

Marvell WiFi-Ex Driver for USB8797 found in drivers/net/wireless/mwifiex/Kconfig

The configuration item CONFIG_MWIFIEX_USB:

prompt: Marvell WiFi-Ex Driver for USB8797
type: tristate
depends on: CONFIG_MWIFIEX && CONFIG_USB
defined in drivers/net/wireless/mwifiex/Kconfig
found in Linux kernels: 3.5–3.13, 3.13+HEAD
modules built: mwifiex_usb
Help text

This adds support for wireless adapters based on Marvell Avastar 88W8797 
chipset with USB interface.

If you choose to build it as a module, it will be called mwifiex_usb.

The link can be found here:

http://cateee.net/lkddb/web-lkddb/MWIFIEX_USB.html

Like I mentioned, this is the only thing from preventing the surface pro from 
being 100 percent hackintosh.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Lorkiyn
      Hey,
       
      so I just can't get my trackpad working. I'm running Catalina with OC (v0.5.8 debug) on my Gigabyte Aero 15x9.
      I followed the OC vanilla laptop guide and created a GPI0 SSDT fitting to my device name but it didn't help. I have VoodooI2C and VoodooI2CHID in my kexts folder because the publisher of my trackpad is "Microsoft" accordingly to Windows.
      I have stumbled across the DSDT patches from VoodooI2C, but since you can't load your patched DSDT on OC I didn't know what to do with them.
       
      According to VoodooI2C-HID satellite description you need a "PNP0C50" trackpad, which mine is.
       
      I noticed that there are some messages during, boot from Voodoo-Something, after selecting boot device in OC. But these messages are not logged in any log file I can find. So I don't know what exactly they are saying.
       
      Thank you in advance
       
      EFI.zip
      opencore-2020-05-31-141607.txt
      Windows_device_manager.tar
    • By MaLd0n
      -Donations with PayPal
      https://tinyurl.com/r2bvzm7
       
      -Donations with Bitcoin
      33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3
       
      -Donations with PicPay 
      @danielnmaldonado
        Install MacOS with Olarila Image, Step by Step, Install and Post Install
      https://www.olarila.com/topic/5794-guide-install-macos-with-olarila-image-step-by-step-install-and-post-install-windows-or-mac/
        First... If you need DSDT edits... -Extract tables with F4 key in Clover boot screen! -Run it and send me files! RunMe.app   Installation --Create a bootable copy of El Capitan /  Sierra / High Sierra / Mojave https://github.com/chris1111/Create-Install-Media/releases   --Install Clover in USB stick https://github.com/CloverHackyColor/CloverBootloader/releases   --Replace with my Clover folder https://www.olarila.com/topic/5676-clover-folder-for-all-chipsets/   --Install EL Capitan / Sierra / High Sierra and boot into system!     Post Installation   --Install Clover and replace with my folder   https://www.olarila.com/topic/5676-clover-folder-for-all-chipsets/     --Reboot and activate video!   Bingo! Now you need a fine tune! DSDT Time!   My DSDT GA P35-DS3   DSDT.MaLd0n.zip     Patches -FIX ERRORS AND WARNINGS -HPET -SATA -SLPB -DARWIN -LPC -HDEF -RTC -EHCI -UHCI -IRQs -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -LAN -EC -PNLF --Native Power Management
       
      Use Clover, check Generate P and C States
       
      --Brightness
      Install .app, select the required permission and reboot. Work in F1 / F2 keys!
      NativeDisplayBrightness.app.zip


      https://github.com/Bensge/NativeDisplayBrightness/releases
      *in some cases .app don't work, check patches in config.plist inside Clover folder Post Install
       
      --AUDIO
       
      Device HDEF + AppleAlc + Lilu
       
      --install Lan driver by Mieze
        -Atheros   http://www.insanelymac.com/forum/files/file/313-atherose2200ethernet/   -Intel   http://www.insanelymac.com/forum/files/file/396-intelmausiethernet/   -Realtek   http://www.insanelymac.com/forum/files/file/88-realtekrtl8111-binary/   --Links   -FakeSMC   https://bitbucket.org/RehabMan/os-x-fakesmc-kozlek   -Audio   https://github.com/vit9696/AppleALC http://www.insanelymac.com/forum/topic/293863-applehda-patch-requests/   -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!   Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad and many, many, many others!   We're all here to have fun and learn from each other!   ENJOY!  
    • By Kailash
      I successfully managed to install Hackintosh on my Lenovo Ideapad 520 but now I don't have audio, brightness control feature or battery indicator. My audio driver is an ALC230. I am new to all this. What do I do to solve this? I have attached my EFI files below.
      EFI.zip
    • By NikTheNoob
      Hi,
       
      I'm rather new to Hackintosh and trying my first build with OpenCore on AMD, but I run into issues causing OpenCore to crash before even loading the macOS installer. As I'm not sure which one is causing the crash, I'm trying to resolve all of them and one of the error messages has to do with WhateverGreen, which I was able to see in this slow-mo loading video. Basically I'm getting an error that I'm running an unsupported processor, even though I think I was following this guide by the step.
      What could be causing this and what do I need to do to resolve it?
       
      CPU: AMD Ryzen 2700X
      MB: Gigabyte Aorus X470 Ultra Gaming
      Memory: 4x8 GB HyperX Predator, 3000 MHz Cl15
      Storage: Samsung Evo 970 Nvme 512 GB, Crucial MX500 500GB SATA
      GPU: MSI Radeon RX580 GamingX 8GB
×