USB on Embedded Linux Systems Deep Dive - Marcel Ziswiler, Toradex AG
Channel: The Linux Foundation
Date: 2023-07-12

USB on Embedded Linux Systems Deep Dive - Marcel Ziswiler, Toradex AG

USB is one of the most dominant connection technologies. While it may be connected in a plug-and-play fashion just like on a regular PC, many modern Embedded Systems also contain directly designed-in USB components like USB-to-Ethernet chips. This talk introduces the USB specification and discusses how it may be used on Embedded Systems, from the USB recovery mode of modern SoCs, to boot loaders like U-Boot, the Linux kernel, and accompanying user space. It also introduces some available USB tooling useful in the Embedded space like USB-to-serial adapters/chips, USB (CAN, logic) analysers, or USB oscilloscopes. On the plug-and-play side, it covers role switching which may be realised either via extcon or connector subsystems. It continues up the stack to discuss various options like device/host functionality using different available USB class drivers and may involve such things as configfs or udev rules. The last part concentrates on how to debug various USB-related issues one may encounter. The powerful in-kernel usbmon facility is introduced which may be used to collect traces of I/O on the USB bus and in combination with wireshark allows easy visualising USB protocol analysis. As usual, I complete my talk with a live demonstration of some real-world USB use cases.