Software Update for Embedded Systems
Clone or download
sbabic Fix setting recovery_status flag in rescue mode
The "recovery_status" flag (bootloader variable) is set when SWUpdate
starts to install images on the target. This works if streaming mode is
not set. When it is set, some images are already installed before
SWUpdate sets the flag. In case of power-on when a single image is used
or in case pf rescue system, the bootloader cannot recognize that an update
was interrupted and tries to start the production software, that can be
corrupted. The rescue is started again just as fallback after failing to
start the production software, but there are cases where this does not
work.

Check if an image is streamed to the target and sets the
"recoverz?status" flag before writing to the storage.

Signed-off-by: Stefano Babic <sbabic@denx.de>
Latest commit 0e7dfdd Jan 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Licenses Licenses: openSSL exceptions to allow link Sep 4, 2018
bindings Fix build race condition in bindings Oct 11, 2018
bootloader Factorize handling of state Sep 7, 2018
configs travis: add rdiff handler defconfig build Jan 7, 2019
core Fix setting recovery_status flag in rescue mode Jan 21, 2019
corelib Fix setting recovery_status flag in rescue mode Jan 21, 2019
doc handlers: rdiff handler for applying librsync's rdiff patches Jan 7, 2019
examples webserver: introduce a parameter to run postupdate Dec 5, 2018
handlers Drop not required inclusion of openSSL Jan 11, 2019
include Fix setting recovery_status flag in rescue mode Jan 21, 2019
ipc Fix relicensing client library under LGPL2.1 Jul 16, 2018
mongoose webserver: introduce a parameter to run postupdate Dec 5, 2018
parser parser: introduce links in sw-description Nov 20, 2018
scripts acceptance-tests: add tests for signer common name check Nov 16, 2018
suricatta Drop not required inclusion of openSSL Jan 11, 2019
tools client: make pointer test string length test Dec 17, 2018
web-app Update index.html - Fixed typos and improved text. Sep 14, 2018
.gitignore Bindings for LUA as shared library Jul 20, 2018
.travis.yml travis: add rdiff handler defconfig build Jan 7, 2019
COPYING First version of swupdate tool Nov 17, 2013
Kconfig handlers: handler to update microcontroller via UART Jul 20, 2018
Makefile Prepare 2018.11 Dec 5, 2018
Makefile.deps handlers: handler to update microcontroller via UART Jul 20, 2018
Makefile.flags handlers: rdiff handler for applying librsync's rdiff patches Jan 7, 2019
Makefile.help Build documentation from main Makefile Nov 16, 2015
README.md Add vector graphic for logo Feb 21, 2018
SWUpdate.svg Add vector graphic for logo Feb 21, 2018

README.md

SWUpdate - Software Update for Embedded Systems

Build Status

SWUpdate is a Linux Update agent with the goal to provide an efficient and safe way to update an embedded system. SWUpdate supports local and remote updates, multiple update strategies and it can be well integrated in the Yocto build system by adding the meta-swupdate layer.

Examples using this layer with evaluation boards (Beaglebone, RPI3) are provided in meta-swupdate-boards layer.

It supports the common media on embedded devices such as NOR / NAND flashes, UBI volumes, SD / eMMC, and can be easily extended to introduce project specific update procedures.

Pre- and postinstall scripts are supported, and a Lua interpreter helps to customize the update process.

An update package is described by the sw-description file, using the libconfig syntax or JSON. It is even possible to use Lua with a custom syntax.

Here a short list of the main features:

  • Install on embedded media (eMMC, SD, Raw NAND, NOR and SPI-NOR flashes)
  • Allow delivery single image for multiple devices
  • Multiple interfaces for getting software
    • local storage
    • integrated web server
    • integrated REST client connector to hawkBit
    • remote server download
  • Software delivered as images, gzipped tarball, etc.
  • Allow custom handlers for installing FPGA firmware, microcontroller firmware via custom protocols.
  • Power-Off safe
  • Hardware / Software compatibility.

Different components of this software are under different licenses (a mix of MIT, GPLv2 and GPLv2+). License information for any file is either explicitly stated or defaults to GPL version 2.0+.

Please check inside doc directory for documentation or the online documentation (generated from doc/) at: http://sbabic.github.io/swupdate

Contributing to the project

Contributions are welcome ! You can submit your patches (or post questions regarding the project) to the swupdate Mailing List:

swupdate@googlegroups.com

Please read the contributing chapter in the documentation how to contribute to the project.