Architecture Description - Hardware Drivers
The third major layer of Belcarra's USBOTG within the OS kernel is the hardware driver layer. However, as with the function layer, this layer is stratified, less strictly, reducing greatly the scope and complexity of adapting to a new board.
Bus and PCD Driver Library
A body of functions used throughout the low-level subsystem is abstracted in what we called the OTG library, which despite its name applies principally to USB peripheral drivers.
Architecture Specific Files
USB technology as found in particular IC's is assembled from relatively few sources and therefore various manufacturers have important subsystems in common. In addition, even code from a specific vendor and IC is not final to a particular deployment, and therefore Belcarra maintains various libraries internally, of which it releases a subset for a particular purpose.
Platform Specific Files and Configurations
Belcarra maintains a separate concept of platform versus architecture to allow various alternative deployments of the IC, perhaps in combination with external parts (transceivers, etc).