Contribute
Register

OS X Driver for NVMe M.2 Solid State Drives Released

Status
Not open for further replies.
Having the NVMe drive being seen as an external device problem. I can see in IOReg it's listed as external but for the life of me I can't trace it through my DSDT to be able to fix it. I assume it's just a simple change, would appreciate any help.

Your problem is the AAPL,slot-name you're injecting.
 
Your problem is the AAPL,slot-name you're injecting.
I'm not injecting anything - I applied PJalms patch for Asus boards Intel ESB2 SATA it's the only patch I have needed so far and using Clover FakeLPC.

Martin
 
I'm not injecting anything - I applied PJalms patch for Asus boards Intel ESB2 SATA it's the only patch I have needed so far and using Clover FakeLPC.

Martin

Well, it is clearly there in ioreg, and it certainly isn't coming from your native UEFI firmware...

Maybe the patches are injecting it. You applied the patches. Therefore, you're injecting it. You will need to figure out where it is coming from (it can also be done in a kext). Or maybe some other Clover things you're doing.

If you need help finding it...

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Provide output (in Terminal):
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.
 
Last edited:
Well, it is clearly there in ioreg, and it certainly isn't coming from your native UEFI firmware...

Maybe the patches are injecting it. You applied the patches. Therefore, you're injecting it. You will need to figure out where it is coming from (it can also be done in a kext).

Reverted to the DSDT extracted by using Clover F4. The name I think you are referring to is <"PCI Slot 0"> and is still shows in IOReg, The only 3rd party kexts in use here are FakeSMC, VoodooHDA version 2.8.8 and your HackrNVMeFamily-.kext

This motherboard does have a separate firmware file though and not just the BIOS
 
Reverted to the DSDT extracted by using Clover F4. The name I think you are referring to is <"PCI Slot 0"> and is still shows in IOReg, The only 3rd party kexts in use here are FakeSMC, VoodooHDA version 2.8.8 and your HackrNVMeFamily-.kext

Read post #507.

This motherboard does have a separate firmware file though and not just the BIOS

No idea what you're referring to. I think it is highly unlikely your UEFI firmware from ASUS is injecting Apple specific properties.
 
Well, it is clearly there in ioreg, and it certainly isn't coming from your native UEFI firmware...

Maybe the patches are injecting it. You applied the patches. Therefore, you're injecting it. You will need to figure out where it is coming from (it can also be done in a kext). Or maybe some other Clover things you're doing.

If you need help finding it...

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Provide output (in Terminal):
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.

Output from terminal commands in results.txt file

No results for AppleLPC - No results for AppleHDA. LPC is surprising as it is set in Clover config.plist

My thanks for your time and effort

Martin
 

Attachments

  • TpwUK-Clover.zip
    1.9 MB · Views: 113
  • Martin’s iMac.ioreg
    4.2 MB · Views: 109
  • results.txt
    1,005 bytes · Views: 97
Output from terminal commands in results.txt file

No results for AppleLPC - No results for AppleHDA. LPC is surprising as it is set in Clover config.plist

My thanks for your time and effort

Martin

As for AppleLPC: The ioreg confirms AppleLPC is not loaded. That may be a problem, but is unrelated to the current issue.

You did not press F4 in Clover as requested before collecting EFI/Clover as ZIP (ACPI/origin files are dated 9/23, today is 9/26).

Will also need patchmatic result:

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Attach contents of Downloads/RehabMan directory as ZIP.
 
As for AppleLPC: The ioreg confirms AppleLPC is not loaded. That may be a problem, but is unrelated to the current issue.

You did not press F4 in Clover as requested before collecting EFI/Clover as ZIP (ACPI/origin files are dated 9/23, today is 9/26).

Will also need patchmatic result:

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Attach contents of Downloads/RehabMan directory as ZIP.
New Origin ACPI tables harvested today and as requested RehabMan.zip
Here was me thinking this was going to be quick n easy - lol - famous last words

Martin

**Edit**
Adding Nvidia Web Drivers seems to have re-enabled AppleLPC result below..

85 0 0xffffff7f824e8000 0x3000 0x3000 com.apple.driver.AppleLPC (3.1) F51595F0-F9B1-3B85-A1C3-F984DAD4107E <76 12 5 4 3>
 

Attachments

  • RehabMan.zip
    38.2 KB · Views: 112
  • origin.zip
    130.5 KB · Views: 101
Last edited:
New Origin ACPI tables harvested today and as requested RehabMan.zip
Here was me thinking this was going to be quick n easy - lol - famous last words

Martin

**Edit**
Adding Nvidia Web Drivers seems to have re-enabled AppleLPC result below..

85 0 0xffffff7f824e8000 0x3000 0x3000 com.apple.driver.AppleLPC (3.1) F51595F0-F9B1-3B85-A1C3-F984DAD4107E <76 12 5 4 3>

I think AAPL,slot-name is coming because your DSDT includes _SUN. You can see it at _SB.BR1A.H000:
Code:
                Device (H000)
                {
                    Name (_ADR, 0x00)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

Try removing the _SUN method.

You have an issue with duplicate SSDT tables though. You can tell because your patchmatic output will not disassemble clean (iasl -da -dl *.aml). It will show duplicate symbol _CST. That is a separate problem.

If removing _SUN doesn't help, inject "built-in" with this SSDT
Code:
// add built-in injection for _SB.PCI0.BR1A.H000
DefinitionBlock("", "SSDT", 2, "hack", "nvme", 0)
{
    External(_SB.PCI0.BR1A.H000, DeviceObj)
    Scope(_SB.PCI0.BR1A.H000)
    {
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                "built-in", Buffer() { 0x00 },
            })
        }
    }
}
//EOF
 
Last edited:
I think AAPL,slot-name is coming because your DSDT includes _SUN. You can see it at _SB.BR1A.H000:
Code:
                Device (H000)
                {
                    Name (_ADR, 0x00)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

Try removing the _SUN method.

You have an issue with duplicate SSDT tables though. You can tell because your patchmatic output will not disassemble clean (iasl -da -dl *.aml). It will show duplicate symbol _CST. That is a separate problem.

If removing _SUN doesn't help, inject "built-in" with this SSDT
Code:
// add built-in injection for _SB.BR1A.H000
DefinitionBlock("", "SSDT", 2, "hack", "nvme", 0)
{
    External(_SB.BR1A.H000, DeviceObj)
    Scope(_SB.BR1A.H000)
    {
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                "built-in", Buffer() { 0x00 },
            })
        }
    }
}
//EOF

Ok fixed the repeating SSDT issue by the looks of things (disabling secure device support in BIOS)
Tried adding the SSDT provided by yourself to Clover/ACPI/Patched/ = No fix
IOReg still displays the same AAPL,slot-name
I notice that the "Physical Interconnect Location" = "External" ... My NVMe M.2 is onboard could this be the issue ?

I don't think it will make any difference but here are new Clover F4 tables dump and RehabMan Patchmatic results

My apologies for taking up so much of your time

Martin
 

Attachments

  • origin.zip
    39.7 KB · Views: 79
  • RehabMan.zip
    30.2 KB · Views: 83
Status
Not open for further replies.
Back
Top