xref: /rk3399_ARM-atf/tools/fiptool/fiptool.h (revision 82cb2c1ad9897473743f08437d0a3995bed561b9)
1819281eeSdp-arm /*
2819281eeSdp-arm  * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
3819281eeSdp-arm  *
4*82cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
5819281eeSdp-arm  */
6819281eeSdp-arm 
7819281eeSdp-arm #ifndef __FIPTOOL_H__
8819281eeSdp-arm #define __FIPTOOL_H__
9819281eeSdp-arm 
10819281eeSdp-arm #include <stddef.h>
11819281eeSdp-arm #include <stdint.h>
12819281eeSdp-arm 
1365caa3d0SMasahiro Yamada #include "firmware_image_package.h"
14819281eeSdp-arm #include "uuid.h"
15819281eeSdp-arm 
16819281eeSdp-arm #define NELEM(x) (sizeof (x) / sizeof *(x))
17819281eeSdp-arm 
18819281eeSdp-arm enum {
19e0f083a0Sdp-arm 	DO_UNSPEC = 0,
20819281eeSdp-arm 	DO_PACK   = 1,
21819281eeSdp-arm 	DO_UNPACK = 2,
22819281eeSdp-arm 	DO_REMOVE = 3
23819281eeSdp-arm };
24819281eeSdp-arm 
25819281eeSdp-arm enum {
26819281eeSdp-arm 	LOG_DBG,
27819281eeSdp-arm 	LOG_WARN,
28819281eeSdp-arm 	LOG_ERR
29819281eeSdp-arm };
30819281eeSdp-arm 
31e0f083a0Sdp-arm typedef struct image_desc {
32e0f083a0Sdp-arm 	uuid_t             uuid;
33e0f083a0Sdp-arm 	char              *name;
34e0f083a0Sdp-arm 	char              *cmdline_name;
35e0f083a0Sdp-arm 	int                action;
36e0f083a0Sdp-arm 	char              *action_arg;
37b9589fe5Sdp-arm 	struct image      *image;
38e0f083a0Sdp-arm 	struct image_desc *next;
39e0f083a0Sdp-arm } image_desc_t;
40e0f083a0Sdp-arm 
41819281eeSdp-arm typedef struct image {
4265caa3d0SMasahiro Yamada 	struct fip_toc_entry toc_e;
43819281eeSdp-arm 	void                *buffer;
44819281eeSdp-arm } image_t;
45819281eeSdp-arm 
46819281eeSdp-arm typedef struct cmd {
47819281eeSdp-arm 	char              *name;
48819281eeSdp-arm 	int              (*handler)(int, char **);
49819281eeSdp-arm 	void             (*usage)(void);
50819281eeSdp-arm } cmd_t;
51819281eeSdp-arm 
52819281eeSdp-arm #endif /* __FIPTOOL_H__ */
53