R3NE07 / Futro-S740

319 stars 49 forks source link

SATA1 #11

Open poldy79 opened 1 year ago

poldy79 commented 1 year ago

Ich habe an einem S740 SATA0 und SATA1 inkl. 0402 Kondensatoren nachgelötet. SATA0 funktioniert auch und man kann davon ebenfalls Booten.

An SATA1 wurde die gleiche SSD nicht erkannt.

SATA1 liegt ja auch am M.2-Slot für die SATA-SSD an, vermutlich muss man noch 0-Ohm Wiederstände umlöten, um SATA1 vom M.2 Slot zu entkoppeln und auf den SATA1-Port auf dem Mainboard zu verbinden.

Hat es jemand mehr Infos hierzu?

ronmichel commented 1 year ago

Hi @poldy79 Bist du mit dem Problem schon weiter gekommen? Ich würde auch gerne den Sata1 Port auf dem Board aktivieren um den m2 für pci.e verwenden.

poldy79 commented 1 year ago

Nein, habe in der Richtung auch nicht mehr weiter untersucht.

In meinem Setup kann ich SATA0 (auf dem Mainboard nachbestückt) verwenden UND eine m.2 2280 über ein Adapter-Boad in den WLAN-m.2-Slot stecken. Der m.2 Slot für SATA-SSDs ist dann aber nur noch 2230 lang.

Möchtest Du zwei SATA-Geräte anschließen?

poldy79 commented 1 year ago

Cablecc Motherboard NGFF B/M-Key M.2 auf vertikale SATA-Festplatte, 7-polig, SSD PCBA-Verlängerungsadapter https://amzn.eu/d/5gBRBDW könnte ggf. helfen, wenn man zwei SATA-Ports + NVME nutzen möchte.

ronmichel commented 1 year ago

Danke für die Antwort. Mein Plan war es zwei Sata Ports zu nutzen und trotzdem die pcie lanes der beiden M2 Slots zur Verfügung zu haben (für Google Coral). Leider habe ich auch keinen Adapter finden können der mir aus einem m2 Slot sata und pcie zur Verfügung stellen kann.

poldy79 commented 1 year ago

@ronmichel Ist in diesem Kontext OT: aber hast du schon eine Bestätigung, dass der M.2 mit SATA tatsächlich auch PCIe drauf hat?

bernid commented 1 year ago

Hat jemand ein SATA1-Laufwerk? Leider nicht für mich. Ich möchte 3 HD-Laufwerke direkt am S740 betreiben (keine Adapter). Im Moment funktionieren zwei: M.2 (WD Blue SN500 / PC SN520 NVMe SSD) und SATA0. Was tun, um SATA1 zu entsperren? Hast du im Bios den SATA1 Port aktiviert? In meinem Fall funktioniert alles, was ich im BIOS überprüfe (SATA1 deaktivieren/aktivieren), nicht. Vielleicht ist es ein Bios-Bug? Ich habe mein Löten der SATA-Buchse und der Kondensatoren überprüft und es ist in Ordnung.

poldy79 commented 1 year ago

@bernid Sorry if I ask - do you prefer english?

I have followed the traces of SATA1 - and they terminate at pads of a non populated chip. Currently I do not know which chip that would be.

Yet I have not identified the traces of the m.2-SATA-Port.

I suspect that the m.2-SATA-Port is hard wired to SATA1 of the processor and we have to change some 0-Ohm resistors to route the SATA1-Socket to the processor or to the not populated chip.

bernid commented 1 year ago

Hi, Yes English would be better. Probably my previous post created with the help of a translator was terrible in German ;)

I bought for a pennies damaged D3544-S3 motherboard so i can check what chip it is. Is it the one placed at a 45 degree angle on the bottom side? Aren't you afraid of problems with the BIOS in correctly detecting SATA1?

poldy79 commented 1 year ago

The CPU supports only two SATA-Ports. SATA0 is hard-wired to the CPU. So soldering the connector and the capacitors works for us.

