I built a custom PCB to fit an SSD into the KeyE slot.

All the required PCIe traces are impedance matched on my adapter board. I'm using a Samsung PM9A1-based 1TB SSD capable of PCIe v4.0 with 4 lanes.

Now after examining your schematics: on page 8 there are "PCIE20_X" lanes, they are provided by MULTI_PHY2.

They are directly tied to the KeyE socket (page 18). There is also worth noting these are linked to PEx0 on the socket, and although there is another PEx1 possibility on the socket, it's unpopulated.

Fair enough, according to CPU's datasheet we have a one-lane PCIe2.1 interface on MULTI_PHY2 with Support of 2.5Gbps and 5.0Gbps serial data transmission rate per lane per direction.

So theoretically we can copy files through this PCIe with 5Gbps which is roughly 500MB/s.

dmesg identifies my SSD perfectly, and all filecopy workes perfectly BUT SLOW:

Copy from microSD to SSD: max 50MBps (WRONG!)
Copy from onboard eMMC to SSD: 200MBps (Okay, not so bad)
Copy from SSD to eMMC: max 50MBps (WRONG!)
Copy from SSD to network: max 50MBps (WRONG!)
Bonus: copy from microSD to network: max 50MBps (WRONG!)

I'm using the officially provided Debian from the wikipedia named "Debian 11(Bullseye) Core".

Is there any way to investigate these slow speeds and make them faster? Especially microSD -> SSD, and SSD -> Network.

Thank you