Great WorkContrary to previous comments, M90q Gen1 *does* have the PCIe x8 connected from the CPU to the expansion slot. It also looks like 4 lanes from the PCH are also connected, so I'm hopeful a j4cbo style mod would be possible
To manipulate the CPU's PCIe bifurcation settings, we can use the same technique described here and elsewhere, using resistors to modify CPU_CFG[5, 6, 2]
The same as M920q, CPU_CFG5 is terminated on the board and pulled down with a 1K resistor. So "0". Except, it's on the front-side underneath the HSF. No change required here.
Different to M920q, there is no direct position for a pulldown resistor for CPU_CFG6 to GND, because it's position connects GND to a pin of a "QC4". It's not populated on my board so I get the default of "1" - maybe some other SKUs have some automatic bifurcation selection here.
Anyway, to make that a 0 (meaning CFG[6:5] == 00 == x8 + x4 + x4) , I placed a resistor on the pad normally going to from GND to QC4, then jumped it to CPU_CFG6 using 30AWG "wire wrapping wire". Here's how it ended up looking
View attachment 38578
Here's the board pre-mod with annotation, including CFG2 should anyone need it:
View attachment 38576
If your board does has QC4 populated, I'm sure we'd all be interested in what configuration yours shipped in. And if bifurcation somewhat works OOTB. Mine shipped with the 4 port 1Gbps NIC and the x4 riser.
Using 5C50W00877, a PH45 PCIe x8 to x4 + x4 adapter card, here's what 4x TeamGroup MP34 4TB looks like
in linux:
```
$ lspci | grep -Pi "pci|nvme"
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 03)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8) (rev 03)
00:01.2 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4) (rev 03)
00:1b.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #17 (rev f0)
00:1b.4 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Comet Lake PCIe Port #6 (rev f0)
02:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
03:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
04:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
05:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
06:00.0 Non-Volatile memory controller: Lite-On Technology Corporation CL1-3D256, CL1-8D512 NVMe SSD (DRAM-less) (rev 03)
```
physically:
View attachment 38579
I'm not understand the lane swapping feature (CPU_CFG2), so I left it in it's default state (which is floating / +Vccio / "1" ) and my two NVME SSD's worked. I'm not sure if that needs to be changed for other PCIe devices.
Very neat riser! Out of curiosity, would the m.2 slot support other types of devices if there was an adapter? Such as using M.2 M+B key to ethernet.It supports a PCIe x8 link from the CPU on the main x16 slot, and the x4 PCH link on the m.2 slot, and works in all Tiny5 models without any mainboard modifications, just plug and play.
Thanks, and yeah sure it should, it's wired up just like any M-key PCIe-only m.2 slot would be, so as long as it's a PCIe device that fits in an M-key slot it should work. You'll have to see about the physical fit though, space in that area will be limited depending on what kind of PCIe card you put in the main slot.Very neat riser! Out of curiosity, would the m.2 slot support other types of devices if there was an adapter? Such as using M.2 M+B key to ethernet.
I've been researching this for a custom Tiny6 riser actually, it's really neat how Lenovo implemented bifurcation support on the M90q gen 1. It looks like they intended for there to be a server model that had a dual slot riser, and the riser slot has a pin in it that bifurcates the x8 link into x4x4 if it's pulled low by pulling CFG6 low through QC4 that you mentioned. It's a shame QC4 isn't populated on the board, otherwise a plug and play bifurcated riser would have been possible. It's nice enough that they moved the x8 link from lanes 0-7 to lanes 8-15 though, that means a bifurcated riser wouldn't have to reverse the lane order, making routing a heck of a lot easier.Contrary to previous comments, M90q Gen1 *does* have the PCIe x8 connected from the CPU to the expansion slot. It also looks like 4 lanes from the PCH are also connected, so I'm hopeful a j4cbo style mod would be possible
To manipulate the CPU's PCIe bifurcation settings, we can use the same technique described here and elsewhere, using resistors to modify CPU_CFG[5, 6, 2]
The same as M920q, CPU_CFG5 is terminated on the board and pulled down with a 1K resistor. So "0". Except, it's on the front-side underneath the HSF. No change required here.
Different to M920q, there is no direct position for a pulldown resistor for CPU_CFG6 to GND, because it's position connects GND to a pin of a "QC4". It's not populated on my board so I get the default of "1" - maybe some other SKUs have some automatic bifurcation selection here.
Anyway, to make that a 0 (meaning CFG[6:5] == 00 == x8 + x4 + x4) , I placed a resistor on the pad normally going to from GND to QC4, then jumped it to CPU_CFG6 using 30AWG "wire wrapping wire". Here's how it ended up looking
View attachment 38578
Here's the board pre-mod with annotation, including CFG2 should anyone need it:
View attachment 38576
If your board does has QC4 populated, I'm sure we'd all be interested in what configuration yours shipped in. And if bifurcation somewhat works OOTB. Mine shipped with the 4 port 1Gbps NIC and the x4 riser.
Using 5C50W00877, a PH45 PCIe x8 to x4 + x4 adapter card, here's what 4x TeamGroup MP34 4TB looks like
in linux:
```
$ lspci | grep -Pi "pci|nvme"
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 03)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8) (rev 03)
00:01.2 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4) (rev 03)
00:1b.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #17 (rev f0)
00:1b.4 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Comet Lake PCIe Port #6 (rev f0)
02:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
03:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
04:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
05:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5762 NVMe SSD Controller (rev 01)
06:00.0 Non-Volatile memory controller: Lite-On Technology Corporation CL1-3D256, CL1-8D512 NVMe SSD (DRAM-less) (rev 03)
```
physically:
View attachment 38579
I'm not understand the lane swapping feature (CPU_CFG2), so I left it in it's default state (which is floating / +Vccio / "1" ) and my two NVME SSD's worked. I'm not sure if that needs to be changed for other PCIe devices.
EDIT: I think the CPU_CFG2 shall be left alone, because the Tiny 6 units have the PCIe lanes connected to CPU lanes 0..7, not 8...15 like the Tiny 5 units.
Interesting idea, it shouldn't be too hard to make the riser itself for that, the pinout is known. You'd have to be willing to modify the heatsink for that though yeah... you'd lose being able to mount the 2.5" hdd caddy.Has anyone ever tried to design a custom tiny5 riser for the HPE LOMs? the 640FLR sounds like a perfect opportunity to get a cheap 2x25G card in there, looks like there should even be room for a small fan with a 3D printed shroud to cool it.
UPDATE: Doesn't seem as easy as I'd initially hoped. I took a riser from my P320 just to check the mechanical clearances (it's NOT electrically compatible with the LOM connectors). Unfortunately it seems like it will not fit without applying some dremel adjustments to the heatsink assembly. I'll probably try to design the boards at some point anyway, since I've already ordered a bunch of pcie connectors from LCSC. But I don't think I'm willing to modify my heatsink, because those are still quite expensive to buy.
Yeah... And it doesn't seem that it's worth it, because the 640FLR is not actually cheaper than the OEM or Dell branded Connectx-4. Doesn't seem like a deal worth my time.Interesting idea, it shouldn't be too hard to make the riser itself for that, the pinout is known. You'd have to be willing to modify the heatsink for that though yeah... you'd lose being able to mount the 2.5" hdd caddy.
Oh hm, too bad. Would still have been cool though lol.Yeah... And it doesn't seem that it's worth it, because the 640FLR is not actually cheaper than the OEM or Dell branded Connectx-4. Doesn't seem like a deal worth my time.
Now for my second idea... how do I fit a Tesla P4 in there? At this point I think that my best bet is to somehow pull one of the M.2 x4 connections to the outside of the chassis and 3D print an external enclosure with a fan. But I'm worried that I may loose quite a bit of the performance over an x4 slot...
Yeah... And it doesn't seem that it's worth it, because the 640FLR is not actually cheaper than the OEM or Dell branded Connectx-4. Doesn't seem like a deal worth my time.
Now for my second idea... how do I fit a Tesla P4 in there? At this point I think that my best bet is to somehow pull one of the M.2 x4 connections to the outside of the chassis and 3D print an external enclosure with a fan. But I'm worried that I may loose quite a bit of the performance over an x4 slot...