Success Stories

Success Stories

Yocto BSP Customizations

Yocto BSP Customizations

Customer had 6 board variants that differ in RAM size, Processor variant, Boot device type. They had to build separate uboot /kernel images with separate build targets in Yocto and wanted to simplify the build and be able to deploy the same firmware image on different variant boards.

Results / Outcomes

  • Customer is only required to build one image to flash on a variety of boards.
  • Customer is able to  deploy a single set of images on to the cloud to update a variety of boards
  • Hardware board variant can now be swapped without changing the update and flashing process based on inventory availability.

The Solution

  • Technology Used: U-boot, Linux kernel 4.x, Yocto, C, Shell scripting, SWUpdate

Customer had several boards which differ in 

  • RAM configuration. 512MB, 1GB, 2GB, 4GB 
  • Processor variant: imx6ul , imx6ull
  • Boot device configuration :  SPI Flash, eMMC
  • WiFi module :  QCA9377, QCA6234
  • BLE module : BMD300, R41Z


  • Created a new machine configuration which will 
  • Added a bbappend file for the kernel recipe to pack dtb files and uImage to kernel.tar.bz2 image.
  • Added recipe to build the new u-boot image, qspi-header and pack them into u-boot.tar.bz2
  • Added init scripts to load wifi driver
  • Modified init scripts to load BLE module firmware


  • Integrated qca9377 WiFi drivers to the build.
  • Upgraded BlueZ to support BLE 4.2


  • Run time RAM initialization based on board ID.
  • Run time DTB loading based on board ID
  • Unification of bootcmd


  • Modified swupdate scripts to generate unified image to be deployed in cloud
  • Modified swupdate scripts on  device to identify the board and flash the appropriate inge from the cloud
  • Build dtb files for all the individual boards
  • Build two u-boot images each for two boot device types (SPI Flash, eMMC).

Download this Success Story
You may also like