Not detecting SSD on SATA port (Marvell 9128)

G'day all.

I've solved this somewhat, but thought I'd bring it up here and see what comes of it. Been using FreeBSD for years on my home server, now wanted to test it out on my desktop machine.

Attempted to install 10.3-STABLE and 11-CURRENT but neither detected my Samsung 850 EVO SSD. Doesn't even show up in dmesg. I thought it had to do with a long delay during bootup and some SATA timeout errors but I think that's a separate issue.

After a bit of stuffing around, I noticed it wasn't coming up in my SATA devices list in my BIOS either - but I have it selected for boot and I was using it daily for Gentoo/Win10. It does, however, appear briefly in a Marvell BIOS status screen, so I figured there might be two SATA controllers on my board.

Opened my box, noticed that my motherboard has 8 SATA ports and the SSD was in port 8, so I moved it to 1. Ah, FreeBSD now detects it. So I installed alongside Gentoo and Win10 and added to my Grub2 config. As expected, Win10 now bluescreens on startup due to being on a different SATA port/ctrlr. Moved it back anyway to see if the installed FreeBSD would boot. Nope - drops to a kernel shell when it goes to init. Hm. Choose between Win10 and FreeBSD... this'll be a hard one. ;)

Looked in the manual, I was right - ports 7-8 are on a Marvell 9128 controller:

  • 4 SATA 3Gb/s ports (SATA3~6 by Intel® P67 PCH)
  • 4 SATA 6Gb/s ports (SATA1~2 by Intel® P67 PCH, SATA7~8 by Marvell® 9128)
  • (P67A-GD65)
  • 2 eSATA ports (back panel) by JMicron® JMB362 (P67A-GD65)
My resolution is to (choose FreeBSD) plug the SSD into port 1 (6Gb/s). But it sounds like the Marvell 9128 driver issue may have been solved (or here) back in v8 or v9...?

I'll have to fix Win10 separately...