Contribute
Register

NVMe native support in 10.13

Status
Not open for further replies.
Joined
Aug 2, 2013
Messages
33
Motherboard
ITX-HM77
CPU
i3-3320M
Graphics
HD4000
Mobile Phone
  1. iOS
NVMe native support in 10.13 with me, no kext hack :D:headbang::headbang::headbang::headbang:
 
Do you mean that in your case there is no need for HackrNVMeFamily-10_12_6.kext and class-code spoof?
 
NVMe native support in 10.13 with me, no kext hack :D:headbang::headbang::headbang::headbang:
Do you mean that in your case there is no need for HackrNVMeFamily-10_12_6.kext and class-code spoof?

Yes. This has been known for some time in the betas...
Certain devices still need a patch (as covered in my patch-nvme github README).
 
Does anyone know if there is power management with 3rd party NVMe SSDs on High Sierra? I switched back to AHCI from a Samsung 961 on Sierra because it wasn't worth the power use or heat (which translated into the fan running all the time). Definitely like to know the answer before I plop down the $$ for one.
 
Does anyone know if there is power management with 3rd party NVMe SSDs on High Sierra? I switched back to AHCI from a Samsung 961 on Sierra because it wasn't worth the power use or heat (which translated into the fan running all the time). Definitely like to know the answer before I plop down the $$ for one.

Some clues:
Code:
SPEEDY-NUC:clover.git rehabman$ strings /System/Library/Extensions/IONVMeFamily.kext/Contents/MacOS/IONVMeFamily |grep -y power
%s::%d:fProposedPowerState = %u
nvme: "AppleNVMeController::setPowerState, ShutdownNVMe() completed with status = 0x%08x\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/AppleNVMeController.cpp:588
virtual bool AppleNVMeController::ShouldDoLowPowerTransitionInSx()
virtual IOReturn AppleNVMeController::ExitLowPowerMode()
( 0 != fNVMePowerStateReporter )
void AppleNVMeController::CreateLowPowerTimerEventSource()
( fLowPowerTimer != 0 )
"Could not create low power timer event source.\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/AppleNVMeController.cpp:1137
void AppleNVMeController::LowPowerTimerEvent()
%s::%d:Running on internal power
%s::%d:Running on external power
%s::%d:Invalid power type
virtual IOReturn IONVMeController::setPowerState(unsigned long, IOService *)
%s::%d:Power change already in progress.
( 0 != fPowerManagerLock )
nvme: "IONVMeController::HandleControllerPowerOff, ShutdownNVMe() completed with status = 0x%08x\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/IONVMeController.cpp:2007
nvme: "IONVMeController::HandleControllerPowerOff, ToggleControllerPower() completed with status = 0x%08x\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/IONVMeController.cpp:2015
Low Power Mode
IOReturn IONVMeController::ToggleControllerPower(bool)
( ( kPCIPMCSPowerStateMask & pmControl ) == 0 )
NVMe Power States
inPS <= ( ( 1ULL << kNVMePowerManagementPSLen ) - 1 )
virtual IOReturn AppleS3XController::setPowerState(unsigned long, IOService *)
SPEEDY-NUC:clover.git rehabman$ strings /System/Library/Extensions/IONVMeFamily.kext/Contents/MacOS/IONVMeFamily |grep -y idle
deep-idle
inLogID <= ( ( 1ULL << kNVMeReadDebugLogV2IDLen ) - 1 )
inLogID <= ( ( 1ULL << kNVMeWriteDebugLogV2IDLen ) - 1 )
%s::%d:Setting idle timer to 1s
 