With the S740, SATA1 is connected to the B-Key m.2-Slot. From the m.2, it is directly routed to an HDS3212 IC. I assume this is a multiplexer/switch. I have not found a datasheet. From this IC there are two possible path down to the CPU. Which path is SATA1 is currently unknown. The other path to the CPU could be USB or PCIe, which could be routed to the m.2-Slot (but then with different keying).

The SATA1-Connector (which can be soldered), is terminating at the missing IC. In order to route SATA1 from the CPU, we would have to populate the missing IC (and some capacitors). I assume, that this would also be a HDS3212. If this chip would be present and correctly controlled, changing some 0-Ohm Resistors should be sufficient to use the SATA1-Socket instead of the m.2 for SATA1.

Open points:

ronmichel commented 1 year ago

Thanks poldy.

If the CPU only supports two SATA it has to be like this: SATA1->DEMUX->1.HDS3212(to MUX PCIe for M2) and 2. SATA1-Connector

It does not make sense that the missing IC is the DEMUX as there would be no connection to the M2. Edit: In our D3544-A the DEMUX is bypassed by the 8 0-ohm resistors (see post below)

On the other hand, have you checked if there is a connection between the input SATA port of the populated HDS3212 and the missing IC contacts?

bernid commented 1 year ago

Yes missing IC is HDS3212. Markings sugests that this is HD3SS3212x Two-Channel Differential 2:1/1:2 USB3.1 Mux/Demux https://www.ti.com/lit/ds/symlink/hd3ss3212.pdf?ts=1679992184988

See comparisons of placement of HDS3212 ICs on the D3544-A and D3544-S bords. There is one on the top layer and the second on bottom. I marked different 0 ohm/jumpers positions. https://www.dropbox.com/s/poe27gpwg78xx41/1b.png?raw=1 https://www.dropbox.com/s/kf27qnia23s8toq/1t.png?raw=1

ronmichel commented 1 year ago

Ok that makes sense. In the D3544-A configuration the 0 ohm resistor routes the SATA signal directly to the HDS3212(to MUX PCIe for M2) In the D3544-S configuration the 0 ohm resistor routes the SATA signal first to the DEMUX.

If we do not need SATA on the M2 we just can grab the SATA data lines at the 0 ohm resistor soldering points.

bernid commented 1 year ago

If we do not need SATA on the M2 we just can grab the SATA data lines at the 0 ohm resistor soldering points.

it seems that would be possible. You would need to get a very thin insulated wires and solder it like this: https://www.dropbox.com/s/3lvvrni10s5498z/P1170427.png?raw=1 I'm tempted to try but I don't have great skills in soldering such small elements.

Back to D3544-S vs D3544-A differences, I noticed 2 additional resistors on D3544-S board (which are missing on D3544-A) : https://www.dropbox.com/s/akmgxxyfifzn6y8/P1170444.png?raw=1

Power (3.3V) is supplied to the missing HDS3212 IC through a 220 ohm resistor. Port select pin SEL is connected to existing HDS3212 SEL pin through 10k resistor.

poldy79 commented 1 year ago

@ronmichel SATA seems to be a differential signal - so equal length of the wires is essential. SATA has 6GBPS. Propagation 150mm per 1ns on FR4 (perhaps). On 6GBPS one bit takes up 0,16ns. So one Bit is 24mm "long".

https://www.ti.com/lit/ml/spraar7j/spraar7j.pdf?ts=1679988941393&ref_url=https%253A%252F%252Fwww.google.com%252F states a skew of 5mills (0,127mm) for SATA. For my understading that is the difference between the length in a differential pair. So using patch wires seems not an option.

We need to use these HDS3212. Perhaps one could design a small PCB that could be soldered instead of the HDS3212.

I have checked SEL of the populated HDS3212, it is HIGH, so Port C is selected to CPU. Thus we would have to resolder the 0-Ohm four resisistors on the bottom side (connected to the not populated IC). SEL has to be driven high with the non-populated IC.

As with the new resistor-configuration the already populated IC is not passed any more (for SATA, but for PCIe?), one could resolder all components from the populated IC to the non-populated one (making it harder to reactivate SATA on the m.2-port).

