.

Introduction

  • This document covers the design approach used for upgrading firmware for RPI RDK Broadband devices using XCONF server & HTTP/TFTP protocol.
  • Downloaded firmware from local/public http server with support of http protocol.
  • Also modified the firmware script with support of both protocols. If user configured http protocol support in xconf UI, On that time firmware will be downloaded by http protocol else firmware will be downloaded by tftp protocol(By default,tftp protocol will be selected).


Design approach

On considering above described requirement,design approach for RDKB firmware upgrade for RPI device as follows,


  • 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/HTTP),IP address) etc corresponding to RPI Board MAC address.
  • Next we need to have HTTP server in public/local 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 systemd service starts 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/HTTP server and proceeds with  flashing by using bcm_flasher command.
  • After booting we will be upgrading the new image.
  • By default, firmware systemd service was enabled in RPI.


How to Enable Firmware Upgrade

        1. Using the below command to re-start the firmware service in RPI,

                             systemctl restart swupdate.service

         2. swupdate logs will be generated in below folder,

                                cat /rdklogs/logs/swupdate.log


Sequence Diagram






  • No labels