Introduction

This document covers the design approach used for upgrading firmware for RPI RDK Camera devices using XCONF server & TFTP protocol.

Architecture

Design Considerations

Initially we need to do firmware configuration in XCONF server i.e we need to create firmware config ,firmware rule,download filter info(protocol(TFTP),IP address) etc corresponding to RPI MAC address

Next we need to have TFTP server in public network,so that it can be accessed by the device

In RPI we have to create a script which will be called by the systemd service file on boot up,When the device boots the script will read the cloud firmware version using a curl request and it will check with the local FW version,If the device FW version and cloud FW version are different then it will go with further processing as below

RPI will send curl request to XCONF and XCONF will send firmware config info(protocol,firmware location,firmware version,etc..) to RPi & it will process the response and based on the protocol it will download from TFTP server and proceeds with partition creation & flashing

By default RPI is having only SD card support for flashing OS and boot,right now we have only two partitions,one for Kernel(FAT32) ~40MB & other for rootfs(ext3) ~ 360 MB(mmcblk0p1,mmcblk0p2)

As part of our approach,during run time we are creating two more partitions using fdisk and mkfs.ext3 (mmcblk0p3,mmcblk0p4) will be doing reboot to take this partitions into effect

After booting we will be upgrading the new image

Sequence Diagram