Jump to content
xpamamadeus

Ozmosis

6,187 posts in this topic

Recommended Posts

Advertisement

No not, since x99, x100 series Board, they are only in FreeForm modules. Here's how:

 

attachicon.gifDSDT.png

 

Select that raw as in the png above, and choose Extract Body then all files and name it xxxx.aml

 

Or here's the extracted one from the 3.20 ROM: attachicon.gifDSDT.aml.zip, you can try Ozmosis at your own risk, the ROM is not protected, just add the Ozmosis stuffs.

Ok, thanks. I will take some time for this to try)

Share this post


Link to post
Share on other sites

In kext (and also acpi patcher) are now trying to read known options (stored in apple boot-args if any) such as "-KernextPatcherOff" / "-AcpiPatcherOff" before looking for user config plist as a first attempt to speed up process. Inspired by vit9696's project. Thanks..

Share this post


Link to post
Share on other sites

Thank you for your awesome work cecekpawon! Haven't been able to test your ACPIPatcher yet but I'm definitely going to!
 
Where can we find all possible boot-args for AcpiPatcher? KernextPatcher boot-args can be found on your GitHub (-KernextPatcherDbg, -KernextPatcherLog and -KernextPatcherOff), are the boot-args available for the AcpiPatcher equal with just a change from "Kernext" to "Acpi"? Is there, or is there going to be a Github Page for the new Patcher?

 

Btw, I love the options in AcpiPatcher.plist like FixHeader, DropTables or GenerateCPUStates!

Share this post


Link to post
Share on other sites

 Yes, just change "Kernext" to "Acpi" LOL. Sure I will share on Github soon :)

#define ACPIPATCHER_PLIST                        L"\\EFI\\AcpiPatcher.plist"
#define DEBUG_LOG                                L"\\EFI\\AcpiPatcherLog.txt"

#define ARG_DEBUG                                "-AcpiPatcherDbg"
#define ARG_DEBUG_LOG                            "-AcpiPatcherLog"
#define ARG_OFF                                  "-AcpiPatcherOff"

Share this post


Link to post
Share on other sites

Hi people! Need some help from a profis like you.

 

I built an Ozmosis from the last Version in this Topic, specs like MacPro6,1 Motherboard Ga-x79-up4 processor intel i7 4820 and the system is Mac OS 10.12.6. (other SSD with Windows 10)

 

Everything is working best except 3 things:

 

1. I can't boot into Windows or Mac (separate 2 SSD Drives) without F12. With it everything works perfect, but if I only switch my PC on and add a Windows or Mac as a primary drive in bios, after Bios loading a have a black screen with 2 violet rectangles and nothing happens.

What I did:

- Trying to reboot with ESC - nothing changed

- Trying to reboot with Home to see Oz GUI - Black Screen

- Trying to edit Defaults.plist I removed UserInterface and TimeOut parameters - nothing changed

- Trying to edit nvram parameters with 

sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:UserInterface=%00 
sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:TimeOut=0
but nothing changed.
So I have 2 perfect working Systems, but can't normally boot, must do F12 every time and this sucks. Can you help me?
 
2. The second problem is the Shut down. Maybe this is the following of the first problem I don't know, but if I shut down a pc completely it only reboots. In Windows or in Mac it does the same, reboot and go on. I can only power off a pc with long pressing power key on this 2 rectangles screen, if I do it in system, it will be restarted again.
- I checked all bios parameters Wake on Lan is Disabled and so on, but it doesn't help.
Can you help here? The Yosemithe installation worked fine without this 2 problems on the same pc and configuration.
 
3. In Mac OS I have Nvidia GTX 770 card with official drivers successfully installed. The only problem is if I connect a tv to the Hdmi and a Monitor to DVI, everything works well untill I switch off the TV. With connected switched off TV the DVI monitor begins to blink without any periodic. It can be normal for 5 minutes then blink, or it can blink 10 times in a minute. If I switch on the TV (no matters if the channel represents the Mac output or not, only power on matters) everything is fine. If I plug off the cable from HDMI everything is fine too. But together I must have the TV always on and it make me seek. The same problem was under Yosemithe too.
Can you help here too?
 
Thank you all, you are great!
 
Ozmosis Infos:
In my bios (Version F8g) I deleted FilSystem and added:
- Ozmosis
- OzmosisHorizontalTheme
- Extf
- HermitShellX64
- FakeSMC
- Ozmosis Defaults
- VoodooTSCSync
- NullCPUPowerManagement
- PartitionDXE
- HfsPlus
- EnhancedFat
- USBFix
 
