Camera Hardware Abstraction Layer (HAL)#

The lifecycle orchestrator — it sits between SIPL (application layer) and your UDDF drivers. CameraHAL is the mediator that ensures your driver never has to coordinate with other drivers directly. You implement interfaces; CameraHAL calls them at the right time with the right context.

End-to-end lifecycle sequence:

Camera HAL end-to-end lifecycle from load and discover through shutdown

What does CameraHAL do?#

  1. Loads the right driver — Uses uddf_discover_drivers to fetch DriverInfo.name.

  2. Discovers capabilities — Uses GetInterface(UUID) to find what DDI interfaces your driver supports.

  3. Provides context objects — Uses UDDF CDI to provide IHardwareAccess (I2C/GPIO) and IDriverServices (logging).

  4. Manages driver lifecycle — Uses UDDF DDI to manage calls into the loaded driver.

  5. Hosts the TransportLink — Coordinates transport initialization for the active camera path: GMSL (SerDes link sequence) or CoE (Ethernet-based camera transport). The generic host network stack (for example, interface bring-up outside the camera HAL) is separate; CameraHAL owns the camera transport link orchestration for CoE in the same way it owns SerDes link bring-up for GMSL.

Scope. CameraHAL does not host the SoC CSI-2 capture block; CSI remains in the platform capture/media layer below SIPL.