You are on page 1of 2

* Links -

http://stackoverflow.com/questions/5167226/linux-based-firmware-how-to-implement
-a-good-way-to-update
https://github.com/sbabic/swupdate
* Components -
Backend: Provides update
Backend Channel: Communication medium between Backend and Fetcher
Protocols/Standards:
Fetcher: Retrives update from backend
Fetcher Location: Location of fetcher in the system (e.g.: Bootloader, Dedicated
System, Partition)
Distributor: Distributes the update to a place where update server can access it
Distributor Location: Location of distributor in the system (e.g.: Bootloader, D
edicated System, Partition)
Distributor Channel: The communication channel between Fetcher and Distributor (
e.g.: ACF, Ports, Memory)
Installer: Installs the update
Installer Location: Location of installer in the system (e.g.: Bootloader, Dedic
ated System, Partition)
Target: Secondary storage on Target (NOR, NAND, eMMC)
Every component must consider for following aspects -
Safety: Power loss tolerance, Dependency resolution
Security: Data Integrity, Tamper resistance
Process: Automated or with HMI, Feedback to backend after update, ...
* Use cases -
Component GM Tetra Visteon
Backend USB stick USB stick USB stic
k
Backend Channel USB USB USB or W
ireless or CAN
Fetcher Android Partition Linux Partition Linux Pa
rtition
Fetcher Location Android Partition Linux Partition Linux Pa
rtition
Distributor Android Partition Linux Partition ?
Distributor Location Android Partition Linux Partition ?
Distributor Channel Write to Partition ACF in PikeOS ?
Installer Bootloader Autosar partition Bootload
er
Installer Location Bootloader Autosar partition Bootload
er
Target NVRAM NOR NAND or
eMMC
* Top Areas for requirements -
Sources
Re-flash Detection
Authentication
Failsafe Entry and Recovery Mechanism
Updating software for different devices
Software Flash Image Processing (compression if any)
Image Verification
Software Inter Processor Communication for Flashing
Display Notifications
1. Backend and Installer must know: Image format, Target partition layout, Secur
ity Attributes
2. The partition layout must have entries for redundant copies of: bootloader, k
ernel(s), firmware(s), root-fs
3. If the target platform has NAND flash then, partition layout must consider ba
d-blocks for real as well as redundant partitions
* Per Component Requirements -
** Backend -
** Fetcher -
USB device not compatible or cant read
FTP server down
Intermittent network connection
** Installer -
Bad source image
Software image not on default path
Software on IVI device is the latest
What if systemd/udev fails to wake the SUD
Invalid XML file
No version/configuration file or partition got corrupted
Authentication failure
Copy failure
No free memory

You might also like