Fergarth Posted March 22, 2017 Share Posted March 22, 2017 As always our intention is to optimize and improve the systems and I was doing tests with two freqvectors.kexts (thakns PMHeart) with different freqvectors (14,2), (17,1) and without freqvectors loaded in my macpro6,1 and strangely also works well too without any kext loaded I no longer use freqVectorsEdit.sh from Pike.The result is in the prints below.I did not test performance, so I do not know if it changes anything.What is your opinion and which of the results do you think is better? 2 Link to comment Share on other sites More sharing options...
Fergarth Posted March 23, 2017 Share Posted March 23, 2017 Hi Fergarth, thank you for your constant testing! :-) This two pictures in my opinion are pretty similar, for me, the best result should be where you have in this conditions best performance and less wattage usage (so low temperatures) Always I think it is useful to post your two patches so people can compare with your results In my case to achieve C3 visible states in output I have to program msr 0xE2 as user sammlerG taught us in a old post Hi Fabio, Yes it´s true, the difference between both vectors is minimal and consumption has remained the same. To have C3 in the output, I just need to use two patches and are these: <dict> <key>Comment</key> <string>XCPM PKG Scope MSRS Wichtig © Pike R. Alpha</string> <key>Disabled</key> <false/> <key>Find</key> <data> vgcAAAAx0uiU/P// </data> <key>MatchOS</key> <string>10.12.x</string> <key>Replace</key> <data> vgcAAAAx0pCQkJCQ </data> </dict> <dict> <key>Comment</key> <string>XCPM Bootstrap Sierra © Pike R. Alpha</string> <key>Disabled</key> <false/> <key>Find</key> <data> g8PEg/si </data> <key>MatchOS</key> <string>10.12.x</string> <key>Replace</key> <data> g8PBg/si </data> </dict> But to have the maximum GBench performance i also need this one: <dict> <key>Comment</key> <string>XCPM Performance Fix 1 © Okrasit</string> <key>Disabled</key> <false/> <key>Find</key> <data> idjB4Ai5mQE= </data> <key>MatchOS</key> <string>10.12.x</string> <key>Replace</key> <data> uAD/AAC5mQE= </data> </dict> So these are the three patches that I currently use. XCPM works perfectly well as you can see in the prints above. Link to comment Share on other sites More sharing options...
PMheart Posted March 23, 2017 Share Posted March 23, 2017 I think we need to unlock MSR 0xE2 at first to enable C3. Like @Fergarth did. 1 Link to comment Share on other sites More sharing options...
PMheart Posted March 24, 2017 Share Posted March 24, 2017 @PMheart Yes it is so, because if you try to change msr 0xe2 on an unlocked bios in best case nothing happen, in worst case you have a kp! So why not unlock your BIOS immediately! ============================= BTW. For your another question at here, sorry I forgot to reply last weekend... And now the answer is here: (Sorry again) Regarding to Reboot Fix #1. This opcode is under routine '_xcpm_perf_bias_set', which prevents unsupported MSRs that causes an immediate reboot from loading. Regarding to Reboot Fix #2. Oops! It's my fault. (I found that when disassembling just now... ) The target offset is the same... Sorry. I dunno why I can make such a stupid fault as well! So just keep one of them. 1 Link to comment Share on other sites More sharing options...
Fergarth Posted March 24, 2017 Share Posted March 24, 2017 @PMheart Yes it is so, because if you try to change msr 0xe2 on an unlocked bios in best case nothing happen, in worst case you have a kp! @Fergarth Do you need of oarksit performance fix patch also if you have in your bios speedstep disabled? In my system I have EIST enabled cause i am using windows as primary system But if i disabled it i have full boost speed with gb and similar also without using that patch Ps i don't use in it ff parameter but 25 because 25 means 37 in decimal terms which is my maximun turbo steps for two cores Yes I have always had Bios with EIST disabled. But in the result of IntelnIfo appears as active... I remember that in times the nmano used a patch that showed EIST deactivated (?) in Intelinfo, but I can not remember which one...Without the Performance Fix 1 © Okrasit patch, I have the Idle most regular and always close to the 1.20 GHz but less about 4K in the GB... 1 Link to comment Share on other sites More sharing options...
PMheart Posted March 24, 2017 Share Posted March 24, 2017 Thank you PMHeart I do not lock bios immediately because I like to test global reboot fix (pikeralpha) you can find in my thread With my three different motherboard (one of them dual cpu motherboard with xeon 2696V4) if I use only reboot fix and fakecpuid and oarksit performance fix if EIST is enabled in bios, I have same temperature and C6 C states in output with same wattage usage (bios locked) with bios unlocked I can program msr 0xe2 and in this way I can see in appleintelinfo output all C3 states In real test and usage I have same performance ,wattage and temperatures in both or all way I patched (see my thread for four different solutions plus one you adviced me) So, maybe differences are in xeon processor? Well, I see your purposes. I think we should block MSRs as few as possible, like Pike said. IDK, but IMHO maybe XCPM will not even recognize your CPU model? (Cuz it doesn't have to do so.) 1 Link to comment Share on other sites More sharing options...
PMheart Posted March 24, 2017 Share Posted March 24, 2017 How can I verify your last assertion? I can see all states and steps during test and normal usage and testing program recognize my cpu as E5 Xeon 2696 V4 /22 cores/ 44 threads) If XCPM really needs your detailed CPU model, and then it will have more work to do, but actually this is utterly unnecessary. I think it just got your 22C 44T and provide power management for them. Also note that Apple hasn't used this CPU yet. Anyway, if XCPM surely needs to recognize certain CPUs, then Apple will do a lot of work after release each CPU for its Macs... 1 Link to comment Share on other sites More sharing options...
Fergarth Posted March 25, 2017 Share Posted March 25, 2017 Apple has not used Apple has not used any new powerful xeon greater than 2697 V2 (socket 2011 12 cores + 12 threads), maybe now they will surprise us with a new ryzen or maby v4 / v5 xeon..but I don't think so It seems they are more bul{censored} oriented now! :-) You have to keep the hope until the release of the final version of Sierra 12.4 or later with MacOS Emoji 10.13 ? Link to comment Share on other sites More sharing options...
PMheart Posted March 25, 2017 Share Posted March 25, 2017 IMHO we don't have to worry, we may just refine FrequencyVectors to make it more compatible with our CPUs, which may be also unnecessary. As for XCPM, no changes required. This might also why XCPM came in and replaced the old AppleIntelCPUPowerManagement mechanism. Mainly flexibility I guess. Although no source code to refer to... 1 Link to comment Share on other sites More sharing options...
mfc88 Posted March 25, 2017 Share Posted March 25, 2017 ssdtGen by mfc88 Introduction: ssdtGen is an automated bash script that attempts to build and compile SSDTs for X99/Z170 systems running Mac OS. How to download: You can download the latest version of ssdtGen to your Desktop by entering the following command in a terminal window: cd ~/Desktop && curl -O -L https://raw.githubusercontent.com/mattcarlotta/ssdtGen/master/ssdtGen.sh You can then verify the downloaded size (should be about 34kb): wc -c ssdtGen.shYou must change the file permissions to make it executable: chmod +x ssdtGen.shLastly, use this command to run the script: ~/Desktop/ssdtGen.sh Script Commands: buildall (will attempt to build all SSDTs) build NAME (will attempt to build a single SSDT) debug (will attempt to build all SSDTS while generating a debug_output.txt file) help (will display help instructions) exit (will exit the script) *** Currently looking for user's to test the script and report any errors or problems from running it. *** If any errors or problems occur, follow on-screen instructions to run in debug mode then attached the debug_output.txt to this thread. ************************************************************************************************** * Important Notes: * ************************************************************************************************** *** DSDT ACPI tables must be vanilla†. If any devices are renamed, forget about it. Won't work. This script (as of now) only supports x99/z170 systems. This script will install IASL to the usr/local/bin directory if it's missing from usr/bin or usr/local/bin This script is in beta testing. Therefore, expect some problems to occur! If a SSDT-xxxx.aml fails to compile, then it won't be saved. Check the terminal output for errors. † XHCI must be named XHC via config.plist DSDT patch (recommended to install USBInjectAll.kext + XHCI-x99-injector.kext with a custom SSDT-UAIC.aml): Rehabman's Guide for Creating a Custom SSDT for USBInjectAll.kext My Guide for using UsbInjectAll.kext with a Custom SSDT-UIAC.aml **Note: This script is highly experimental! Use any generated SSDTs with caution. ************************************************************************************************** Change Logs: 0.0.2b: ✓ Check for "File System Protection" instead of "Kext Signing" ✓ Removed MaciASL (use your own editor) ✓ Moved away from downloading/compiling IASL and now moved to a precompiled version ✓ Xcode no longer needed ✓ SIP gives warnings instead of errors 0.0.3b: ✓ Checks for user's motherboard ID, if not x99, ends script ✓ Added some bold styling to errors so that they stand out from regular text ✓ Added user choices: build, debug, help and exit ✓ Debug now outputs running script (up until it errors and script ends) and attaches an IOReg output (one file: debug_output.txt) ✓ Help displays instructions on how to run and what each of the SSDTs do 0.0.4b: ✓ Unfound device properties no longer kill entire script ✓ Added and trimmed down user choice commands ✓ Updated help instructions to reflect new commands 0.0.6b: ✓ Fixed some SSDT build mistakes, where the same device was being injected and then subsequently set to 0 ✓ Hardcoded compatible-ids/device-ids for HECI and LPC0 ✓ Fixed GPU device-id IOReg search to return 1 result, instead of 2: 1 result: device-id <C2 17 00 00> 2 results: device-id <02 A8 00 00> device-id <C2 17 00 00> ✓ Fixed compatible-id IOReg search to return 1 result, instead of 3: 1 result: "compatible" - "pci8086,8d3a" 3 results: "compatible" - "pci1043,8600,pci8086,8d3a,pciclass,078000," 0.0.9b: ✓ Removed SSDT-EVMR (Intel SPSR controller) -- not needed nor supported/updated by Intel ✓ Refactored SSDT-SMBS to include Apple "mikey" driver (thanks to Mald0n's DSDTs) ✓ All devices will now show up in System Report's "PCI" tab (thanks to Fergarth for reporting missing PCI devices) ✓ Adjusted SSDT-GFX1 to only inject necessary properties (removed any superfluous properties) ✓ Found and fixed that SSDT-GFX1 (GPU) injection can fail due to a missing HDAU "PinConfiguration" property 0.1.0b: ✓ Added initial support for z170 motherboards!!! ✓ Updated help section for X99/z170 SSDT names ✓ Removed the superfluous .dsl header notes 0.1.1b: ✓ Forced a temporary Terminal window resize for optimal viewing (102x30) ✓ Added initial support for a building a single SSDT for a NVME device† ✓ Updated help section for NVME SSDT building ✓ Refactored the commands to be more user-friendly and declarative † At the moment, it does not support incomplete ACPI tables -- only works in conjunction with a spoofed HackrNVMeFamily-10_xx_x.kext 0.1.2b: ✓ Added complete support for a NVME SSDT coinciding with a spoofed HackrNvmeFamily.kext -- which includes support for incomplete, bridged, and standard ACPI paths ✓ Adjusted the NVME SSDT to show up in About This Mac->PCI as "Built-In" versus "Ethernet" ✓ Fixed mobo check to include Asus Z170 "Maximus" ✓ Adjusted debug mode to now allow on-the-fly writing to Terminal and to an output file ✓ Optimized code for less redundancy 0.1.3b: ✓ Adjusted GPU IOREG look-up because of varying ACPI paths ✓ Adjusted the NVME prompt inputs to have built in syntax and length checks ✓ Fixed SMBS/SBUS SSDT mistake, where Z170 boards used wrong hardcoded device in notify operators ✓ Added notes to the entire source ✓ Optimized code for less redundancy 5 Link to comment Share on other sites More sharing options...
Fergarth Posted March 25, 2017 Share Posted March 25, 2017 Congratulations mfc, you are getting a Pro Link to comment Share on other sites More sharing options...
MaLd0n Posted March 25, 2017 Share Posted March 25, 2017 block me? Permission denied (publickey). fatal: Could not read from remote repository. 1 Link to comment Share on other sites More sharing options...
mfc88 Posted March 25, 2017 Share Posted March 25, 2017 block me? Permission denied (publickey). fatal: Could not read from remote repository. Oops! Github requires registered SSH keys for gitclone. Updated post above so that anyone can download it now. Congratulations mfc, you are getting a Pro Still patiently waiting for an IOReg with my EFI installed. 1 Link to comment Share on other sites More sharing options...
Fergarth Posted March 26, 2017 Share Posted March 26, 2017 Still patiently waiting for an IOReg with my EFI installed. I understand, but I have run out of time and the few times I have used the hack has been for important things. Things that need stability in the system and are not compatible with experiences at this time. Many times I've been here, just like now, or are either on the mobile phone or the laptop. But I'm not forgetting what you asked me to do. Link to comment Share on other sites More sharing options...
PMheart Posted March 26, 2017 Share Posted March 26, 2017 @mfc88 Hi. First of all thanks for your hard work and nice to meet you here again! In ssdtGen.sh L143, we should check 'Filesystem Protections' instead of 'Kext Signing', I think this should be a typo. L159, I think change to a not operator is enough, because you've let the log go to /dev/null which is useless... And about the whole "_checkPreInstalled()", I think it's somewhat complicated, IMHO, uploading a pre-compiled iasl CLT to your GitHub and download it when necessary is enough, and install it to /usr/local/bin, that is not protected by SIP. BTW, I don't get any exact use of MaciASL.app and thus why we need it? And why you need to mess up with some unrelated devices? (Audio, Graphics, USB, etc) Also. We can make a mother board check, please try: ioreg -lw0 -p IODeviceTree | awk '/OEMBoard/ {print $4}' | tr -d '<"">' Well, the output may be different from each X99-based testers, so please use w/ caution. 1 Link to comment Share on other sites More sharing options...
mfc88 Posted March 26, 2017 Share Posted March 26, 2017 @mfc88 Hi. First of all thanks for your hard work and nice to meet you here again! In ssdtGen.sh L143, we should check 'Filesystem Protections' instead of 'Kext Signing', I think this should be a typo. L159, I think change to a not operator is enough, because you've let the log go to /dev/null which is useless... And about the whole "_checkPreInstalled()", I think it's somewhat complicated, IMHO, uploading a pre-compiled iasl CLT to your GitHub and download it when necessary is enough, and install it to /usr/local/bin, that is not protected by SIP. BTW, I don't get any exact use of MaciASL.app and thus why we need it? And why you need to mess up with some unrelated devices? (Audio, Graphics, USB, etc) Also. We can make a mother board check, please try: ioreg -lw0 -p IODeviceTree | awk '/OEMBoard/ {print $4}' | tr -d '<"">' Well, the output may be different from each X99-based testers, so please use w/ caution. Edited. - Will consider the board check. However, since I can't test it myself using other boards, it's hard to implement. For now, user's must use common sense. 1 Link to comment Share on other sites More sharing options...
PMheart Posted March 26, 2017 Share Posted March 26, 2017 ✓ Fixed File System Protection mistake - Left L163 and L210 for debugging purposes. Planning on adding a debug option in the future that'll replace this and output to a file. - I don't want to maintain IASL nor MaciASL, so I'll keep all downloads external, as well as keep all installation directories the same per Rehabman's guides - MaciASL is installed so that a user can open the .AML to make sure properties are correct. IASL likes to compile despite obvious mistakes. - GPU/Audio injection is what most user's will be looking for. Doesn't make sense to exclude it. From a programming stand-point, it'll cause the most headaches. But, I'll manage for now. - Will consider the board check. However, since I can't test it myself using other boards, it's hard to implement. For now, user's must use common sense. Well, yes. You may need to add some arguments to adjust these things. I don't think we need to really maintain iASL, (such as keeping it up-to-date), it's just a compiler, which is used to compile AML. As you see, Pike hasn't updated iASL for such a long time... So anyway I think a pre-compiled binary is enough. Alright, keep your mind, but typically I don't want to install anything else which is unrelated to our major target... I see, so we may rename this repo, couldn't we? Well, I think we may introduce a `case` for that, although we may need to add it for a couple of time... 1 Link to comment Share on other sites More sharing options...
mfc88 Posted March 26, 2017 Share Posted March 26, 2017 ssdtGen changelog 0.0.2b: ✓ Check for "File System Protection" instead of "Kext Signing" ✓ Removed MaciASL (use your own editor) ✓ Moved away from downloading/compiling IASL and now moved to a precompiled version ✓ Xcode no longer needed ✓ SIP gives warnings instead of errors Things to add: - "Help" option within program describing each SSDT's function - Left L156 and L166 for debugging purposes. Will be adding debug output soon. - Option to build one or more user specified SSDTs - Option to build uncompiled SSDT-xxxx.dsl - Motherboard checks 2 Link to comment Share on other sites More sharing options...
Fergarth Posted March 27, 2017 Share Posted March 27, 2017 MacOS Sierra 10.12.4 on AppStore! All right here. Running at 100% just waiting for the Nvidia Driver. Come on Nvidia, hurry up! Link to comment Share on other sites More sharing options...
jacoweb Posted March 27, 2017 Share Posted March 27, 2017 Hey! Can anyone help me and point me in the right direction how i can make a SSDT to find my thunderbolt bus in system info? Thunderbolt is working great Link to comment Share on other sites More sharing options...
thenightflyer Posted March 27, 2017 Share Posted March 27, 2017 Hey! Can anyone help me and point me in the right direction how i can make a SSDT to find my thunderbolt bus in system info? Thunderbolt is working great At the moment there is no way to show thunderbolt bus in system info...and nobody with a tb card has created an ssdt for it 1 Link to comment Share on other sites More sharing options...
MaLd0n Posted March 27, 2017 Share Posted March 27, 2017 u can apply patch in DSDT with Name (_SUN, 0x0x) // _SUN: Slot User Number I use it Device (DSB0) { Name (_ADR, Zero) // _ADR: Address Device (NHI0) { Name (_ADR, Zero) // _ADR: Address Name (_STR, Unicode ("Thunderbolt")) // _STR: Description String Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } } Device (DSB1) { Name (_ADR, 0x00010000) // _ADR: Address Name (_SUN, XxXX) // _SUN: Slot User Number Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "AAPL,slot-name", "PCI Slot 1", "built-in", Buffer (One) { 0x00 }, "name", "pci-bridge" }) } } Device (DSB2) { Name (_ADR, 0x00020000) // _ADR: Address Name (_SUN, XxXX) // _SUN: Slot User Number Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "AAPL,slot-name", "PCI Slot 2", "built-in", Buffer (One) { 0x00 }, "name", "pci-bridge" }) } } Device (DSB4) { Name (_ADR, 0x00040000) // _ADR: Address Name (_SUN, XxXX) // _SUN: Slot User Number Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "AAPL,slot-name", "PCI Slot 4", "built-in", Buffer (One) { 0x00 }, "name", "pci-bridge" }) } } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (OSDW ()) { If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b"))) { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "PCI-Thunderbolt", One }) } } Return (Zero) } just create a device with correct name_adr and put Name (_SUN, XxXX) example Name (_SUN, 0x02) // _SUN: Slot User Number Name (_SUN, 0x03) // _SUN: Slot User Number Name (_SUN, 0x04) // _SUN: Slot User Number in my case, into device RP05/PXSX Correct in ioreg and about this mac/pci just check ioreg and apple tables too 1 Link to comment Share on other sites More sharing options...
mfc88 Posted March 27, 2017 Share Posted March 27, 2017 u can apply patch in DSDT with Name (_SUN, 0x0x) // _SUN: Slot User Number I use it just create a device with correct name_adr and put Name (_SUN, XxXX) example Name (_SUN, 0x02) // _SUN: Slot User Number Name (_SUN, 0x03) // _SUN: Slot User Number Name (_SUN, 0x04) // _SUN: Slot User Number in my case, into device RP05/PXSX Correct in ioreg and about this mac/pci just check ioreg and apple tables too How were able to find this? When I dropped my MacPro10,1 tables, it doesn't even show in the DSDT... at all... (checked SSDTs as well) Nevermind, found it referenced in a SSDT. Here's a legit Apple MBPro10,1 thunderbolt ACPI device path: @ SB.PCI0.PEG1.UPSB.DSB0.NHI0: Scope (\_SB.PCI0.PEG1) { OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { ... Device (UPSB) { Name (_ADR, 0x00) // _ADR: Address OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { ... Device (DSB0) { Name (_ADR, 0x00) // _ADR: Address OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { ... Device (NHI0) { Name (_ADR, 0x00) // _ADR: Address Name (_STR, Unicode ("Thunderbolt")) // _STR: Description String Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device { ... Device (DSB1) { Name (_ADR, 0x00030000) // _ADR: Address Name (_SUN, 0x02) // _SUN: Slot User Number OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { (devices UPS0-UPS6) ... Device (DSB2) { Name (_ADR, 0x00040000) // _ADR: Address Name (_SUN, 0x03) // _SUN: Slot User Number OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { (devices UPS0-UPS6) ... Device (DSB3) { Name (_ADR, 0x00050000) // _ADR: Address Name (_SUN, 0x04) // _SUN: Slot User Number Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { ... Device (DSB4) { Name (_ADR, 0x00060000) // _ADR: Address Name (_SUN, 0x05) // _SUN: Slot User Number OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { ... Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (OSDW) { If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b"))) { Store (Package (0x02) { "PCI-Thunderbolt", 0x01 }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Return (Zero) } 1 Link to comment Share on other sites More sharing options...
MaLd0n Posted March 27, 2017 Share Posted March 27, 2017 See iMac17,1 too, its a new SSDT 5 in my DSDT i apply it, mobo GIGABYTE Z170X-UD5TH Device (DSB0) { Name (_ADR, Zero) // _ADR: Address Device (NHI0) { Name (_ADR, Zero) // _ADR: Address Name (_STR, Unicode ("Thunderbolt")) // _STR: Description String Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } } Device (DSB1) { Name (_ADR, 0x00010000) // _ADR: Address Name (_SUN, 0x02) // _SUN: Slot User Number Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "AAPL,slot-name", "PCI Slot 2", "built-in", Buffer (One) { 0x00 }, "name", "pci-bridge" }) } } Device (DSB2) { Name (_ADR, 0x00020000) // _ADR: Address Name (_SUN, 0x03) // _SUN: Slot User Number Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "AAPL,slot-name", "PCI Slot 3", "built-in", Buffer (One) { 0x00 }, "name", "pci-bridge" }) } } Device (DSB4) { Name (_ADR, 0x00040000) // _ADR: Address Name (_SUN, 0x04) // _SUN: Slot User Number Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "AAPL,slot-name", "PCI Slot 4", "built-in", Buffer (One) { 0x00 }, "name", "pci-bridge" }) } } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (OSDW ()) { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "PCI-Thunderbolt", One }) } } Return (Zero) } ... 2 Link to comment Share on other sites More sharing options...
mfc88 Posted March 28, 2017 Share Posted March 28, 2017 ssdtGen updated to 0.0.3beta ssdtGen changelog 0.0.3b: ✓ Checks for user's motherboard ID, if not x99, ends script ✓ Added some bold styling to errors so that they stand out from regular text ✓ Added user choices: build, debug, help and exit ✓ Debug now outputs running script (up until it errors and script ends) and attaches an IOReg output (one file: debug_output.txt) ✓ Help displays instructions on how to run and what each of the SSDTs do 0.0.3b Script Commands: build (will attempt to build SSDTs) debug (will generate a debug_output.txt file) help (will display instructions) exit (will exit the script) 1 Link to comment Share on other sites More sharing options...
Recommended Posts