From 0f0cce1c87584cd934289bd027aacf389d84fd12 Mon Sep 17 00:00:00 2001 From: Aditya Prayoga Date: Thu, 5 Mar 2020 17:00:39 +0700 Subject: [PATCH] Initial USB page --- docs/helios64/img/usb/otb_cable_usb_c.jpg | Bin 0 -> 8884 bytes docs/helios64/img/usb/usb_diagram.png | Bin 0 -> 38450 bytes docs/helios64/img/usb/usb_mux.png | Bin 0 -> 21928 bytes docs/helios64/usb.md | 161 ++++++++++++++++++++++ mkdocs.yml | 1 + 5 files changed, 162 insertions(+) create mode 100644 docs/helios64/img/usb/otb_cable_usb_c.jpg create mode 100644 docs/helios64/img/usb/usb_diagram.png create mode 100644 docs/helios64/img/usb/usb_mux.png create mode 100644 docs/helios64/usb.md diff --git a/docs/helios64/img/usb/otb_cable_usb_c.jpg b/docs/helios64/img/usb/otb_cable_usb_c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21c4b75b69bf25a63880565a99a4d215fa244617 GIT binary patch literal 8884 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 Vz$>D7tu!|M714lu0Q~;r{{SixO-ld( literal 0 HcmV?d00001 diff --git a/docs/helios64/img/usb/usb_diagram.png b/docs/helios64/img/usb/usb_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..5ece80dff5841c274cc27009c2e9a4349345ce42 GIT binary patch literal 38450 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�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 literal 0 HcmV?d00001 diff --git a/docs/helios64/img/usb/usb_mux.png b/docs/helios64/img/usb/usb_mux.png new file mode 100644 index 0000000000000000000000000000000000000000..69c182da6cd6211cd169f1a6d4ef1295585ae3ec GIT binary patch literal 21928 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 literal 0 HcmV?d00001 diff --git a/docs/helios64/usb.md b/docs/helios64/usb.md new file mode 100644 index 0000000..8b7a165 --- /dev/null +++ b/docs/helios64/usb.md @@ -0,0 +1,161 @@ + + +## USB on RK3399 +There are two types of USB controller available on RK3399. Each type has two controller so total USB controllers is 4. + +### Generic EHCI USB 2.0 Controller +There are two controller of this type. This controller is Host only controller that is compatible with USB 2.0 and backward compatible with USB 1.1. +Supported speed: + +- High Speed (480 Mbps) + +- Full Speed (12 Mbps) + +- Low Speed (1.5 Mbps) + + +### Synopsys DesignWare USB 3.0 Dual-Role Device Controller +There are two controller of this type. This controller support On-The-Go /Dual Role which mean it can be configured as Host and also Device. +Supported speed: + +- Super Speed (5 Gbps) + +- High Speed (480 Mbps) + +- Full Speed (12 Mbps) + +- Low Speed (1.5 Mbps) + +The controller is connected to Rockchip Type-C PHY. + +## USB on Helios64 + +![!USB Connection](/helios64/img/usb/usb_diagram.png) + +One of EHCI Controller is connected to M.2 socket. + +The first Synopsys DesignWare USB 3.0 Dual-Role Device Controller is connected to USB Type-C connector and configured as OTG with help of FUSB302. + +The second Synopsys DesignWare USB 3.0 Dual-Role Device Controller is connected to USB Hub 3.1 Gen 1 and configured as Host only. + +### Power Budget + +Each of external USB port is protected by Power Distribution switch with following current limit. + +| Port | Voltage | Maximum Current | Remarks | +|------------|-------|------------------|---------| +| USB 3.0 Upper Back Panel | 5V | 900 mA | | +| USB 3.0 Lower Back Panel | 5V | 900 mA | | +| USB 3.0 Front Panel | 5V | 900 mA | | +| Type-C | 5V | 1200 mA | PDO source only | + + +## USB Type-C Functionality on Helios64 + +To simplify the cabling, Helios64 is designed to have + +![!USB Mux](/helios64/img/usb/usb_mux.png) + +### Serial Console + +Serial Console of Helios64 is connected to FT232 USB Serial converter and the USB 2.0 signal of the FT232 is connected to USB 2.0 signals of USB Type-C Port. +Refer to ***JUMPER PAGE*** + + +### DisplayPort Alternate Mode + +Using USB Type-C to DisplayPort cable or USB Type-C to HDMI dongle, Helios64 can be connected to monitor to display Linux Desktop or other GUI application. + +*** Put USB Type-C to DisplayPort cable photo here *** + +*** Put USB Type-C to HDMI dongle photo here *** + +!!! note + DisplayPort Alternate Mode is NOT supported on U-Boot. + + +### USB Host + +Using OTG cable such as, + +![!USB-C OTG Cable](/helios64/img/usb/otb_cable_usb_c.jpg) + +Helios64 can act as USB host and can be connected to various USB device. + +### USB Device + +Helios64 can be used as Direct Attached Storage (DAS) with proper configuration and kernel module. Refer to [Helios64 as Direct Attached Storage (DAS) device](#helios64-as-direct-attached-storage-das-device) + +Helios64 can also used as "USB eMMC reader/writer" for OS recovery purpose. Refer to [USB OTG Port (USB Type-C)](#usb-otg-port-usb-type-c) + + +## USB under U-Boot + +### USB Host Port + +USB Host support in U-Boot is quite minimal, it only support USB storage and USB ethernet. + +### USB OTG Port (USB Type-C) + +USB Type C port is configured as USB device mode as USB Mass Storage connected to eMMC. +This function can be activated by pressing Recovery Button. +This is to serve as a way to (re)install OS to eMMC. + + +## USB under Linux + +### USB Bus Mapping + +| USB Controller | Bus number | Remarks | +|----------------|------------|---------| +| EHCI Host0 | 0 | | +| EHCI Host1 | 1 | | +| DWC3 Typec0 USB 3.0 | 2 | | +| DWC3 Typec0 USB 2.0 | 3 | | +| DWC3 Typec1 USB 3.0 | 4 | | +| DWC3 Typec1 USB 2.0 | 5 | | + +----- ***TBC*** ------ + +### Helios64 as Direct Attached Storage (DAS) device + +Helios64 can be used as Direct Attached Storage (DAS) device with help of Linux USB Gadget kernel module. + +The kernel moodule only export the underlying block device NOT the filesystem layer. Therefore if the block device is formatted with filesystem unique to Linux, +the exported disk may not readable by computer that has Helios64 connected to. + +For example, the block device is formatted with EXT4 filesystem and Helios64 connected to Windows PC as DAS, +the Windows PC will not be able to read the disk content unless 3rd party software/driver installed. + + +!!! warning + Do NOT access Helios64 simultanouesly as DAS and NAS, as the filesystem is not managed by system and can lead to data corruption. + + +#### Individual Disk Exported as Separate Disk + +----- ***more info soon*** ----- + +``` +modprobe g_mass_storage file=/dev/sda,/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde +``` + +----- *** Put Windows Explorer & Disk management screenshot here *** ----- + +----- *** Put lsusb & lsblk here *** ----- + + +#### RAID device exported as One Disk + +----- ***more info soon*** ----- + +``` +modprobe g_mass_storage file=/dev/md/md-raid6 +``` + +----- *** Put Windows Explorer & Disk management screenshot here *** ----- + +----- *** Put lsusb & lsblk here *** ----- + + + diff --git a/mkdocs.yml b/mkdocs.yml index e5ee27d..7f43e10 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -79,6 +79,7 @@ nav: - GPIO : 'helios64/gpio.md' - I2C : 'helios64/i2c.md' - LED : 'helios64/led.md' + - USB : 'helios64/usb.md' - Helios4: - Introduction: 'helios4/intro.md' - Kit Assembly: 'helios4/kit.md'