X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=tools%2Fimagetool.h;h=f54809cd57864f8312b378afd513d5470e359ae1;hb=221c4d982698d9f537237108f779b8174ce24c87;hp=3e15b4e22b9a0086c57d3bb6c61a2abe35838a31;hpb=1fddd7b63c69b8da40b5dc737db0382f473f9644;p=oweals%2Fu-boot.git diff --git a/tools/imagetool.h b/tools/imagetool.h index 3e15b4e22b..f54809cd57 100644 --- a/tools/imagetool.h +++ b/tools/imagetool.h @@ -1,9 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * (C) Copyright 2013 * * Written by Guilherme Maciel Ferreira - * - * SPDX-License-Identifier: GPL-2.0+ */ #ifndef _IMAGETOOL_H_ @@ -12,10 +11,12 @@ #include "os_support.h" #include #include +#include #include #include #include #include +#include #include #include #include @@ -24,8 +25,18 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) +#define ALIGN(x, a) __ALIGN_MASK((x), (typeof(x))(a) - 1) + #define IH_ARCH_DEFAULT IH_ARCH_INVALID +/* Information about a file that needs to be placed into the FIT */ +struct content_info { + struct content_info *next; + int type; /* File type (IH_TYPE_...) */ + const char *fname; +}; + /* * This structure defines all such variables those are initialized by * mkimage and dumpimage main core and need to be referred by image @@ -58,6 +69,18 @@ struct image_tool_params { const char *keydest; /* Destination .dtb for public key */ const char *comment; /* Comment to add to signature node */ int require_keys; /* 1 to mark signing keys as 'required' */ + int file_size; /* Total size of output file */ + int orig_file_size; /* Original size for file before padding */ + bool auto_its; /* Automatically create the .its file */ + int fit_image_type; /* Image type to put into the FIT */ + char *fit_ramdisk; /* Ramdisk file to include */ + struct content_info *content_head; /* List of files to include */ + struct content_info *content_tail; + bool external_data; /* Store data outside the FIT */ + bool quiet; /* Don't output text in normal operation */ + unsigned int external_offset; /* Add padding to external data */ + int bl_len; /* Block length in byte for external data */ + const char *engine_id; /* Engine to use for signing */ }; /* @@ -160,6 +183,25 @@ int imagetool_verify_print_header( struct image_type_params *tparams, struct image_tool_params *params); +/* + * imagetool_verify_print_header_by_type() - verifies the image header + * + * Verify the image_header for the image type given by tparams. + * If verification is successful, this prints the respective header. + * @ptr: pointer the the image header + * @sbuf: stat information about the file pointed to by ptr + * @tparams: image type parameters + * @params: mkimage parameters + * + * @return 0 on success, negative if input image format does not match with + * the given image type + */ +int imagetool_verify_print_header_by_type( + void *ptr, + struct stat *sbuf, + struct image_type_params *tparams, + struct image_tool_params *params); + /** * imagetool_save_subimage - store data into a file * @file_name: name of the destination file @@ -177,6 +219,34 @@ int imagetool_save_subimage( ulong file_data, ulong file_len); +/** + * imagetool_get_filesize() - Utility function to obtain the size of a file + * + * This function prints a message if an error occurs, showing the error that + * was obtained. + * + * @params: mkimage parameters + * @fname: filename to check + * @return size of file, or -ve value on error + */ +int imagetool_get_filesize(struct image_tool_params *params, const char *fname); + +/** + * imagetool_get_source_date() - Get timestamp for build output. + * + * Gets a timestamp for embedding it in a build output. If set + * SOURCE_DATE_EPOCH is used. Else the given fallback value is returned. Prints + * an error message if SOURCE_DATE_EPOCH contains an invalid value and returns + * 0. + * + * @cmdname: command name + * @fallback: timestamp to use if SOURCE_DATE_EPOCH isn't set + * @return timestamp based on SOURCE_DATE_EPOCH + */ +time_t imagetool_get_source_date( + const char *cmdname, + time_t fallback); + /* * There is a c file associated with supported image type low level code * for ex. default_image.c, fit_image.c @@ -184,6 +254,10 @@ int imagetool_save_subimage( void pbl_load_uboot(int fd, struct image_tool_params *mparams); +int zynqmpbif_copy_image(int fd, struct image_tool_params *mparams); +int imx8image_copy_image(int fd, struct image_tool_params *mparams); +int imx8mimage_copy_image(int fd, struct image_tool_params *mparams); +int rockchip_copy_image(int fd, struct image_tool_params *mparams); #define ___cat(a, b) a ## b #define __cat(a, b) ___cat(a, b)