SIPL Architecture
The following diagram illustrates the architecture of the SIPL framework.
The SIPL Query component is used to query data about which external devices are supported,
how they are connected to the platform, and how they should be configured. It returns this
information in the form of a PlatformCfg
struct.
The SIPL Device Block component initializes and controls the external devices attached to
the platform. SIPL Device Block is composed of four primary sub-components: Core, Device
Driver Interface (DDI), Camera Device Drivers, and Camera Device Interface (CDI). As a
combined component, SIPL Device Block uses I2C to program the settings specified in the
PlatformCfg
struct. Additionally, it initializes the GMSL
deserializers, brings up the serializer/deserializer (serdes) link(s) between the camera
modules and the deserializers, and begins streaming from the sensors on the camera modules.
Please note that the application does not directly use SIPL Device Block to control and
interact with external devices; instead, it must go through SIPL Core.
The SIPL Core component orchestrates the entire capture process from initialization, through running, to deinitialization. It uses the SIPL Device Block component to initialize the external devices, and initializes the SoC to process captured images. It also allows the user to request images both before and after they have gone through the ISP pipeline and provides queues to deliver those images to the user.