• Masahiro Yamada's avatar
    fiptool: support --align option to add desired alignment to image offset · 1c75d5df
    Masahiro Yamada authored
    
    
    The current fiptool packs all the images without any padding between
    them.  So, the offset to each image has no alignment.  This is not
    efficient, for example, when the FIP is read from a block-oriented
    device.
    
    For example, (e)MMC is accessed by block-addressing.  The block size
    is 512 byte.  So, the best case is each image is aligned by 512 byte
    since the DMA engine can transfer the whole of the image to its load
    address directly.  The worst case is the offset does not have even
    DMA-capable alignment (this is where we stand now).  In this case,
    we need to transfer every block to a bounce buffer, then do memcpy()
    from the bounce buffer to our final destination.  At least, this
    should work with the abstraction by the block I/O layer, but the
    CPU-intervention for the whole data transfer makes it really slow.
    
    This commit adds a new option --align to the fiptool.  This option,
    if given, requests the tool to align each component in the FIP file
    by the specified byte.  Also, add a new Make option FIP_ALIGN for
    easier access to this feature; users can give something like
    FIP_ALIGN=512 from the command line, or add "FIP_ALIGN := 512" to
    their platform.mk file.
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    1c75d5df
defaults.mk 4.72 KB