BTW: Populating both ICs, flpping also some 0Rs on the top-side, SATA1 could be switched between SATA1-Connector and m.2-Slot by software by controlling the non-populated IC. This is then the configuration of the D3544-S.

https://pinoutguide.com/HD/M.2_NGFF_connector_pinout.shtml describes, that the m.2-SSD on a B-key-Slot can specify if it is SATA or PCIe, so the SATA-Lines can be switched from SATA to PCIe. If this is supported on the D3544-A and if ths is the purpose of the populated HDS3212, has to be confirmed. In PCIe-configuration, 2xPCIe could be available. @ronmichel This might explain, why an adapter that exposes SATA + 1xPCIe does not exist... (could be possible, but is not spec conform). But there could exist adapters from B-Key to 2x M-Key... never seen that.

I have ordered https://de.aliexpress.com/item/1005005164232305.html to use m-key SSD in the b-key slot.

ronmichel commented 1 year ago

@poldy79 Good point with the differential signal. The same is true for PCIe. Resoldering the populated IC would also kill the PCIe connection to M2. @bernid If you do not need the PCIe from the M2 slot you can just use an adapter for SATA1

bernid commented 1 year ago

[ ] What m.2-slot-keying has the D3444-S?.

The same as D3544-A so B key. I had spare B+M NVNe SSD and use with D3544-A without issues. Can be bootable. Let's remember that D3544 supports only one lane of PCIe and Gemini Lake SoC ver. 2.0 of PCIe.

@bernid If you do not need the PCIe from the M2 slot you can just use an adapter for SATA1

Thanks. I need it for B+M NVNe SSD. In my project (home server based on Ubuntu server) I need three disks: one for the system (M.2 NVNe SSD), two others (5T 2.5") SATA for other DATA. The second available m.2 port I need for WIFI card (to build an AP).

poldy79 commented 1 year ago

I have tested an adapter (M-Key female to male B/M-Key https://de.aliexpress.com/item/1005005164232305.html) to use a M-key NVME SSD in the B-Key slot. This works as expected, lspci -vv reports one PCIe lane beeing used. So i can confirm that both slots can be used for NVME SSDs (or other cards needing PCIe)

Mechanically this can be somewhat difficult, but there exist M- to A/E-Adapters which are split in a 2230-card with an extension cable to an PCB for holding 2280 M-key cards https://de.aliexpress.com/item/1005004887803663.html

Currently I am not desperate to use SATA1. Sourcing the ICs will be > 15 EUR + some further parts. So probably I will not try this. S740 went up in price. Got mine for 55 EUR at the doorstep, Currently they are >=110 EUR + shipping.

bernid commented 1 year ago

So I've done an experiment with patching SATA wires to bypass a missing HDS3212 switcher. SATA1 works... https://www.dropbox.com/s/ho7xph10vrpit5n/P1170468.png?raw=1 I sweated a bit to solder such tiny wires. I used insulated winding wire from old coil. The wires are 8-9mm long and about 0.15mm in diameter. I scraped the insulation off the ends of the wires. In addition, I used kapton tape to protect the board from a possible short circuit. It came out clumsy but it works.

I had an 13 year old, unused SATA SSD with windows10 installed and I ran a performance comparison test by booting once from SATA0 and once from SATA1 and testing this SSD CrystalDiskMark performance . There are no big performance differences between SATA0 vs SATA1 (both are quite weak BTW). https://www.dropbox.com/s/zebu574yyb9e246/compa.png?raw=1

For me, this is a solution (not very elegant) since I do not use M.2 SATA and I can permanently link the SATA1 socket. This allows me to use 3 disks: NVMe B+M, SATA0, SATA1.

ronmichel commented 1 year ago

Great news! So you can confirm NVMe (PCIe) and SATA1 work simultaneously.

bernid commented 1 year ago

Yes i can confirm :-)

if I soldered wires today, I would use a thinner enameled copper wire, i.e. 0.05mm diameter. Of course, to solder such tiny wires you need at least a headband magnifying glass and thin soldering iron tip.

Good luck!