scripts: allow user to set load_addr

Allow the user to set the load_addr field of the header.
This could be useful in multi image situations to help
deduce the image number of an update without having to
look at the swap info.

Signed-off-by: Håkon Øye Amundsen <haakon.amundsen@nordicsemi.no>
diff --git a/scripts/imgtool/image.py b/scripts/imgtool/image.py
index 6701a5b..13b0b3b 100644
--- a/scripts/imgtool/image.py
+++ b/scripts/imgtool/image.py
@@ -103,7 +103,7 @@
     def __init__(self, version=None, header_size=IMAGE_HEADER_SIZE,
                  pad_header=False, pad=False, align=1, slot_size=0,
                  max_sectors=DEFAULT_MAX_SECTORS, overwrite_only=False,
-                 endian="little"):
+                 endian="little", load_addr=0):
         self.version = version or versmod.decode_version("0")
         self.header_size = header_size
         self.pad_header = pad_header
@@ -114,15 +114,17 @@
         self.overwrite_only = overwrite_only
         self.endian = endian
         self.base_addr = None
+        self.load_addr = 0 if load_addr is None else load_addr
         self.payload = []
 
     def __repr__(self):
-        return "<Image version={}, header_size={}, base_addr={}, \
+        return "<Image version={}, header_size={}, base_addr={}, load_addr={}, \
                 align={}, slot_size={}, max_sectors={}, overwrite_only={}, \
                 endian={} format={}, payloadlen=0x{:x}>".format(
                     self.version,
                     self.header_size,
                     self.base_addr if self.base_addr is not None else "N/A",
+                    self.load_addr,
                     self.align,
                     self.slot_size,
                     self.max_sectors,
@@ -292,7 +294,7 @@
         assert struct.calcsize(fmt) == IMAGE_HEADER_SIZE
         header = struct.pack(fmt,
                 IMAGE_MAGIC,
-                0, # LoadAddr
+                self.load_addr,
                 self.header_size,
                 protected_tlv_size,  # TLV Info header + Dependency TLVs
                 len(self.payload) - self.header_size, # ImageSz