Adapter board for putting an NVMe drive in the Mini PCIe slot of the HP T620 thin client.
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
I've installed my adapter board, with a cheap SK Hynix 128G SSD, into my T620. Since I don't have any M1.6 screws, I've temporarily secured it with some kapton tape.
It works!
I've installed Ubuntu on it (using the SATA SSD that came with the T620 as the /boot drive. I am assuming that the BIOS doesn't know how to boot NVMe drives, but I haven't tested it.)
I've used fio to benchmark the drive, per these instructions. All tests are done with 8 threads, queue depth 64.
Test | Results |
Write throughput (1M writes) | 303 MB/s |
Write IOPS (4k writes) | 12019.74 IOPS |
Read throughput (1M reads) | 454 MB/s |
Read IOPS (4k reads) | 38080 IOPS |
The read throughput seems to have nearly saturated the PCIe connection: the mPCIe only has one PCIe v2 lane, which has a theoretical max speed of 500MB/s.
I noticed that with the NVMe drive in place, Ubuntu names my network interface enp2s0, whereas without the NVMe drive, the interface is called enp1s0. This means if you take an existing install and add an NVMe drive to it with this adapter, your network configuration might break. I was able to fix this by editing /etc/netplan/00-installer-config.yaml and adding an entry for enp2s0 underneath the entry for enp1s0:
$ cat /etc/netplan/00-installer-config.yaml # This is the network config written by 'subiquity' network: ethernets: enp1s0: dhcp4: true enp2s0: dhcp4: true version: 2
Create an account to leave a comment. Already have an account? Log In.
Just an idea, did you think about using the pcie 4x RISER pins next to the RAM slots for nvme? people soldered pcie socket there and it worked - making t620 plus out of it. some custom pcie to m2 adapter pcb soldered directly on top of those pins could be doable
Yeah, I thought about that -- in order to fit it into the existing case, I think I'd want something which lies parallel to the motherboard, which would probably rule out a standard PCIe socket. I'm imagining you could just use header pins of the right pitch, but then the modification would be permanently soldered in. Maybe pogo pins could work?
Yes, due to size I was thinking about permanent solution, with big enough holes it could be just filled with solder to make contact? and it could go to left where is more space. Nort sure if 2280 ssd could fit horizontally (when looking at pcb photo) but smaller ssd could fit or it could go down where the msata missing socket is.
Hello, this is interesting that you got gen2 pci-e speeds with t620. I was trying the same for T630 which has M2 slot for wifi and I got A+E M2 to NVME adapter https://www.aliexpress.com/item/1005004941794180.html and unfortunately I only get gen1 speed :-( I hoped t630 with GX-420GI could even have gen3 as per https://www.amd.com/system/files/documents/i-family-product-brief.pdf but no luck. I wonder if bios could have downgraded the pci-e bridge to lower speeds at boot time for power saving or something. In linux via lspci the pcie bridge is shown as having only 2.5GT/s speed :-(
I even tried trick mentioned here https://community.osr.com/discussion/comment/279932/#Comment_279932 but no change when writing to those PCI registers.
I wonder if there's a PCI bridge in the way that's limited to gen2, or perhaps the 4 lanes of the "PCIe Gen 2/3 4x1" have to be the same speed, so they're limited to the lowest common denominator?
oh, maybe, here is lspci output https://gist.github.com/fanoush/d44f1adca708aa00f2eff0eaff75d7cb
so it is shown as two bridges 0:02.2, 0:02.3 both 4x and both show
LnkSta: Speed 2.5GT/s (ok), Width x1 (downgraded)
on the downstream port to builtin ethernet and to nvme. Speed is not marked as (downgraded) here! however they also show
LnkCap2: Supported Link Speeds: 2.5-8GT/s ...
pcie devices itself down below show
ethernet - LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)
nvme - LnkSta: Speed 2.5GT/s (downgraded), Width x1 (downgraded)
so I wonder how t620 pci-e topology is different
I have disabled ethernet in bios and whole 00:02.2 PCI bridge: ... Processor Root Port was gone and it did not help, 02.3 was still there with nvme like before, still only 2.5GT speed, so looks like it is not the lowest common denominator. So I guess it is either the hardware or some power saving/stability configuration done by BIOS at boot time as they expect that both ethernet and wifi is just 2.5GT device :-(
just FYI found relevant document - bios and kernel development guide for t630 chipset, pcie is described here https://www.amd.com/system/files/TechDocs/50742_15h_Models_60h-6Fh_BKDG.pdf#page=158 , the VID/PID numbers in this document matches my hardware. on page 161 it says "All PCIe links are capable of supporting 2.5/5.0/8.0 GT/s data rates." however on page 164 it says " 2.11.4.4.2 ... Note that Gen3 support is only for the graphics link". Still maybe there is a way to enable gen2 at least via those registers described there. However that will probably be a bit slower than SATA 600 speed.
Small followup. I got one T620 and indeed this one goes to gen2 5GT/s just fine. I also got S920 thin client (siimilar AMD chipset) and there was same issue. Fortunately there was undocumented hidden bios option " PSPP (PCIE Speed Power Policy)" settable via command line tool. Unfortunately similar tool for HP bioses does not have this option so with T630 I am out of luck . Still it definitely looks like software configuration issue done in BIOS.
Looks good! Does it work? Are you selling them somewhere?
It does work! I'm not selling them at the moment, but I was thinking I might try setting up a Tindie shop for these. I'm not sure what a good price would be, though. I imagine that they'd be low enough volume that I'd be making a trip to the post office for every sale, which might require a high enough price that nobody would buy them. In the mean time, the design files are on github: https://github.com/EvanKrall/minipcie_nvme_adapter - I had the boards made at JLCPCB for $8+shipping for 5 boards, and got parts at Digikey (SM3ZS067U410AMR1000 and SM3ZS067U410-NUT1-R1200) for $2-3/board in small quantities -- I still need to find a good part number for the screws.
Thank you for your quick reply! I will look into ordering them on my own. Thank you for sharing the files.
If you're getting boards made, you may want to use the version I just pushed, which has a few fixes.
Become a member to follow this project and never miss any updates
Great work! Knowing this worked i found this one as an alternative.
https://nl.aliexpress.com/item/1005005450500391.html?spm=a2g0o.order_detail.order_detail_item.4.1d846d76NCSD8v&gatewayAdapt=glo2nld
With the flexible cable i was able to mount it in one of the original screw holes.