Some clues:
Code:
SPEEDY-NUC:clover.git rehabman$ strings /System/Library/Extensions/IONVMeFamily.kext/Contents/MacOS/IONVMeFamily |grep -y power
%s::%d:fProposedPowerState = %u
nvme: "AppleNVMeController::setPowerState, ShutdownNVMe() completed with status = 0x%08x\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/AppleNVMeController.cpp:588
virtual bool AppleNVMeController::ShouldDoLowPowerTransitionInSx()
virtual IOReturn AppleNVMeController::ExitLowPowerMode()
( 0 != fNVMePowerStateReporter )
void AppleNVMeController::CreateLowPowerTimerEventSource()
( fLowPowerTimer != 0 )
"Could not create low power timer event source.\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/AppleNVMeController.cpp:1137
void AppleNVMeController::LowPowerTimerEvent()
%s::%d:Running on internal power
%s::%d:Running on external power
%s::%d:Invalid power type
virtual IOReturn IONVMeController::setPowerState(unsigned long, IOService *)
%s::%d:Power change already in progress.
( 0 != fPowerManagerLock )
nvme: "IONVMeController::HandleControllerPowerOff, ShutdownNVMe() completed with status = 0x%08x\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/IONVMeController.cpp:2007
nvme: "IONVMeController::HandleControllerPowerOff, ToggleControllerPower() completed with status = 0x%08x\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-356.1.4/IONVMeController.cpp:2015
Low Power Mode
IOReturn IONVMeController::ToggleControllerPower(bool)
( ( kPCIPMCSPowerStateMask & pmControl ) == 0 )
NVMe Power States
inPS <= ( ( 1ULL << kNVMePowerManagementPSLen ) - 1 )
virtual IOReturn AppleS3XController::setPowerState(unsigned long, IOService *)
SPEEDY-NUC:clover.git rehabman$ strings /System/Library/Extensions/IONVMeFamily.kext/Contents/MacOS/IONVMeFamily |grep -y idle
deep-idle
inLogID <= ( ( 1ULL << kNVMeReadDebugLogV2IDLen ) - 1 )
inLogID <= ( ( 1ULL << kNVMeWriteDebugLogV2IDLen ) - 1 )
%s::%d:Setting idle timer to 1s

Certainly looks like it will make the attempt but I don't know how that compares to what was going on before. Thanks for the info tho.
 
Certainly looks like it will make the attempt but I don't know how that compares to what was going on before. Thanks for the info tho.

Probably we need to inject some properties to enable it.
It may also be conditional on queries to the device (compatibility/NVMe spec issues/Apple specific checks).
Look at an ioreg for Macs with NVMe devices.
 
Probably we need to inject some properties to enable it.
It may also be conditional on queries to the device (compatibility/NVMe spec issues/Apple specific checks).
Look at an ioreg for Macs with NVMe devices.
Hi rehab, i have this error with nvme, at loading still stops at 60%-65%,,even if i tryed usb 2.0, i tryed all the ports, the error still waiting for root device is cause of the appleNvme assert error, it shows in the photo that can';t root, and exitting file cause of the nvme error. I used -v, and it tells: AppleNVme assert failed, i have all photos attached.
 

Attachments

  • 20170928_105850.jpg
    20170928_105850.jpg
    4.4 MB · Views: 445
  • 20170928_105813.jpg
    20170928_105813.jpg
    3.7 MB · Views: 378
  • 20170927_203911.jpg
    20170927_203911.jpg
    3.1 MB · Views: 334
  • 20170927_212029.jpg
    20170927_212029.jpg
    3.9 MB · Views: 331
  • 20170927_212215.jpg
    20170927_212215.jpg
    2.7 MB · Views: 349
  • 20170927_212220.jpg
    20170927_212220.jpg
    2.6 MB · Views: 366
  • config.plist
    10 KB · Views: 155
  • CLOVER.zip
    4.5 MB · Views: 84
  • 20170927_204230.jpg
    20170927_204230.jpg
    2 MB · Views: 318
Hi rehab, i have this error with nvme, at loading still stops at 60%-65%,,even if i tryed usb 2.0, i tryed all the ports, the error still waiting for root device is cause of the appleNvme assert error, it shows in the photo that can';t root, and exitting file cause of the nvme error. I used -v, and it tells: AppleNVme assert failed, i have all photos attached.

"Problem Reporting" files are incomplete (you forgot to press F2)
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 
"Problem Reporting" files are incomplete (you forgot to press F2)
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
OK i attached the correct clover folder with fotos of the error. In the first foto is in -v mode, and it tells: still waiting for root device (tiny letters, is 4k display).Second foto is the progress just before it stops on the first foto. Bios settings: In the third foto are bios settings. UEFI boot mode; Secure boot:disabled.
 

Attachments

  • 20170928_162159.jpg
    20170928_162159.jpg
    3 MB · Views: 266
  • 20170928_105813.jpg
    20170928_105813.jpg
    3.7 MB · Views: 292
  • bios settings.jpg
    bios settings.jpg
    2.7 MB · Views: 317
  • boot mode.jpg
    boot mode.jpg
    2.6 MB · Views: 382
  • CLOVER.zip
    1.7 MB · Views: 90
Status
Not open for further replies.
Back
Top