Update `--included-header` parameter
The `--included-header` was "mandatory" when using imgtool with firmware
images generated by the Zephyr build system and it was a source of
issues when it was forgotten. This removes `--included-header` and adds
a new parameter `--pad-header` with inverted semantics, to be used only
when a zeroed header is required to be added to the firmware image.
Signed-off-by: Fabio Utzig <utzig@apache.org>
diff --git a/samples/zephyr/Makefile b/samples/zephyr/Makefile
index 1477bbf..7fe9f10 100644
--- a/samples/zephyr/Makefile
+++ b/samples/zephyr/Makefile
@@ -129,7 +129,6 @@
--header-size $(BOOT_HEADER_LEN) \
--align $(FLASH_ALIGNMENT) \
--version 1.2 \
- --included-header \
--slot-size 0x60000
$(BUILD_DIR_HELLO1)/zephyr/zephyr.bin \
signed-hello1.bin
@@ -155,7 +154,6 @@
--header-size $(BOOT_HEADER_LEN) \
--align $(FLASH_ALIGNMENT) \
--version 1.2 \
- --included-header \
--slot-size 0x60000 \
--pad \
$(BUILD_DIR_HELLO2)/zephyr/zephyr.bin \
diff --git a/scripts/imgtool.py b/scripts/imgtool.py
index ccac193..6531499 100755
--- a/scripts/imgtool.py
+++ b/scripts/imgtool.py
@@ -122,20 +122,19 @@
help='Pad image to --slot-size bytes, adding trailer magic')
@click.option('-S', '--slot-size', type=BasedIntParamType(), required=True,
help='Size of the slot where the image will be written')
-@click.option('--included-header', default=False, is_flag=True,
- help='Image has gap for header')
+@click.option('--pad-header', default=False, is_flag=True,
+ help='Add --header-size zeroed bytes at the beginning of the image')
@click.option('-H', '--header-size', type=BasedIntParamType(), required=True)
@click.option('-v', '--version', callback=validate_version, required=True)
@click.option('--align', type=click.Choice(['1', '2', '4', '8']),
required=True)
@click.option('-k', '--key', metavar='filename')
@click.command(help='Create a signed or unsigned image')
-def sign(key, align, version, header_size, included_header, slot_size, pad,
+def sign(key, align, version, header_size, pad_header, slot_size, pad,
max_sectors, overwrite_only, infile, outfile):
img = image.Image.load(infile, version=decode_version(version),
- header_size=header_size,
- included_header=included_header, pad=pad,
- align=int(align), slot_size=slot_size,
+ header_size=header_size, pad_header=pad_header,
+ pad=pad, align=int(align), slot_size=slot_size,
max_sectors=max_sectors,
overwrite_only=overwrite_only)
key = load_key(key) if key else None
diff --git a/scripts/imgtool/image.py b/scripts/imgtool/image.py
index ea318f7..511c78c 100644
--- a/scripts/imgtool/image.py
+++ b/scripts/imgtool/image.py
@@ -66,7 +66,7 @@
class Image():
@classmethod
- def load(cls, path, included_header=False, **kwargs):
+ def load(cls, path, pad_header=False, **kwargs):
"""Load an image from a given file"""
ext = os.path.splitext(path)[1][1:].lower()
if ext == INTEL_HEX_EXT:
@@ -78,7 +78,7 @@
obj.payload, obj.base_addr = obj.load(path)
# Add the image header if needed.
- if not included_header and obj.header_size > 0:
+ if pad_header and obj.header_size > 0:
obj.payload = (b'\000' * obj.header_size) + obj.payload
obj.check()