USB Storage UASP

Hello.
When users Turris Omnia and Turris 1.x may expect a new package kmod-usb-storage-uas ??
kernel: kmod-usb-storage-uas #1365
The LEDE is already there.

Hello,
I think you noticed my thread, which was in Czech asking for UASP support for Turris 1.x.
I thought that Omnia has it, but according to your’s post apparently it doesn’t have.

I asked them and I received respond only for Turris 1.x.
They said that on Turris 1.x isn’t enough space right now to integrate it, but maybe it will be in Turris OS 4.x.

(more can be find here: https://forum.test.turris.cz/t/zimni-turris-2017-2018/5419 but it’s in thread, which is unfortunately only in Czech. @Tangero should I translate it or you (or your team) will do it also for English speakers?)

Short version:
Both routers should be migrated to LEDE, which is planned to TurrisOS version 4.0, but currently it is planned for spring 2018.

Few minutes ago I asked about UASP support for Turris Omnia.

//EDIT: Translated! :slight_smile:

https://forum.test.turris.cz/t/our-plans-for-2017-2018-which-things-you-can-expect-and-so-on/5487

If you will translate it, it will help - our team is now overloaded with OpenWRT Summit and till next week we have no human power for docs :frowning:

Hello,
I have a good news for you.

We’re currently testing it and you can find in the nightly branch. :slight_smile:

It’s been a long time since the last post.
So I have a question?
Why doesn’t UASP work?

[    5.031381] usb 3-1: new SuperSpeed USB device number 2 using xhci-hcd
[    5.067919] usb 3-1: USB controller f10f0000.usb3 does not support streams, which are required by the UAS driver.
[    5.078226] usb 3-1: Please try an other USB controller if you wish to use UAS.
[    5.085560] usb-storage 3-1:1.0: USB Mass Storage device detected
[    5.091791] scsi host2: usb-storage 3-1:1.0

HDD case USB-SATA chip VL716


chip: https://datasheet.lcsc.com/szlcsc/VIA-Tech-VL716-Q4_C69727.pdf
root@turris:~# cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 4.14
S:  Manufacturer=Linux 4.14.199 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=f1058000.usb
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 4.14
S:  Manufacturer=Linux 4.14.199 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f10f0000.usb3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 4.14
S:  Manufacturer=Linux 4.14.199 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f10f0000.usb3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=2109 ProdID=0715 Rev= 0.00
S:  Manufacturer=VLI Manufacture String
S:  Product=VLI Product String
S:  SerialNumber=000000123AE3
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=896mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:  If#= 0 Alt= 1 #EPs= 4 Cls=08(stor.) Sub=06 Prot=62 Driver=usb-storage
E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 4.14
S:  Manufacturer=Linux 4.14.199 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f10f8000.usb3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 4.14
S:  Manufacturer=Linux 4.14.199 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f10f8000.usb3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
root@turris:~# lsmod |grep uas
uas                    20480  0
root@turris:~# lsusb -t
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=orion-ehci/1p, 480M

Last post is three years old.

Yes it’s true :laughing:

Maybe a patch is required to add in root/drivers/usb/storage/unusual_uas.h with flag “u” ?

similar: https://www.raspberrypi.org/forums/viewtopic.php?t=245931

Ok, if setting a boot parameter is the only thing needed to allow a blacklisted device, that’s worth trying. Does anybody know how to do that on Turris OS?

Now looking more in-depth at the error message in dmesg, it doesn’t seem that the problem is in the HDD enclosure, but in the USB controller chip in the router:

USB controller f10f0000.usb3 does not support streams

T: Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 4.14
S: Manufacturer=Linux 4.14.199 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=f10f8000.usb3

I observe the same on my (Indiegogo-age) Omnia with Akitio SK-2520, which also should support UASP.

So I suppose the topic is a loser.
I support that the built-in USB 3.0 controller in the ARMADA 385 SoC (88F6820) will not support UASP functions
I found suggestions in this link https://github.com/openwrt/packages/issues/12890

Corresponds to the information spit out by the kernel

[    5.067919] usb 3-1: USB controller f10f0000.usb3 does not support streams, which are required by the UAS driver.

I guess I’ll be thinking of selling the Turris Omnia and getting myself something better.

Maybe you could buy a mPCIe USB card with a UASP-capable controller?

Waste of time and money and 1x mPCIe

Dedicated device is the way to go here, imho. Coming from someone who has the NAS perk running…