Hacker News new | past | comments | ask | show | jobs | submit login

A PCIe SSD speaking AHCI means the boot firmware and OS will see it exactly the same way they would see an add-in card providing one SATA port populated with an SSD that is mysteriously faster than a 6Gbps SATA connection should allow. Those PCIe SSDs used AHCI exactly because that's what everything already had drivers for.



That's the thing, not everything had the drivers. Gigabyte in particular omitted the important bits for a while. I'm not going to claim I'm an expert, but I ended up with a very fast SSD which could only be made bootable by extracting parts of another vendors BIOS and creating a custom UEFI image with them added, and life is far too short for that.


What you're describing sounds like the process for adding NVMe support to a board that shipped with a PCIe M.2 slot but no NVMe driver in the firmware. There were quite a few of those circa Intel's Z97 chipset, and motherboard vendors were inconsistent about when or whether they shipped firmware updates to add NVMe support. A few early NVMe SSDs included a PCI Option ROM to provide NVMe capability on systems that didn't already have it. For any other NVMe SSD, the firmware needed to be modified to add a UEFI DXE driver for NVMe to enable booting.

There were very few consumer PCIe SSDs sold before the adoption of NVMe, and they were almost exclusively sold to OEMs rather than as retail products. A few like the Samsung XP941 and SM951 were available through grey-market retailers for about a year before Samsung launched the 950 PRO as an official retail product, using NVMe (with an Option ROM). (Note: the SM951 existed in both AHCI and NVMe variants, so some of those grey-market retail sales were of drives that were essentially 950 PROs with slightly older flash).

It's not entirely impossible that Gigabyte shipped boards that couldn't boot from AHCI PCIe SSDs. But it would be difficult for that to be a driver issue. I'd expect those boards to also have difficulty booting from an add-in SATA controller card, because the difficulty booting from AHCI SSDs would have to come not from a lack of an AHCI driver but from a misconfiguration preventing that driver from being used with anything other than the SATA controller built-in to the motherboard.

How sure are you that you didn't miss the brief era of AHCI SSDs entirely and are simply remembering early NVMe teething issues?


I am 100% sure. It is indeed an SM951/M2/ACHI[sic, that's what's printed on it], I have it in front of me. It went in the only system I've built in the last 15 years, so there's no room for confusion.

It had to be AHCI because macOS didn't support NVMe in this era, and the motherboard was also chosen for Hackintosh compatibility, but I only ever used it as a data drive because of the boot issues. That was probably the best option for its use as a fast compile machine anyway, but it did become a PITA when I wanted to sell the machine.

I'm afraid I am not familiar with this technology - as I said I am not an expert - so perhaps driver is the wrong word. Perhaps I did end up reading advice relating to the NVMe variant, information was very hard to come by. All a very small historical footnote now anyway!


It's still grand that NVMe massively improved the world beyond "can it boot". Having 65536 different submission queues, having read/write opa take 1 rather than 6 round trips, and a variety of other improvements.

I think we still would have been stuck with a bunch of vendors making exotic expensive boutique flash storage systems for a while had Intel not come by & made a fairly sizable overhaul of the existing protocols.


FYI, nobody supports 65k queues. The protocol allows it, but the hardware has lower limits. Most SSD controller vendors have had trouble supporting enough queues to assign one per CPU core on high-end systems contemporaneous with the SSDs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: