Contribute
Register

NVMe Power management support - APST

Status
Not open for further replies.
ASPM is still in the flux. I've found that on many of my PCIe ports it is disabled or set to L1 while link capability indicates L0s and L1. I haven't done the efi level implementation as I don't know of any good way to set the PCI registers. Might have to write my own driver based off setpci.

This is a very temporary script that I use. It assumes the presence of lspci and setpci in the same folder.
 

Attachments

  • aspm2.sh.zip
    3.2 KB · Views: 162
Hi guys, new here. I tried this on a MBP 2015 with a 3rd party NMVe. I loaded lilu and nvmefix but the battery drain is still the same as before? The ssd is not entering a lower power state
 
@erkm
I think you’ll need to find a specific NVMeFix thread or go through the bug tracker. As we here can give only some generic advice.
1. Make sure that the power loss is attributed to SSD and not something else, also ensure that your SSD supports APST
2. Make sure that you have NVMePMProxy in ioreg and apst = 1 in the NVMe device
3. Use debugging logging from the driver and see if there is something interesting there
4. Submit a big report
 
@erkm
I think you’ll need to find a specific NVMeFix thread or go through the bug tracker. As we here can give only some generic advice.
1. Make sure that the power loss is attributed to SSD and not something else, also ensure that your SSD supports APST
2. Make sure that you have NVMePMProxy in ioreg and apst = 1 in the NVMe device
3. Use debugging logging from the driver and see if there is something interesting there
4. Submit a big report
Hello, thanks for response, I've got a same problem.
1. Make sure that the power loss is attributed to SSD and not something else, also ensure that your SSD supports APST
// How can I ensure that my SSD support APST ? I'm using NVME Sabrent Rocket 512GB
2. Make sure that you have NVMePMProxy in ioreg and apst = 1 in the NVMe device
// How to set this up ?
3. Use debugging logging from the driver and see if there is something interesting there
// How to see debug logs from driver ?
Thank you very much.
 
Hello, thanks for response, I've got a same problem.
1. Make sure that the power loss is attributed to SSD and not something else, also ensure that your SSD supports APST
// How can I ensure that my SSD support APST ? I'm using NVME Sabrent Rocket 512GB
2. Make sure that you have NVMePMProxy in ioreg and apst = 1 in the NVMe device
// How to set this up ?
3. Use debugging logging from the driver and see if there is something interesting there
// How to see debug logs from driver ?
Thank you very much.
Most of your questions are answered here:
NVMeFix readme

and

you can use IORegistryExplorer to view the IOReg
 
Most of your questions are answered here:
NVMeFix readme

and

you can use IORegistryExplorer to view the IOReg
Thanks for your answer.
1. My SSD support APST.
2. I've checked apst flag throught IORegistryExplorer and is set to "true" and also NVMePMProxy is there - screenshots atached.
3. So I've installed DEBUG version of NVMeFix, but I couldn't find any logs related to NVMeFix besides: "Couldn't alloc class "NVMeFix"". I've used Hackintool to show System log for kernel process from last boot - attached as txt.

Could you please check the log, if is everything allright ?
Thanks.
 

Attachments

  • BootLog.txt
    1.7 MB · Views: 1,309
  • Snímka obrazovky 2020-01-21 o 0.53.08.png
    Snímka obrazovky 2020-01-21 o 0.53.08.png
    97 KB · Views: 336
  • Snímka obrazovky 2020-01-21 o 0.54.16.png
    Snímka obrazovky 2020-01-21 o 0.54.16.png
    203.4 KB · Views: 327
@erkm
I think you’ll need to find a specific NVMeFix thread or go through the bug tracker. As we here can give only some generic advice.
1. Make sure that the power loss is attributed to SSD and not something else, also ensure that your SSD supports APST
2. Make sure that you have NVMePMProxy in ioreg and apst = 1 in the NVMe device
3. Use debugging logging from the driver and see if there is something interesting there
4. Submit a big report

My SSD supports apst.
Also, apst = 1 like you said but its still not working.
 
Ok, somehow my kexts are not loading. Any idea why? I tried repairing permission with hackintool and I also tried with Kext Utility. They still don't load. I get the message: Untrusted kexts are not allowed

EDIT: Is disabling SIP the only way to get them to load?
 
Last edited:
@DimitrisG

This is a very temporary script that I use. It assumes the presence of lspci and setpci in the same folder.

Can you explain, plz where I can find pciutils (lspci & setpci) for macOS X?
 
Status
Not open for further replies.
Back
Top