The DefaultsPlist looks like:
<?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>Defaults:1F8E0C02-58A9-4E34-AE22-2B63745FA101</key>
<dict>
<key>AAPL,ig-platform-id</key>
<integer>3735928495</integer>
<key>AAPL,snb_platform_id</key>
<integer>3735928495</integer>
<key>AcpiLoaderMode</key>
<integer>69</integer>
<key>AtiFramebuffer</key>
<false/>
<key>BootEntryTemplate</key>
<string>$label $guid</string>
<key>DarwinDiskTemplate</key>
<string>$label $platform.$major.$minor $build</string>
<key>DarwinRecoveryDiskTemplate</key>
<string>$label $platform.$major.$minor $build</string>
<key>DisableAtiInjection</key>
<true/>
<key>DisableBootEntriesFilter</key>
<true/>
<key>DisableIntelInjection</key>
<true/>
<key>DisableNvidiaInjection</key>
<true/>
<key>SkipSmbusSpdScan</key>
<true/>
</dict>
<key>Defaults:4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
<dict>
<key>BaseBoardAssetTag</key>
<string>Base Board Asset Tag#</string>
<key>BaseBoardSerial</key>
<string>F5K4252014MFNN11M</string>
<key>BiosDate</key>
<string>08/08/17</string>
<key>BiosVersion</key>
<string>MP61.88Z.0120.B00.1708080652</string>
<key>BoardVersion</key>
<string>Proto1</string>
<key>ChassisAssetTag</key>
<string>MacPro-Aluminum</string>
<key>EnclosureType</key>
<integer>13</integer>
<key>FirmwareFeatures</key>
<integer>0xe80fe136</integer>
<key>FirmwareFeaturesMask</key>
<integer>0xff1fff3f</integer>
<key>FirmwareRevision</key>
<integer>0x0001000A</integer>
<key>FirmwareVendor</key>
<string>Apple</string>
<key>HardwareAddress</key>
<string>74:d4:35:15:b0:ee</string>
<key>HardwareSignature</key>
<string>89236111-2331-5432-B04C-74D43515B0EE</string>
<key>Manufacturer</key>
<string>Apple Inc.</string>
<key>ProcessorSerial</key>
<string>CK0020DZE1D</string>
<key>ProductFamily</key>
<string>MacPro</string>
<key>ProductId</key>
<string>Mac-F60DEB81FF30ACF6</string>
<key>ProductName</key>
<string>MacPro6,1</string>
<key>SystemSKU</key>
<string>System SKU#</string>
<key>SystemSerial</key>
<string>My serial</string>
<key>SystemVersion</key>
<string>1.0</string>
</dict>
<key>Defaults:7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<dict>
<key>boot-args</key>
<string>nvda_drv=1 npci=0x2000</string>
<key>csr-active-config</key>
<data>
dwAAAA==
</data>
</dict>
<key>Timestamp</key>
<integer>5</integer>
<key>Version</key>
<string>1.0.1</string>
</dict>
</plist>

 

Share this post


Link to post
Share on other sites

Why you use this in Defaults.plist and no need NullCPUPowerManagement

<key>AAPL,ig-platform-id</key>
<integer>3735928495</integer>
<key>AAPL,snb_platform_id</key>
<integer>3735928495</integer>

Share this post


Link to post
Share on other sites

 

Why you use this in Defaults.plist and no need NullCPUPowerManagement

<key>AAPL,ig-platform-id</key>
<integer>3735928495</integer>
<key>AAPL,snb_platform_id</key>
<integer>3735928495</integer>

 

It was in Defaults.plist as an example there. Is it wrong? What must I put in for MacPro6,1?

And what are these parameters for? What are they doing?

 

Without NullCPU it don't work, kernelpanic unknown CPU.

NullCPU is not a problem, what can I do to fix other?

Share this post


Link to post
Share on other sites

without NullCpu and without AAPL.

btw which your GPU? maybe problem in GPU.

yes and use sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:SkipSmbusSpdScan=%01

Share this post


Link to post
Share on other sites

Remove NulCPUPowerManagement, VoodooTSCSync, generat a FakeSMC and all it's Sensors as ffs, Make Working SSDT for CPUPm, and for Devices, or an DSDT, use this OzmosisDefults:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com...yList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Defaults:1F8E0C02-58A9-4E34-AE22-2B63745FA101</key>
<dict>

<key>AcpiLoaderMode</key>
<integer>69</integer>
<key>BootEntryTemplate</key>
<string>$label $guid</string>
<key>DarwinDiskTemplate</key>
<string>$label $platform.$major.$minor $build</string>
<key>DarwinRecoveryDiskTemplate</key>
<string>$label $platform.$major.$minor $build</string>
<key>DisableAtiInjection</key>
<true/>
<key>DisableBootEntriesFilter</key>
<true/>
<key>DisableIntelInjection</key>
<true/>
<key>DisableNvidiaInjection</key>
<false/>
</dict>
<key>Defaults:4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
<dict>
<key>BaseBoardAssetTag</key>
<string>Base Board Asset Tag#</string>
<key>BaseBoardSerial</key>
<string>F5K4252014MFNN11M</string>
<key>BiosDate</key>
<string>08/08/17</string>
<key>BiosVersion</key>
<string>MP61.88Z.0120.B00.1708080652</string>
<key>BoardVersion</key>
<string>Proto1</string>
<key>ChassisAssetTag</key>
<string>MacPro-Aluminum</string>
<key>EnclosureType</key>
<integer>13</integer>
<key>FirmwareFeatures</key>
<integer>0xe80fe136</integer>
<key>FirmwareFeaturesMask</key>
<integer>0xff1fff3f</integer>
<key>FirmwareRevision</key>
<integer>0x0001000A</integer>
<key>FirmwareVendor</key>
<string>Apple</string>
<key>HardwareAddress</key>
<string>74:d4:35:15:b0:ee</string>
<key>HardwareSignature</key>
<string>89236111-2331-5432-B04C-74D43515B0EE</string>
<key>Manufacturer</key>
<string>Apple Inc.</string>
<key>ProcessorSerial</key>
<string>CK0020DZE1D</string>
<key>ProductFamily</key>
<string>MacPro</string>
<key>ProductId</key>
<string>Mac-F60DEB81FF30ACF6</string>
<key>ProductName</key>
<string>MacPro6,1</string>
<key>SystemSKU</key>
<string>System SKU#</string>
<key>SystemSerial</key>
<string>My serial</string>
<key>SystemVersion</key>
<string>1.0</string>
</dict>
<key>Defaults:7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<dict>
<key>boot-args</key>
<string>nvda_drv=1 npci=0x2000</string>
<key>csr-active-config</key>
<data>
dwAAAA==
</data>
</dict>
<key>Timestamp</key>
<integer>5</integer>
<key>Version</key>
<string>1.0.1</string>
</dict>
</plist> 

