The CYGPKG_BUNDLE package implements support for a simple, compact, multi-element, binary distribution format, referred to as a “bundle”. The bundle format is primarily designed to be used for in-field system updates in conjunction with the BootUp lightweight BootROM package.
The format can be easily parsed and processed by deeply embedded systems, and is used to encapsulate multiple discrete binary data blobs and optional metadata. Bundles can therefore incorporate all the elements that may be required for a system update, including application executables, FPGA bitfiles, DSP firmware, application data and so forth.
The bundle package implements an API to parse and extract data from a bundle and an associated host tool used to create and manage bundle images.
A bundle is normally expected to be used as a matched collection of binaries, and is treated as a whole with regards to production and in-field updates. It is NOT expected that in-field operations will ever split and re-combine elements of a deployment package in the field. As such the format is read-only for eCos applications.
Although the bundle format is designed to be flexible and allow modification and extensions, it is vital that for a given target platform that the host-based creation tool and runtime code share a common format and set of expected features. For example the use of MD5 as a “hash” and zlib as a compressor.