Search the Community: Showing results for tags 'NVMe support'.
Found 1 result
Hey all, since many of us are interested in getting our NVMe drives running I started to dig a little bit in Apple's NVMe driver. Since im not an expert on debugging I could need some help here and there. My finding so far: Hardware IDs: from my Samsung 950 Pro 0:107 0:000 PCI (00|0B:00.00) : 144D A802 class=010802 mapped via: PciRoot(0x0)\Pci(0x1D,0x0)\Pci(0x0,0x0)\VenHw(CF31FAC5-C24E-11D2-85F3-00A0C93EC93B,80) Whereas for my board i got the following sunrise point connectors for pci express: Device 8086:A102 Sunrise Point-H SATA controller [AHCI mode] Device 8086:a118 Sunrise Point-H PCI Express Root Port Device 8086:A115 Sunrise Point-H PCI Express Root Port #6 Device 8086:A114 Sunrise Point-H PCI Express Root Port #5 Device 8086:A110 Sunrise Point-H PCI Express Root Port #1 Apples SSD Controller is: Model: "Apple Storage controller" Vendor: pci 0x106b "Apple Inc." Device: pci 0x2001 Lets get to the fun part: I found at least one check to determine if there is an Apple SSD inserted to stop the NVMe Driver from working: 00000000000028be add rbx, 0x18 00000000000028c2 lea r15, qword [ds:0xe3ad] ; "APPLE SSD" 00000000000028c9 mov rdi, r15 ; argument "s" for method _strlen 00000000000028cc call _strlen 00000000000028d1 mov rdi, r15 ; argument "s1" for method _strncmp 00000000000028d4 mov rsi, rbx ; argument "s2" for method _strncmp 00000000000028d7 mov rdx, rax ; argument "n" for method _strncmp 00000000000028da call _strncmp 00000000000028df test eax, eax 00000000000028e1 je 0x290b 0xe3ad = "APPLE SSD" Bascially the method IsBarrierSupported() takes the length of the device descriptor cuts it at a length of "APPLE SSD"[0-8] and does a string comparsion with "APPLE SSD" and it does even more.. But it looks like the controller is not even properly initialized maybe because of the device/vendor ids If anyone of you is more skilled in osx debugging maybe someone can help me out to get my IONVMeFamily up and running in debug mode would be superb to see where the actual load of the kext is failing. Btw. it seems the kext is not automatically loaded I had to start it manually, so we definitly need to forceKextLoad it with clover. (maybe it is started with macbook 13 retina smbios?) Regards Jan