Download this Injector kext @ the post #4724 ,add it to the BIOS.

Share this post


Link to post
Share on other sites

Remove NulCPUPowerManagement, VoodooTSCSync, generat a FakeSMC and all it's Sensors as ffs, Make Working SSDT for CPUPm, and for Devices, or an DSDT, use this OzmosisDefults:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com...yList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Defaults:1F8E0C02-58A9-4E34-AE22-2B63745FA101</key>
<dict>

<key>AcpiLoaderMode</key>
<integer>69</integer>
<key>BootEntryTemplate</key>
<string>$label $guid</string>
<key>DarwinDiskTemplate</key>
<string>$label $platform.$major.$minor $build</string>
<key>DarwinRecoveryDiskTemplate</key>
<string>$label $platform.$major.$minor $build</string>
<key>DisableAtiInjection</key>
<true/>
<key>DisableBootEntriesFilter</key>
<true/>
<key>DisableIntelInjection</key>
<true/>
<key>DisableNvidiaInjection</key>
<false/>
</dict>
<key>Defaults:4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
<dict>
<key>BaseBoardAssetTag</key>
<string>Base Board Asset Tag#</string>
<key>BaseBoardSerial</key>
<string>F5K4252014MFNN11M</string>
<key>BiosDate</key>
<string>08/08/17</string>
<key>BiosVersion</key>
<string>MP61.88Z.0120.B00.1708080652</string>
<key>BoardVersion</key>
<string>Proto1</string>
<key>ChassisAssetTag</key>
<string>MacPro-Aluminum</string>
<key>EnclosureType</key>
<integer>13</integer>
<key>FirmwareFeatures</key>
<integer>0xe80fe136</integer>
<key>FirmwareFeaturesMask</key>
<integer>0xff1fff3f</integer>
<key>FirmwareRevision</key>
<integer>0x0001000A</integer>
<key>FirmwareVendor</key>
<string>Apple</string>
<key>HardwareAddress</key>
<string>74:d4:35:15:b0:ee</string>
<key>HardwareSignature</key>
<string>89236111-2331-5432-B04C-74D43515B0EE</string>
<key>Manufacturer</key>
<string>Apple Inc.</string>
<key>ProcessorSerial</key>
<string>CK0020DZE1D</string>
<key>ProductFamily</key>
<string>MacPro</string>
<key>ProductId</key>
<string>Mac-F60DEB81FF30ACF6</string>
<key>ProductName</key>
<string>MacPro6,1</string>
<key>SystemSKU</key>
<string>System SKU#</string>
<key>SystemSerial</key>
<string>My serial</string>
<key>SystemVersion</key>
<string>1.0</string>
</dict>
<key>Defaults:7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<dict>
<key>boot-args</key>
<string>nvda_drv=1 npci=0x2000</string>
<key>csr-active-config</key>
<data>
dwAAAA==
</data>
</dict>
<key>Timestamp</key>
<integer>5</integer>
<key>Version</key>
<string>1.0.1</string>
</dict>
</plist> 

Download this Injector kext @ the post #4724 ,add it to the BIOS.

How can I integrate SSDT in DSDT? I have no possibility to load SSDT with ozmosis

without NullCpu and without AAPL.

btw which your GPU? maybe problem in GPU.

yes and use sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:SkipSmbusSpdScan=%01

I will try but can it help my boot problems? I think not, kexts have nothing to do with F12 boot.

 

My GPU is GTX770 4GB

 

How can I disable AAPL from nvram? I don't want to use nvram reset because of platform-uuid.

Share this post


Link to post
Share on other sites

Your SSDT for PowerManagement should be in Efi/Oz/Acpi/Load/ folder with other SSDT for Injecting _DSM or DSDT patched. Or in DSDT file Add a Scope (PR), copy paste there your SSDT.

I don't use this anymore, but instead I use a simple way like Apple did, on everyboard I have and it work, here's an example of my Z97M-DS3H CPUSsdt:

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20131218-64 [Jan  8 2014]
 * Copyright (c) 2000 - 2013 Intel Corporation
 * 
 * Disassembly of iASLZQFCAH.aml, Thu Oct 19 15:23:08 2017
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000C09 (3081)
 *     Revision         0x01
 *     Checksum         0x08
 *     OEM ID           "CpuRef"
 *     OEM Table ID     "CpuSsdt"
 *     OEM Revision     0x00003000 (12288)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20131218 (538120728)
 */
