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.
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