Contribute
Register

Adding PCI-e sata card breaks sleep

Status
Not open for further replies.
Joined
Dec 3, 2014
Messages
97
Motherboard
Intel DX58SO
CPU
W3680
Graphics
Vega 56
Mac
  1. MacBook
  2. MacBook Pro
So I am trying to find a card for this Mojave migration ... I had a sil3124 based card working just fine with El Cap and needed nothing in either the DSDT or a custom SSDT, just the driver bundle.. and native power management and shutdown/sleep/wake worked great

having my initial difficulties with the migration as the SIL based cards panic mojave and are just no longer remotely compatible after reading many threads... so I found a Marvell 88se9215 / ASM109x based card.. it has 6 ports, and is supposed to pick up motherboard raid if you set bios to AHCI/RAID otherwise just the marvell controller is active and it is pricked up in OSx as a 'Generic AHCI Controller'

I have not made any SSDT or DSDT edits and the card is picked up in Mojave. I have a 3 drive apple raid (software) set attached to it and its there and functioning.. its a 1x card and speeds are acceptable given that bandwidth restriction 200MB/s + read and doing a copy of a 32gb file read/write is sustained in the 60-80MB/s which for these very ancient 10+ year old test disks is very respectable

My issue is ... when the card is NOT installed, the system will sleep just about dead nuts on 30 seconds after the button is pressed with drives being parked and fans spinning up immediately prior to power off

when the card IS INSTALLED, the system still disconnects / polls drives and spins up fans at about the 30 second mark but it take anywhere from another 1 to sometimes 2 MINUTES longer before powering off... that is a bit long

FURTHER, and what I can't figure out, is that when the system is woken, things come back up in about the same amount of time and the raid set is still mounted and functioning... but power management is no longer working I think

I have kernel process pid 0 using like 50% of a thread and its keeping all my cores throttled up at 25-26x instead of 12 and power at the wall is 230+ watts instead of about 140 at idle...

so my question .. is its likely power management related but how does one go about addressing it? DSDT/SSDT?

the card is attaching at PEX1 and in ioregexplorer, it seems like dev id and the proper kexts / families are loaded ... so where do I start chasing this down?

normally I wouldn't worry about sleep as much but because I needed to move from my GTX660 to a VEGA... I have to boot single monitor, sleep, turn on the second monitor, then wake in order to use the 2nd monitor at HDMI. actually it wont even bring up the HDMI monitor if its the only monitor .. something to do with this x58 board and its somewhat broken UEFI implementation where I can't disable CSM... so

any thoughts would be appreciated!!

Thanks
 
@jaymonkey

can you weigh in on this..

so far this migration to mojave has been far from easy

my issues with the vega evidently according to Slice revolve around an incompatibility with older motherboards since AMD >7000 family where I can't turn off CSM in the bios... with a hybrid UEFI/BIOS setup I guess card and port initialization is questionable

so using lilu+WEG+ALC as you suggest.. I think is not helping ... its really optimized for making changes assuming there is built in CPU based intel GPU.. which I don't have with westmere...

here is a blurb from WEG manual .. you know the thing most people don't read...

  • What are the hardware requirements for WhateverGreen?
    Full UEFI without CSM. You are strongly recommended to flash a UEFI-compatible ROM unless your card already has it. Failing to do so will quite likely result in issues in multi-monitor configurations and possibly even in single-monitor configurations. It may stil work for non-UEFI motherboards, try at your own risk. There are known issues when using 2 or more GPUs in multi-monitor configurations.

so my board I believe has a CSM as always enabled when UEFI boot is enabled and there doesn't appear to be any bios mechanism to specify CSM off, or any other UEFI only option.. hence I feel that WEG is hit or miss on boot initialization depending on whether the cards bios or UEFI firmware are used at boot...


