Jetson Orin Nano開発者キットのUSB OTGポートはSuperSpeedでつながる

## Jetson USB OTG

Jetson開発者キットはflush向けにデバイスモードのUSBポートを必ず用意しており、L4TではUSB Gadgetを使ってデバイスとして振る舞わせることが出来る。
`/opt/nvidia/l4t-usb-device-mode/` にスクリプトがあるので細かいところはそちらを参照。

XavierNXまではMicro USB Type-B（2.0）だったが、Orin Nano開発者キットではUSB-Cになっていたし、デバイスツリーもUSB3.0っぽい書き方になっていたのでOTGでも本当にSSでつながるのかを確認する。

dmesgは以下の通り。
デフォルトでは16MBの`filesystem.img`では計測が難しそうなので2GBに増やしている。
PCからは`sdb`として見えているのでここに対してhdparmでREAD計測してみる。

```
[ 1000.676448] usb 2-2: new SuperSpeed USB device number 4 using xhci_hcd
[ 1000.697212] usb 2-2: New USB device found, idVendor=0955, idProduct=7020, bcdDevice= 0.02
[ 1000.697222] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1000.697227] usb 2-2: Product: Linux for Tegra
[ 1000.697230] usb 2-2: Manufacturer: NVIDIA
[ 1000.697233] usb 2-2: SerialNumber: 1420923007007
[ 1000.797881] rndis_host 2-2:1.0 usb0: register 'rndis_host' at usb-0000:05:00.3-2, RNDIS device, 46:9b:0d:a5:4d:0b
[ 1000.798762] cdc_acm 2-2:1.2: ttyACM0: USB ACM device
[ 1000.799636] usb-storage 2-2:1.4: USB Mass Storage device detected
[ 1000.799934] scsi host1: usb-storage 2-2:1.4
[ 1000.820895] cdc_ncm 2-2:1.5: MAC-Address: 72:b0:fc:2d:2b:42
[ 1000.821301] cdc_ncm 2-2:1.5 usb1: register 'cdc_ncm' at usb-0000:05:00.3-2, CDC NCM, 72:b0:fc:2d:2b:42
[ 1000.844294] cdc_ncm 2-2:1.5 enx72b0fc2d2b42: renamed from usb1
[ 1000.988269] IPv6: ADDRCONF(NETDEV_CHANGE): enx72b0fc2d2b42: link becomes ready
[ 1001.825078] scsi 1:0:0:0: Direct-Access     Linux    File-Stor Gadget 0510 PQ: 0 ANSI: 2
[ 1001.825650] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 1001.826183] sd 1:0:0:0: Power-on or device reset occurred
[ 1001.826867] sd 1:0:0:0: [sdb] 4194304 512-byte logical blocks: (2.15 GB/2.00 GiB)
[ 1001.827509] sd 1:0:0:0: [sdb] Write Protect is on
[ 1001.827517] sd 1:0:0:0: [sdb] Mode Sense: 0f 00 80 00
[ 1001.827869] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1001.831340]  sdb:
[ 1001.833631] sd 1:0:0:0: [sdb] Attached SCSI removable disk
```

## USB3.0

USB3.0対応のケーブルで繋ぐと以下のようにSSで認識


```
$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 2: Dev 4, If 0, Class=Communications, Driver=rndis_host, 5000M
    |__ Port 2: Dev 4, If 1, Class=CDC Data, Driver=rndis_host, 5000M
    |__ Port 2: Dev 4, If 2, Class=Communications, Driver=cdc_acm, 5000M
    |__ Port 2: Dev 4, If 3, Class=CDC Data, Driver=cdc_acm, 5000M
    |__ Port 2: Dev 4, If 4, Class=Mass Storage, Driver=usb-storage, 5000M
    |__ Port 2: Dev 4, If 5, Class=Communications, Driver=cdc_ncm, 5000M
    |__ Port 2: Dev 4, If 6, Class=CDC Data, Driver=cdc_ncm, 5000M
```

```
$ sudo  /sbin/hdparm -t /dev/sdb

/dev/sdb:
 Timing buffered disk reads: 868 MB in  3.00 seconds = 289.15 MB/sec
```

実測値は2313.2Mpbsで安定している

## USB2.0

同じケーブルを[ゆっくり差し込むとUSB2.0](http://qa.elecom.co.jp/faq_detail.html?id=8372)でつながる。
こちらは480Mbpsとなった。

```
lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
        |__ Port 1: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 2: Dev 6, If 4, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 2: Dev 6, If 2, Class=Communications, Driver=cdc_acm, 480M
        |__ Port 2: Dev 6, If 0, Class=Communications, Driver=rndis_host, 480M
        |__ Port 2: Dev 6, If 5, Class=Communications, Driver=cdc_ncm, 480M
        |__ Port 2: Dev 6, If 3, Class=CDC Data, Driver=cdc_acm, 480M
        |__ Port 2: Dev 6, If 1, Class=CDC Data, Driver=rndis_host, 480M
        |__ Port 2: Dev 6, If 6, Class=CDC Data, Driver=cdc_ncm, 480M

```

```
$ sudo  /sbin/hdparm -t /dev/sdb

/dev/sdb:
 Timing buffered disk reads: 108 MB in  3.00 seconds =  35.96 MB/sec
```

実測は287.68 Mbps

## 結論

Orin Nano リファレンスキャリアボードのOTGポートはSuperSpeedでつながる