The information below is taken from MDK v.0.2
The Ara network protocols at Layers 5 and above are defined within the Greybus Specification, also called “Greybus”.
Figure below shows the Greybus protocol for various classes of modules within the context of the Ara network stack implementation in hardware and software. On the hardware end, modules may have native a UniPro interface to the Endo. Example devices include cameras that utilize MIPI CSI-3 for video streaming or mass storage devices that use UFS. New device class protocols built on UniPro for audio streaming, wireless communications and others are also under development. Devices without native UniPro will utilize a Bridge ASIC (HS or GP) to communicate over the UniPro network. A Bridge converts common interfaces such as I2C, USB, and UART for transmission over the UniPro network to an AP Module. Other Bridge ASICs in addition to the current Toshiba HS and GP Bridge ASICs are envisioned.
On the software side, there are 2 classes of modules: those conform to generic device classes and all others. Both classes of modules are supported in software with the Greybus specification, which is implemented as part of a new Linux kernel subsystem. Greybus performs communication between modules using Greybus Operations. A Greybus Operation defines the semantics for a remote procedure call from one module to another. An Operation is implemented by a pair of messages – one containing a request, and the other containing an optional response. The Greybus subsystem implements device class protocols and Bridged PHY protocols in terms of Greybus Operations.
The Greybus subsystem, through the kernel and various subsystem interfaces, facilitates interfaces to the Android platform and Android applications. The Greybus subsystem will include a set of generic class drivers to support common devices such as batteries and human interface devices. These class drivers will communicate with updated Android services and HALs, modi;ed to enable support of unique Ara features such as hotplug and hardware reconfiguration.
Developers of non-class conforming modules may create a custom Android application and utilize accessory-style APIs in the Android platform to interface with bridged PHY and other non-device class APIs within the Greybus subsystem to access data from their module.
MDK 0.2: Figure below shows the Greybus protocol in the prototype system. The Greybus protocol and software implementation will be continuously developed and updated with new features over the course of the Ara prototype development period, culminating with the features described
in the objective system.
As of the current MDK release, generic class drivers for batteries and vibrators have been specified in the Greybus specification, but have not been fully implemented in software. In lieu of generic class drivers, existing prototype modules use device-specific drivers and HALs. HS Bridge ASICs in the Camera, Display, and AP Modules tunnel CSI-2 and DSI data transparently over the UniPro network.
All other Prototype Modules utilize a GP Bridge and bridged PHY drivers in the Greybus subsystem. As of the current MDK release, the Greybus Specification and Greybus subsystem implementation support I2C, GPIO, UART, and PWM protocols. Refer to the Greybus Specification document for details on Greybus Operations and data formats. A summary of the Greybus subsystem is given in the Software section.