
These set of patches are intended for two tasks. The first set of patches are adding support for dumping capsule header information, which is then being used in the binman test framework for testing the capsule generation. This replaces the current hardcoding of offsets used for verifying the capsule contents in the binman tests.
Patch 1 introduces this functionality in the mkeficapsule tool. Patch 4 is using this functionality in the binman tests for capsules.
The other set of patches, 5 and 6 are for adding support for generation of empty capsules in binman. The empty capsules are used for the FWU A/B update functionality.
Changes since V1: * Get rid of the superfluous hdr_size variable in the dump_fmp_payload_header() function * Move the get_binman_test_guid() function outside the Entry_efi_capsule class so that it can be called from outside the module. * Use lowercase characters in the GUID values * Add comments for the _GetCapsuleHeaders() function. * Use a simple dict in _GetCapsuleHeaders() for storing the capsule header values dumped by the mkeficapsule tool. * Use a single boolean value to indicate the generation of either of accept/revert capsule. * Move the parameters added to the list on the same line in a couple of places. * Instead of using two separate boolean values, use a 'capsule-type' property for indicating generation of an accept/revert capsule. * Make corresponding changes in the sanity checks, documentation and tests based on the above change. * Use lower case characters for GUIDs. * Call get_binman_test_guid() from the efi_capsule entry module. * Add the documentation entry for the empty capsules in entries.rst. * Remove the #[address,size]-cells properties from the test dts' for empty capsules.
Sughosh Ganu (6): tools: mkeficapsule: Add support to print capsule headers doc: capsule: Add documentation for the capsule dump feature binman: capsule: Remove superfluous [address,size]-cells properties binman: capsule: Use dumped capsule header contents for verification btool: mkeficapsule: Add support for EFI empty capsule generation binman: capsule: Add support for generating EFI empty capsules
doc/develop/uefi/uefi.rst | 17 ++ tools/binman/btool/mkeficapsule.py | 26 ++ tools/binman/entries.rst | 44 ++++ tools/binman/etype/efi_capsule.py | 24 +- tools/binman/etype/efi_empty_capsule.py | 86 +++++++ tools/binman/ftest.py | 160 +++++++++--- tools/binman/test/311_capsule.dts | 3 - tools/binman/test/312_capsule_signed.dts | 3 - tools/binman/test/313_capsule_version.dts | 3 - tools/binman/test/314_capsule_signed_ver.dts | 3 - tools/binman/test/315_capsule_oemflags.dts | 3 - tools/binman/test/316_capsule_missing_key.dts | 3 - .../binman/test/317_capsule_missing_index.dts | 3 - .../binman/test/318_capsule_missing_guid.dts | 3 - tools/binman/test/319_capsule_accept.dts | 13 + tools/binman/test/320_capsule_revert.dts | 11 + .../test/321_capsule_accept_missing_guid.dts | 11 + .../test/322_empty_capsule_type_missing.dts | 12 + .../323_capsule_accept_revert_missing.dts | 13 + tools/eficapsule.h | 2 + tools/mkeficapsule.c | 227 +++++++++++++++++- 21 files changed, 599 insertions(+), 71 deletions(-) create mode 100644 tools/binman/etype/efi_empty_capsule.py create mode 100644 tools/binman/test/319_capsule_accept.dts create mode 100644 tools/binman/test/320_capsule_revert.dts create mode 100644 tools/binman/test/321_capsule_accept_missing_guid.dts create mode 100644 tools/binman/test/322_empty_capsule_type_missing.dts create mode 100644 tools/binman/test/323_capsule_accept_revert_missing.dts