Jump to content
3 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 

 

 

 

 

  • Like 2
  • 9 months later...

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

×
×
  • Create New...