Page MenuHomeFreeBSD

ufshci: set HS series per platform and adapt type per gear
ClosedPublic

Authored by jaeyoon on Tue, Sep 1, 6:07 AM.
Tags
None
Referenced Files
F169847941: D59298.id185536.diff
Wed, Sep 2, 6:13 PM
F169794106: D59298.id185607.diff
Wed, Sep 2, 2:24 PM
F169791353: D59298.id185536.diff
Wed, Sep 2, 2:11 PM
F169592062: D59298.id185536.diff
Wed, Sep 2, 12:31 AM
Unknown Object (File)
Tue, Sep 1, 10:42 PM
Unknown Object (File)
Tue, Sep 1, 10:33 PM
Unknown Object (File)
Tue, Sep 1, 11:24 AM
Unknown Object (File)
Tue, Sep 1, 10:45 AM
Subscribers
None

Details

Summary

The driver always asked for Rate-B. It never set the adaptation
type. The Snapdragon X Elite firmware tunes the PHY for Rate-A.
A Rate-B link dies at every gear there. HS-G4 and above need
initial adaptation. This is a UniPro rule. It applies to
every host.

Add an hs_series field to the device tables. Use Rate-A on the
Snapdragon X Elite. Keep Rate-B on the PCI hosts. A table entry
without an HS series fails to attach. Set PA_TxHsAdaptType to
initial adaptation at HS-G4 and above. Leave it alone below
that. Hosts before UniPro 1.8 do not have it. The Galaxy Book
4 Edge now links at HS-G5 Rate-A.

fio results (128k sequential, 4k random, posixaio):

QD | SEQ_R(MiB/s) | SEQ_W(MiB/s) | RND_R(kIOPS) | RND_W(kIOPS)
----+--------------+--------------+--------------+-------------
1 | 1357 | 1221 | 12.1 | 27.2
4 | 3103 | 3234 | 46.5 | 92.9
32 | 3508 | 3238 | 176.4 | 125.0

Sequential writes land in the WriteBooster buffer. Sustained
writes drop to 556 MiB/s once the buffer runs out.

Sponsored by: Samsung Electronics

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable