The APU software encompasses the Linux operating system, configured to boot Cortex® A78 cores. It includes essential drivers, such as the remote proc driver, facilitating firmware loading onto the Cortex®-R52 core. Additionally, an ISP driver extracts the ISP configuration details from the device tree, registers itself within the V4L2 framework, and communicates with the RPU firmware through an IPC driver.
Figure 1. APU Software

The following section describes APU software components in detail.
- The V4L2 Application operating on the APU establishes communication with hardware components through the V4L2 driver interface. Most of the capture pipeline IP drivers are designed to be compatible with the V4L2 framework. A user-space GStreamer/V4L2 application creates, configures, and executes the capture pipeline using the device node interfaces. This configuration ensures smooth control and operation of the capture pipeline within the system.
- The V4L2 ISP Driver retrieves the ISP instance configuration from the device-tree node, which is generated based on the selected hardware configuration within the AMD VivadoIP integrator wizard. Using the data extracted from the device-tree node, the ISP driver configures the ISP instance by transmitting configuration information to the RPU firmware through the IPC mechanism. The allocation of the V4L2 buffers essential for the ISP instance is performed from the reserved memory pool specified in the device-tree node. This specific pool of DDR memory, positioned close to the ISP instance through the DDR controller, mitigates latency concerns. Buffer allocation, managed by the APU ISP driver, involves transmission to the RPU through the IPC. To ensure control and configuration capabilities, both the APU and RPU have access to the ISP/Sensor hardware registers. The software stack, executing on the APU, undertakes several pivotal tasks, including the initialization of the ISP instance IP, RPU firmware deployment, initialization of other system-level components, and communication with the RPU, Application Layer, and other relevant components as required.
- The Remote Proc framework loads the firmware binary onto the RPU and initializes the RPU core's powering up sequence.
- The IPC driver enables communication between the APU and RPU, ensuring seamless data exchange and execution of firmware on the RPU.