so basically with this setup, I have to boot with just the 4k DP on, the other HDMI monitor off (not sleeping) or unplugged , hopefully get a proper init of the card.. I always get a display but sometimes it wont wake from sleep, the system comes up in a suspended state.. no crash log, but if that first sleep/wake works... I can then turn on the second monitor and can now sleep and wake with both monitors until the next boot cycle where this dickdance must be repeated. interestingly the boot options that make this more reliable are DART=0 (have it disabled in bios ) , skikigva=96 shikigva-board-id for imacpro darkwake=0 AND HERE IS THE KICKER NVDA_drv=1 (hehe and I don't even have web drivers installed any more) but this seems to help with a proper init..

the bloke has been struggling with his x58 based board and VEGA too, but he is going a different direction where he is using the imacpro sysdef, as it gives him hardware encode/decode and he also has to do the sleep/wake with one monitor but does not get speedstep/power management until that sleep/wake as well.. I tired it.. and I couldn't sleep at all and my cpu was locked at 12 multipliers ... would love to figure out a way to get the GPU side on a imacpro identity while keeping the CPU/chipset on appleintelcpupowermanagement .. perhaps using imacpro with this new lilu cpufriend kext? as that is supposed to insert some powermanagment tables but probably not for my processor generation

anyway getting back to the add in card... it seems to work in all respects and possibly the card itself my not be the issue per-se... looks like upon wake, perhaps interrupts are not being appropriately handled...

strange thing is that the raid on the card comes back up so the card is re-initializing it would seem but perhaps the is an un-handled event that is keeping the processor busy.. like a interrupt that isn't re-initialzed...

any hope of figuring this out? perhaps I need some additional code in the DSDT to ensure that pci-e slot detection and interrupt handling work better.. ?

let me know what files you need.. perhaps you can tell me how to force a spin dump on the kernel_task pid 0 process when its out of control and that will point us somewhere
 
Last edited:
using lilu+WEG+ALC as you suggest.. I think is not helping ... its really optimized for making changes assuming there is built in CPU based intel GPU..


@dragonmel,

Not true ...

As the Lilu + Plugins guide explains WhatEverGreen started life as only supporting AMD GPU's and Nvidia & IGPU's where handled by separate plug-in's. However as the list of GPU plug-in's grew the developers merged them all into WEG. So WEG should take care of configuring a AMD GPU even if there is no IGPU in the system, I think you will find that are many people are using it successfully in a solo AMD GPU system.

With regards to the sleep/wake issues ... i've never had much success with getting Sleep/Wake to work on early desktop generation chipsets (5,6,7,8,9 series) ... I still have issues with my Z97 based system ... i can get it to sleep if i patch parts of the ACPI but when it wakes like you I have monitor issues with the Vega after wake. I spent a long time trying to get it to work but ultimately I gave up on it a long time ago and just shut the system down when i'm done.

Sleep/Wake seems to work much better on desktop Skylake and later gen systems (CPU's that support HWP for power management) ... i'm not saying it's impossible with your Intel DX58SO + W3680 but you may be in for a long ride trying to debug it and it may never work completely as you want. I suspect like you that you may need to work on ACPI patching to make more progress.

I've never built or worked on a XEON class system so I cant really offer you any other suggestions other than what we have already tried ... as you suggest cpufriend may well be worth looking at, its primary use is to allow the use of a non supported CPU in the selected SMBIOS but i doubt it will help with the Sleep/Wake issues.

Sorry I cant be of further assistance ....

Cheers
Jay
 
@dragonmel,

Not true ...

As the Lilu + Plugins guide explains WhatEverGreen started life as only supporting AMD GPU's and Nvidia & IGPU's where handled by separate plug-in's. However as the list of GPU plug-in's grew the developers merged them all into WEG. So WEG should take care of configuring a AMD GPU even if there is no IGPU in the system, I think you will find that are many people are using it successfully in a solo AMD GPU system.

With regards to the sleep/wake issues ... i've never had much success with getting Sleep/Wake to work on early desktop generation chipsets (5,6,7,8,9 series) ... I still have issues with my Z97 based system ... i can get it to sleep if i patch parts of the ACPI but when it wakes like you I have monitor issues with the Vega after wake. I spent a long time trying to get it to work but ultimately I gave up on it a long time ago and just shut the system down when i'm done.

Sleep/Wake seems to work much better on desktop Skylake and later gen systems (CPU's that support HWP for power management) ... i'm not saying it's impossible with your Intel DX58SO + W3680 but you may be in for a long ride trying to debug it and it may never work completely as you want. I suspect like you that you may need to work on ACPI patching to make more progress.

I've never built or worked on a XEON class system so I cant really offer you any other suggestions other than what we have already tried ... as you suggest cpufriend may well be worth looking at, its primary use is to allow the use of a non supported CPU in the selected SMBIOS but i doubt it will help with the Sleep/Wake issues.

Sorry I cant be of further assistance ....

Cheers
Jay


thanks jay...

as for WEG as was thinking my issues stemmed more from the WEG FAQ quote that it doesn't support systems that can't disable CSM

again.. in an ideal world would love to use a imacpro instead of macpro5,1 SMBIOS for the video frameworks.. provided I could still get speedstep... or vice versa.. use a macpro5,1 for the fully working cpu power management and sleep, and patch the video framework binaries.. really all I am missing at this point with the 5,1 sysdef is HEVC Encode.. which for video editing I am not going to miss until export..

the real mac pro 5,1 folks where using WEG to be able to use the boot args that I am using to get 264/265decode and 264 encode.. but many have gone away from it in favor of binary patching the iMac board id directly .. getting the same toolkits.. still lacking the HEVC encode.. which near as I can tell you can only really get with the imacpro SMBIOS

really not looking at ditching this hardware yet.. its starting to grate on my nerves however coming from a fully working el cap install .. like I said.. that install was more rock solid than my real macs

as for the PCI-e card.. no hints.... like I said.. its working, its being loaded by the OS and its being assigned the driver, as a generic AHCI.. but at wake, something is spinning up my cpu with kernel_task pid 0 .. not really doing any work but its got like 50% of one thread but keeps each core at a 25/26 multiplier instead of idling at 12

power at the wall is double at idle after wake so something is amis.. also that pid 0 task has something like 20,000 wakeup in activity monitor .. so its pissed off like a kicked hornets nest...

I was never a good debugger so I don't even know where to begin looking

really using the boot/sleep workaround while not ideal is usable.. but not being able to stick another PCI device on the motherboard is a bit of a show stopper... I might try a PCI-e 4x NVME and get the boot off the ICH so that give me 2 optical and 4 rust on internal sata.. which might be enough
 
Status
Not open for further replies.
Back
Top