• Joel Hutton's avatar
    Reduce memory needed for CoT description · 0b6377d1
    Joel Hutton authored
    
    
    When Trusted Board Boot is enabled, we need to specify the Chain of
    Trust (CoT) of the BL1 and BL2 images. A CoT consists of an array
    of image descriptors. The authentication module assumes that each
    image descriptor in this array is indexed by its unique image
    identifier. For example, the Trusted Boot Firmware Certificate has to
    be at index [TRUSTED_BOOT_FW_CERT_ID].
    
    Unique image identifiers may not necessarily be consecutive. Also,
    a given BL image might not use all image descriptors. For example, BL1
    does not need any of the descriptors related to BL31. As a result, the
    CoT array might contain holes, which unnecessarily takes up space in
    the BL binary.
    
    Using pointers to auth_img_desc_t structs (rather than structs
    themselves) means these unused elements only use 1 pointer worth of
    space, rather than one struct worth of space. This patch also changes
    the code which accesses this array to reflect the change to pointers.
    
    Image descriptors not needed in BL1 or BL2 respectively are also
    ifdef'd out in this patch. For example, verifying the BL31 image is
    the responsibility of BL2 so BL1 does not need any of the data
    structures describing BL31.
    
    memory diff:
    bl1:        bl2:
        text        text
          -20         -20
        bss         bss
          -1463       0
        data        data
          -256        -48
        rodata      rodata
          -5240       -1952
        total       total
          -6979       -2020
    
    Change-Id: I163668b174dc2b9bbb183acec817f2126864aaad
    Signed-off-by: default avatarJoel Hutton <Joel.Hutton@Arm.com>
    0b6377d1
auth_mod.c 11.2 KB