2
* (C) Copyright 2000-2004
3
* DENX Software Engineering
4
* Wolfgang Denk, wd@denx.de
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License as
8
* published by the Free Software Foundation; either version 2 of
9
* the License, or (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
25
#include "os_support.h"
40
#define debug(fmt,args...) printf (fmt ,##args)
42
#define debug(fmt,args...)
43
#endif /* MKIMAGE_DEBUG */
45
#define MKIMAGE_TMPFILE_SUFFIX ".tmp"
46
#define MKIMAGE_MAX_TMPFILE_LEN 256
47
#define MKIMAGE_DEFAULT_DTC_OPTIONS "-I dts -O dtb -p 500"
48
#define MKIMAGE_MAX_DTC_CMDLINE_LEN 512
49
#define MKIMAGE_DTC "dtc" /* assume dtc is in $PATH */
52
* This structure defines all such variables those are initialized by
53
* mkimage main core and need to be referred by image type specific
56
struct mkimage_params {
77
* image type specific variables and callback functions
79
struct image_type_params {
80
/* name is an identification tag string for added support */
83
* header size is local to the specific image type to be supported,
84
* mkimage core treats this as number of bytes
87
/* Image type header pointer */
90
* There are several arguments that are passed on the command line
91
* and are registered as flags in mkimage_params structure.
92
* This callback function can be used to check the passed arguments
93
* are in-lined with the image type to be supported
95
* Returns 1 if parameter check is successful
97
int (*check_params) (struct mkimage_params *);
99
* This function is used by list command (i.e. mkimage -l <filename>)
100
* image type verification code must be put here
102
* Returns 0 if image header verification is successful
103
* otherwise, returns respective negative error codes
105
int (*verify_header) (unsigned char *, int, struct mkimage_params *);
106
/* Prints image information abstracting from image header */
107
void (*print_header) (const void *);
109
* The header or image contents need to be set as per image type to
110
* be generated using this callback function.
111
* further output file post processing (for ex. checksum calculation,
112
* padding bytes etc..) can also be done in this callback function.
114
void (*set_header) (void *, struct stat *, int,
115
struct mkimage_params *);
117
* Some image generation support for ex (default image type) supports
118
* more than one type_ids, this callback function is used to check
119
* whether input (-T <image_type>) is supported by registered image
120
* generation/list low level code
122
int (*check_image_type) (uint8_t);
123
/* This callback function will be executed if fflag is defined */
124
int (*fflag_handle) (struct mkimage_params *);
125
/* pointer to the next registered entry in linked list */
126
struct image_type_params *next;
132
void mkimage_register (struct image_type_params *tparams);
135
* There is a c file associated with supported image type low level code
136
* for ex. default_image.c, fit_image.c
137
* init is the only function referred by mkimage core.
138
* to avoid a single lined header file, you can define them here
140
* Supported image types init functions
142
void init_kwb_image_type (void);
143
void init_imx_image_type (void);
144
void init_default_image_type (void);
145
void init_fit_image_type (void);
147
#endif /* _MKIIMAGE_H_ */