DefinitionBlock ("iASLZQFCAH.aml", "SSDT", 1, "CpuRef", "CpuSsdt", 0x00003000)
{

    External (_PR_.CPU0, ProcessorObj)
    External (_PR_.CPU0._PPC, IntObj)
    External (_PR_.CPU1, ProcessorObj)
    External (_PR_.CPU2, ProcessorObj)
    External (_PR_.CPU3, ProcessorObj)
    External (_PR_.CPU4, ProcessorObj)
    External (_PR_.CPU5, ProcessorObj)
    External (_PR_.CPU6, ProcessorObj)
    External (_PR_.CPU7, ProcessorObj)
    External (OSDW, MethodObj)    // 0 Arguments

    Scope (\)
    {
        Name (SSDT, Package (0x0C)
        {
            "CPU0IST ", 
            0xA8C1E598, 
            0x00000539, 
            "APIST   ", 
            0xABBA2618, 
            0x000005AA, 
            "CPU0CST ", 
            0xABBA2C18, 
            0x000003D3, 
            "APCST   ", 
            0xABBA1D98, 
            0x00000119
        })
        Name (\PDC0, 0x80000000)
        Name (\PDC1, 0x80000000)
        Name (\PDC2, 0x80000000)
        Name (\PDC3, 0x80000000)
        Name (\PDC4, 0x80000000)
        Name (\PDC5, 0x80000000)
        Name (\PDC6, 0x80000000)
        Name (\PDC7, 0x80000000)
        Name (\SDTL, Zero)
    }

    Scope (\_PR)
    {
        OperationRegion (PNVS, SystemMemory, 0xABD9FF18, 0x0053)
        Field (PNVS, AnyAcc, Lock, Preserve)
        {
            PGRV,   8, 
            CFGD,   32, 
            Offset (0x06), 
            ACRT,   8, 
            APSV,   8, 
            AAC0,   8, 
            CPID,   32, 
            CPPC,   8, 
            CCTP,   8, 
            CLVL,   8, 
            CBMI,   8, 
            PL10,   16, 
            PL20,   16, 
            PLW0,   8, 
            CTC0,   8, 
            TAR0,   8, 
            PPC0,   8, 
            PL11,   16, 
            PL21,   16, 
            PLW1,   8, 
            CTC1,   8, 
            TAR1,   8, 
            PPC1,   8, 
            PL12,   16, 
            PL22,   16, 
            PLW2,   8, 
            CTC2,   8, 
            TAR2,   8, 
            PPC2,   8, 
            C3MW,   8, 
            C6MW,   8, 
            C7MW,   8, 
            CDMW,   8, 
            C3LT,   16, 
            C6LT,   16, 
            C7LT,   16, 
            CDLT,   16, 
            CDLV,   16, 
            CDPW,   16, 
            MPMF,   8, 
            DTSE,   8, 
            DTS1,   8, 
            DTS2,   8, 
            DTSF,   8, 
            PDTS,   8, 
            PKGA,   8, 
            DTS3,   8, 
            DTS4,   8, 
            BGMA,   64, 
            BGMS,   8, 
            BGIA,   16, 
            BGIL,   16, 
            DSIA,   16, 
            DSIL,   8, 
            DSAE,   8
        }

        OperationRegion (IO_D, SystemIO, \_PR.DSIA, \_PR.DSIL)
        Field (IO_D, ByteAcc, NoLock, Preserve)
        {
            TRPD,   8
        }

        OperationRegion (IO_P, SystemIO, \_PR.BGIA, \_PR.BGIL)
        Field (IO_P, ByteAcc, NoLock, Preserve)
        {
            TRPF,   8
        }
    }

    Scope (\_PR.CPU0)
    {
        Name (HI0, Zero)
        Name (HC0, Zero)
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            If (CondRefOf (\_PR.CPU0._PPC))
            {
                Store (CPPC, \_PR.CPU0._PPC)
            }

            Store (CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (CPDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS0, Buffer (0x04)
            {
                 0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS0, TEMP, Local2)
            Return (COSC (Buffer (0x10)
                {
                    /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
                    /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2))
        }

        Method (COSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, Zero, STS0)
            CreateDWordField (Arg3, 0x04, CAP0)
            CreateDWordField (Arg0, Zero, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID0, Buffer (0x10)
            {
                /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
                /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID0, Zero, EID0)
            CreateDWordField (UID0, 0x04, EID1)
            CreateDWordField (UID0, 0x08, EID2)
            CreateDWordField (UID0, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
                LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, STS0)
                Return (Arg3)
            }

            If (LNotEqual (Arg1, One))
            {
                Store (0x0A, STS0)
                Return (Arg3)
            }

            Return (Arg3)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS0)
            CreateDWordField (Arg0, 0x04, CAP0)
            If (LOr (LEqual (STS0, 0x06), LEqual (STS0, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS0, One))
            {
                And (CAP0, 0x0BFF, CAP0)
                Return (Zero)
            }

            Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
            If (And (CFGD, 0x7A))
            {
                If (LAnd (LAnd (And (CFGD, 0x0200), And (PDC0, 0x18
                    )), LNot (And (SDTL, 0x02))))
                {
                    Or (SDTL, 0x02, SDTL)
                    OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
                        )))
                    Load (CST0, HC0)
                }
            }

            Return (Zero)
        }

        Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */   0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */   0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    }))
            {
                If (LEqual (Arg1, One))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Store (Buffer (One)
                            {
                                 0x03
                            }, Arg4)
                        Return (One)
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
            }

            Store (Buffer (One)
                {
                     0x00
                }, Arg4)
            Return (Zero)
        }

        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (OSDW ())
            {
                Store ("Writing plugin-type to registry!", Debug)
                Store (Package (0x02)
                    {
                        "plugin-type", 
                        One
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Return (Zero)
        }
    }

    Scope (\_PR.CPU1)
    {
        Name (HI1, Zero)
        Name (HC1, Zero)
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS1)
            CreateDWordField (Arg0, 0x04, CAP1)
            If (LOr (LEqual (STS1, 0x06), LEqual (STS1, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS1, One))
            {
                And (CAP1, 0x0BFF, CAP1)
                Return (Zero)
            }

            Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
            If (LEqual (And (PDC1, 0x09), 0x09))
            {
                APPT ()
            }

            If (And (PDC1, 0x18))
            {
                APCT ()
            }

            Store (PDC1, PDC0)
            Return (Zero)
        }

        Method (APCT, 0, NotSerialized)
        {
            If (LAnd (And (CFGD, 0x7A), LNot (And (SDTL, 0x20
                ))))
            {
                Or (SDTL, 0x20, SDTL)
                OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
                    )))
                Load (CST1, HC1)
            }
        }

        Method (APPT, 0, NotSerialized)
        {
            If (LAnd (And (CFGD, One), LNot (And (SDTL, 0x10
                ))))
            {
                Or (SDTL, 0x10, SDTL)
                OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
                    )))
                Load (IST1, HI1)
            }
        }
    }

    Scope (\_PR.CPU2)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS2)
            CreateDWordField (Arg0, 0x04, CAP2)
            If (LOr (LEqual (STS2, 0x06), LEqual (STS2, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS2, One))
            {
                And (CAP2, 0x0BFF, CAP2)
                Return (Zero)
            }

            Or (And (PDC2, 0x7FFFFFFF), CAP2, PDC2)
            If (LEqual (And (PDC2, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC2, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC2, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU3)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS3)
            CreateDWordField (Arg0, 0x04, CAP3)
            If (LOr (LEqual (STS3, 0x06), LEqual (STS3, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS3, One))
            {
                And (CAP3, 0x0BFF, CAP3)
                Return (Zero)
            }

            Or (And (PDC3, 0x7FFFFFFF), CAP3, PDC3)
            If (LEqual (And (PDC3, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC3, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC3, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU4)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS4)
            CreateDWordField (Arg0, 0x04, CAP4)
            If (LOr (LEqual (STS4, 0x06), LEqual (STS4, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS4, One))
            {
                And (CAP4, 0x0BFF, CAP4)
                Return (Zero)
            }

            Or (And (PDC4, 0x7FFFFFFF), CAP4, PDC4)
            If (LEqual (And (PDC4, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC4, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC4, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU5)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS5)
            CreateDWordField (Arg0, 0x04, CAP5)
            If (LOr (LEqual (STS5, 0x06), LEqual (STS5, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS5, One))
            {
                And (CAP5, 0x0BFF, CAP5)
                Return (Zero)
            }

            Or (And (PDC5, 0x7FFFFFFF), CAP5, PDC5)
            If (LEqual (And (PDC5, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC5, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC5, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU6)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS6)
            CreateDWordField (Arg0, 0x04, CAP6)
            If (LOr (LEqual (STS6, 0x06), LEqual (STS6, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS6, One))
            {
                And (CAP6, 0x0BFF, CAP6)
                Return (Zero)
            }

            Or (And (PDC6, 0x7FFFFFFF), CAP6, PDC6)
            If (LEqual (And (PDC6, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC6, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC6, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU7)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS7)
            CreateDWordField (Arg0, 0x04, CAP7)
            If (LOr (LEqual (STS7, 0x06), LEqual (STS7, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS7, One))
            {
                And (CAP7, 0x0BFF, CAP7)
                Return (Zero)
            }

            Or (And (PDC7, 0x7FFFFFFF), CAP7, PDC7)
            If (LEqual (And (PDC7, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC7, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC7, PDC0)
            Return (Zero)
        }
    }
}
 

I simply add DTGP and Plugin _DSM method into the Scope CPU0, and I get FullPowerManagement:

Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */   0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */   0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    }))
            {
                If (LEqual (Arg1, One))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Store (Buffer (One)
                            {
                                 0x03
                            }, Arg4)
                        Return (One)
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
            }

            Store (Buffer (One)
                {
                     0x00
                }, Arg4)
            Return (Zero)
        }

        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (OSDW ())
            {
                Store ("Writing plugin-type to registry!", Debug)
                Store (Package (0x02)
                    {
                        "plugin-type", 
                        One
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Return (Zero)
        } 

This is what I use for everyboard I have!

 

Follow the first post assuming that it's a FredWst screenshots, and extract your CPUPm ssd from ROM, general it's DSL with IASL and inject DTGP and add this plugin _DSM to the Scope CPU0 without OSDW, save it as SSDT-1.aml and it's done.

 

The OzmosisDefaults I posted is yours I just removed unused things!

Edited by ammoune78

Share this post


Link to post
Share on other sites

Your SSDT for PowerManagement should be in Efi/Oz/Acpi/Load/ folder with other SSDT for Injecting _DSM or DSDT patched. Or in DSDT file Add a Scope (PR), copy paste there your SSDT.

I don't use this anymore, but instead I use a simple way like Apple did, on everyboard I have and it work, here's an example of my Z97M-DS3H CPUSsdt:

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20131218-64 [Jan  8 2014]
 * Copyright (c) 2000 - 2013 Intel Corporation
 * 
 * Disassembly of iASLZQFCAH.aml, Thu Oct 19 15:23:08 2017
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000C09 (3081)
 *     Revision         0x01
 *     Checksum         0x08
 *     OEM ID           "CpuRef"
 *     OEM Table ID     "CpuSsdt"
 *     OEM Revision     0x00003000 (12288)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20131218 (538120728)
 */
DefinitionBlock ("iASLZQFCAH.aml", "SSDT", 1, "CpuRef", "CpuSsdt", 0x00003000)
{

    External (_PR_.CPU0, ProcessorObj)
    External (_PR_.CPU0._PPC, IntObj)
    External (_PR_.CPU1, ProcessorObj)
    External (_PR_.CPU2, ProcessorObj)
    External (_PR_.CPU3, ProcessorObj)
    External (_PR_.CPU4, ProcessorObj)
    External (_PR_.CPU5, ProcessorObj)
    External (_PR_.CPU6, ProcessorObj)
    External (_PR_.CPU7, ProcessorObj)
    External (OSDW, MethodObj)    // 0 Arguments

    Scope (\)
    {
        Name (SSDT, Package (0x0C)
        {
            "CPU0IST ", 
            0xA8C1E598, 
            0x00000539, 
            "APIST   ", 
            0xABBA2618, 
            0x000005AA, 
            "CPU0CST ", 
            0xABBA2C18, 
            0x000003D3, 
            "APCST   ", 
            0xABBA1D98, 
            0x00000119
        })
        Name (\PDC0, 0x80000000)
        Name (\PDC1, 0x80000000)
        Name (\PDC2, 0x80000000)
        Name (\PDC3, 0x80000000)
        Name (\PDC4, 0x80000000)
        Name (\PDC5, 0x80000000)
        Name (\PDC6, 0x80000000)
        Name (\PDC7, 0x80000000)
        Name (\SDTL, Zero)
    }

    Scope (\_PR)
    {
        OperationRegion (PNVS, SystemMemory, 0xABD9FF18, 0x0053)
        Field (PNVS, AnyAcc, Lock, Preserve)
        {
            PGRV,   8, 
            CFGD,   32, 
            Offset (0x06), 
            ACRT,   8, 
            APSV,   8, 
            AAC0,   8, 
            CPID,   32, 
            CPPC,   8, 
            CCTP,   8, 
            CLVL,   8, 
            CBMI,   8, 
            PL10,   16, 
            PL20,   16, 
            PLW0,   8, 
            CTC0,   8, 
            TAR0,   8, 
            PPC0,   8, 
            PL11,   16, 
            PL21,   16, 
            PLW1,   8, 
            CTC1,   8, 
            TAR1,   8, 
            PPC1,   8, 
            PL12,   16, 
            PL22,   16, 
            PLW2,   8, 
            CTC2,   8, 
            TAR2,   8, 
            PPC2,   8, 
            C3MW,   8, 
            C6MW,   8, 
            C7MW,   8, 
            CDMW,   8, 
            C3LT,   16, 
            C6LT,   16, 
            C7LT,   16, 
            CDLT,   16, 
            CDLV,   16, 
            CDPW,   16, 
            MPMF,   8, 
            DTSE,   8, 
            DTS1,   8, 
            DTS2,   8, 
            DTSF,   8, 
            PDTS,   8, 
            PKGA,   8, 
            DTS3,   8, 
            DTS4,   8, 
            BGMA,   64, 
            BGMS,   8, 
            BGIA,   16, 
            BGIL,   16, 
            DSIA,   16, 
            DSIL,   8, 
            DSAE,   8
        }

        OperationRegion (IO_D, SystemIO, \_PR.DSIA, \_PR.DSIL)
        Field (IO_D, ByteAcc, NoLock, Preserve)
        {
            TRPD,   8
        }

        OperationRegion (IO_P, SystemIO, \_PR.BGIA, \_PR.BGIL)
        Field (IO_P, ByteAcc, NoLock, Preserve)
        {
            TRPF,   8
        }
    }

    Scope (\_PR.CPU0)
    {
        Name (HI0, Zero)
        Name (HC0, Zero)
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            If (CondRefOf (\_PR.CPU0._PPC))
            {
                Store (CPPC, \_PR.CPU0._PPC)
            }

            Store (CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (CPDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS0, Buffer (0x04)
            {
                 0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS0, TEMP, Local2)
            Return (COSC (Buffer (0x10)
                {
                    /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
                    /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2))
        }

        Method (COSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, Zero, STS0)
            CreateDWordField (Arg3, 0x04, CAP0)
            CreateDWordField (Arg0, Zero, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID0, Buffer (0x10)
            {
                /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
                /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID0, Zero, EID0)
            CreateDWordField (UID0, 0x04, EID1)
            CreateDWordField (UID0, 0x08, EID2)
            CreateDWordField (UID0, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
                LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, STS0)
                Return (Arg3)
            }

            If (LNotEqual (Arg1, One))
            {
                Store (0x0A, STS0)
                Return (Arg3)
            }

            Return (Arg3)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS0)
            CreateDWordField (Arg0, 0x04, CAP0)
            If (LOr (LEqual (STS0, 0x06), LEqual (STS0, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS0, One))
            {
                And (CAP0, 0x0BFF, CAP0)
                Return (Zero)
            }

            Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
            If (And (CFGD, 0x7A))
            {
                If (LAnd (LAnd (And (CFGD, 0x0200), And (PDC0, 0x18
                    )), LNot (And (SDTL, 0x02))))
                {
                    Or (SDTL, 0x02, SDTL)
                    OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
                        )))
                    Load (CST0, HC0)
                }
            }

            Return (Zero)
        }

        Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */   0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */   0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    }))
            {
                If (LEqual (Arg1, One))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Store (Buffer (One)
                            {
                                 0x03
                            }, Arg4)
                        Return (One)
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
            }

            Store (Buffer (One)
                {
                     0x00
                }, Arg4)
            Return (Zero)
        }

        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (OSDW ())
            {
                Store ("Writing plugin-type to registry!", Debug)
                Store (Package (0x02)
                    {
                        "plugin-type", 
                        One
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Return (Zero)
        }
    }

    Scope (\_PR.CPU1)
    {
        Name (HI1, Zero)
        Name (HC1, Zero)
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS1)
            CreateDWordField (Arg0, 0x04, CAP1)
            If (LOr (LEqual (STS1, 0x06), LEqual (STS1, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS1, One))
            {
                And (CAP1, 0x0BFF, CAP1)
                Return (Zero)
            }

            Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
            If (LEqual (And (PDC1, 0x09), 0x09))
            {
                APPT ()
            }

            If (And (PDC1, 0x18))
            {
                APCT ()
            }

            Store (PDC1, PDC0)
            Return (Zero)
        }

        Method (APCT, 0, NotSerialized)
        {
            If (LAnd (And (CFGD, 0x7A), LNot (And (SDTL, 0x20
                ))))
            {
                Or (SDTL, 0x20, SDTL)
                OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
                    )))
                Load (CST1, HC1)
            }
        }

        Method (APPT, 0, NotSerialized)
        {
            If (LAnd (And (CFGD, One), LNot (And (SDTL, 0x10
                ))))
            {
                Or (SDTL, 0x10, SDTL)
                OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
                    )))
                Load (IST1, HI1)
            }
        }
    }

    Scope (\_PR.CPU2)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS2)
            CreateDWordField (Arg0, 0x04, CAP2)
            If (LOr (LEqual (STS2, 0x06), LEqual (STS2, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS2, One))
            {
                And (CAP2, 0x0BFF, CAP2)
                Return (Zero)
            }

            Or (And (PDC2, 0x7FFFFFFF), CAP2, PDC2)
            If (LEqual (And (PDC2, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC2, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC2, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU3)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS3)
            CreateDWordField (Arg0, 0x04, CAP3)
            If (LOr (LEqual (STS3, 0x06), LEqual (STS3, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS3, One))
            {
                And (CAP3, 0x0BFF, CAP3)
                Return (Zero)
            }

            Or (And (PDC3, 0x7FFFFFFF), CAP3, PDC3)
            If (LEqual (And (PDC3, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC3, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC3, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU4)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS4)
            CreateDWordField (Arg0, 0x04, CAP4)
            If (LOr (LEqual (STS4, 0x06), LEqual (STS4, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS4, One))
            {
                And (CAP4, 0x0BFF, CAP4)
                Return (Zero)
            }

            Or (And (PDC4, 0x7FFFFFFF), CAP4, PDC4)
            If (LEqual (And (PDC4, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC4, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC4, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU5)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS5)
            CreateDWordField (Arg0, 0x04, CAP5)
            If (LOr (LEqual (STS5, 0x06), LEqual (STS5, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS5, One))
            {
                And (CAP5, 0x0BFF, CAP5)
                Return (Zero)
            }

            Or (And (PDC5, 0x7FFFFFFF), CAP5, PDC5)
            If (LEqual (And (PDC5, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC5, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC5, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU6)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS6)
            CreateDWordField (Arg0, 0x04, CAP6)
            If (LOr (LEqual (STS6, 0x06), LEqual (STS6, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS6, One))
            {
                And (CAP6, 0x0BFF, CAP6)
                Return (Zero)
            }

            Or (And (PDC6, 0x7FFFFFFF), CAP6, PDC6)
            If (LEqual (And (PDC6, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC6, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC6, PDC0)
            Return (Zero)
        }
    }

    Scope (\_PR.CPU7)
    {
        Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
        {
            Store (\_PR.CPU0.CPDC (Arg0), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Store (\_PR.CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
            GCAP (Local0)
            Return (Local0)
        }

        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS7)
            CreateDWordField (Arg0, 0x04, CAP7)
            If (LOr (LEqual (STS7, 0x06), LEqual (STS7, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS7, One))
            {
                And (CAP7, 0x0BFF, CAP7)
                Return (Zero)
            }

            Or (And (PDC7, 0x7FFFFFFF), CAP7, PDC7)
            If (LEqual (And (PDC7, 0x09), 0x09))
            {
                \_PR.CPU1.APPT ()
            }

            If (And (PDC7, 0x18))
            {
                \_PR.CPU1.APCT ()
            }

            Store (PDC7, PDC0)
            Return (Zero)
        }
    }
}
 

I simply add DTGP and Plugin _DSM method into the Scope CPU0, and I get FullPowerManagement:

Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */   0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */   0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    }))
            {
                If (LEqual (Arg1, One))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Store (Buffer (One)
                            {
                                 0x03
                            }, Arg4)
                        Return (One)
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
            }

            Store (Buffer (One)
                {
                     0x00
                }, Arg4)
            Return (Zero)
        }

        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (OSDW ())
            {
                Store ("Writing plugin-type to registry!", Debug)
                Store (Package (0x02)
                    {
                        "plugin-type", 
                        One
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Return (Zero)
        } 

This is what I use for everyboard I have!

 

Follow the first post assuming that it's a FredWst screenshots, and extract your CPUPm ssd from ROM, general it's DSL with IASL and inject DTGP and add this plugin _DSM to the Scope CPU0 without OSDW, save it as SSDT-1.aml and it's done.

 

The OzmosisDefaults I posted is yours I just removed unused things!

Thanks, a did the same in the past but there was a problem a couldn't save dsdt because of unrecognized and not existing external devices or hardware names which doesn't exist in dsdt. Can you help me if I send you the dsdt and ssdts which I need? Can you pack it in dsdt for me?

Share this post


Link to post
Share on other sites

No, i mean, you can use SSDT for injecting devices with _DSM for each one, or directly do the patch's on the DSDT!

No problem, i'll do it once at home!

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post
Share on other sites

This file won't to be opened, however, the files I'm uploading can directly be injected into the ROM as well if they worked in Load folder.

Share this post


Link to post
Share on other sites

You work with MaciASL, yes, I also, but you use iASL6.1. Since the last mod of all my ACPI Tables with both Tables that aren't listed in MaciASL, I do not use anymore iASL higher than the one used by the manufacturer. I did before a mod with iASL 6.1, and it keeped my Board rebooting with no post screen.

Edited by ammoune78

Share this post


Link to post
Share on other sites

...

1. I can't boot into Windows or Mac (separate 2 SSD Drives) without F12. With it everything works perfect, but if I only switch my PC on and add a Windows or Mac as a primary drive in bios, after Bios loading a have a black screen with 2 violet rectangles and nothing happens.

What I did:

- Trying to reboot with ESC - nothing changed

- Trying to reboot with Home to see Oz GUI - Black Screen

- Trying to edit Defaults.plist I removed UserInterface and TimeOut parameters - nothing changed

- Trying to edit nvram parameters with 

sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:UserInterface=%00 

sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:TimeOut=0

but nothing changed.

So I have 2 perfect working Systems, but can't normally boot, must do F12 every time and this sucks. Can you help me?

 ...

Try:

sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:UserInterface=
sudo nvram 1F8E0C02-58A9-4E34-AE22-2B63745FA101:TimeOut=

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 Slice
      Since rev 4844 Vector Themes are supported and there are ready-to-use Clovy by Clovy, cesium by Slice and BGM_SVG by Blackosx.
      You may see it's structure to create own theme
      -------------------------------------------------------------------------------------------------------------------------------------------------------
       
       
      Now I want to add vector graphics support in Clover. See rev 4560 and later.
      It is not working yet but designers may begin to create Vector Themes.
      It supposed to consist of SVG elements and has design size. It will be rendered to any screen size scaled from design size.
       
      What application in macOS can create SVG graphics?
      Inkscape is not working in macOS 10.11+. Pity.
      LibreOffice Draw works with SVG but buggy.
      Boxy SVG cost 10$ but looks good enough. It creates the best in simplicity files and have more then enough features.
      Illustrator is good but expensive.
       
      How to improve SVG file?
      Clover has restricted support for SVG. It is your job to make compatible file and as small as possible to speedup rendering.
      Some helps:
      Help:Inkscape – From invalid to valid SVG Inkscape files
      From invalid to valid SVG Adobe Illustrator files
      From invalid to valid SVG files of other editors: BKchem, ChemDraw and CorelDRAW
      Help:Illustrator – Assistance with creating and saving SVG images in Adobe Illustrator that will pass W3C validation
      User:Quibik/Cleaning up SVG files manually
      Later I will write own instructions specific to Clover abilities.
       
      How to create SVG fonts?
      You can google to find ready-to-use SVG fonts.  I found some problems with too beaty fonts: slow rendering and overflow crash. Be careful.
      You can get ttf or otf fonts and convert them into svg by using online WEB services. Not a problem to google.
      But then I want to find a way to simplify the font to reduce a size and speedup rendering.
      You can create own font by FontForge It is opensource and available for Windows, Mac and GNU+Linux. It creates otf font which you can convert to svg font.
       
      Pictures from Badruzeus
      https://www.insanelymac.com/forum/applications/core/interface/file/attachment.php?id=301597
    • By thomaspetersen
      Hi All
       
      I'm trying to start a Hackintosh High Sierra 10.13.5 installation:
      - MSI B350 PC Mate
      - Ryzen 5 - 2600
      - Radeon Pro 580 GPU
      - 4 x 8GB DDR4
      (Have a working clover bootloader for HS 10.13.3 - but for some reason, I can't use that setup with the 10.13.5) 
       
      Have tried different bootloader setup, with different outcomes...
      ATM. I get this error/hang - "Unknown CPU: family = 0x17, model = 0x8, Stepping = 0x2"
      Have search google, and can see that the threads ppl. are getting this, is when they look at "About this mac", I haven't yet installed the OSX.
       
      So can someone help...

      I'm running the newest Kexts: AppleALC, FakeSMC, Lilu, RealtekRTL8111, USBInjectAll and WhateverGreen.
      In Bootloader setup, i'm running: -v, -s, -f, -no_compat_check, busratio=34, PCIRootUID=1, npci=0x2000, dart=0 and nv_disable=1
      In SMBIOS i'm using the iMac18,2 and in RT i'm using BooterConfig: 0x28 and CsrActiveConfig: 0x67
      In installed drivers i'm using: AptioMemoryFix, EmuVariableUefi-64, OsxAptioFixDrv-64 (Have tried Fix2 as well)
       
      But i'm, keep getting the Unknown CPU hang/error, can someone help...
      Or do someone have a setup with the same CPU and GPU, that can show me his/her setup for Bootloader/Kexts...
    • By apianti
      Just so you all know I actually have done something. I have pushed the source to both my github and to sourceforge, please commit to the experimental branch and I will merge it into the stable branch once it is safe. Also, nothing meaningful happens yet so don't get too excited. Only the Visual studio build works right now. I haven't set up the Xcode or Makefile builds yet, I'm trying to do them now.
       
      https://github.com/apianti/Clover
      https://sourceforge.net/p/cloverefiboot/Clover
       
      IA32/X64/ARM/ARM64 testing ISO (6/7/2018): Clover-3.0-experimental.iso
    • By cvad
      Bootdisk Utility Make bootable USB Flash Disk for MAC OS X with Latest Clover bootloader revision fast and easy by one click! under OS Windows.
      Special utility from cvad & russian MAC community for new hackintosh users.
       
      BDU_v2.1.2018.023b.zip
      MakeCloverBDUReadyZip.bat.zip
      Enjoy...
       
       
       
      Feel free to "Rate File"
      Submitter cvad Submitted 04/28/2013 Category Bootloaders  
      BDU_v2.1.2015.016b.zip
      BDU_v2.1.2015.018b.zip
      BDU_v2.1.2016.019b.zip
      BDU_v2.1.2016.020b.zip
      BDU_v2.1.2017.021b.zip
      BDU_v2.1.2017.022b.zip
×