Architecture Description - Management Software
A major feature of USBOTG compared to alternatives is a set of user-level utilities, together with appropriate interfaces (API\u2019s), which allow first of all control of the USB subsystem (enable, disable, change active function), and also debug new subsystems, either function or hardware layer.
usbadmin
usbadmin is a basic utility for administering the USB peripheral system. otgadmin is an extension which includes the OTG capability. The latter includes loading an appropriate firmware (subset of the OTG state machine appropriate to the situation).
/proc/usb-functions
This logical device lists the functions (simple and composite) available to be enabled.
/proc/trace_otg
USB depends on tight timings. For this purpose, executing a kernel print (kprintf) operation in many USB contexts is either completely impossible or ill-advised. Nevertheless, is is possible to divide a local print statement between collecting essential information, and formatting/extracting the information at a later opportunity when timing is not sensitive. To this purpose, Belcarra USBOTG has a complete trace subsystem which has successfully revealed the case of innumerable timing sensitive problems.