]>
Commit | Line | Data |
---|---|---|
bf411ea9 KM |
1 | /* |
2 | * (C) Copyright 2014 | |
3 | * Texas Instruments Incorporated | |
4 | * Add gpimage format for keystone devices to format spl image. This is | |
5 | * Based on omapimage.c | |
6 | * | |
7 | * (C) Copyright 2010 | |
8 | * Linaro LTD, www.linaro.org | |
9 | * Author: John Rigby <[email protected]> | |
10 | * Based on TI's signGP.c | |
11 | * | |
12 | * (C) Copyright 2009 | |
13 | * Stefano Babic, DENX Software Engineering, [email protected]. | |
14 | * | |
15 | * (C) Copyright 2008 | |
16 | * Marvell Semiconductor <www.marvell.com> | |
17 | * Written-by: Prafulla Wadaskar <[email protected]> | |
18 | * | |
19 | * SPDX-License-Identifier: GPL-2.0+ | |
20 | */ | |
21 | ||
22 | #include "imagetool.h" | |
23 | #include <compiler.h> | |
24 | #include <image.h> | |
25 | #include "gpheader.h" | |
26 | ||
27 | static uint8_t gpimage_header[GPIMAGE_HDR_SIZE]; | |
28 | ||
29 | /* to be in keystone gpimage */ | |
30 | static int gpimage_check_image_types(uint8_t type) | |
31 | { | |
32 | if (type == IH_TYPE_GPIMAGE) | |
33 | return EXIT_SUCCESS; | |
34 | return EXIT_FAILURE; | |
35 | } | |
36 | ||
37 | static int gpimage_verify_header(unsigned char *ptr, int image_size, | |
38 | struct image_tool_params *params) | |
39 | { | |
40 | struct gp_header *gph = (struct gp_header *)ptr; | |
41 | ||
42 | return gph_verify_header(gph, 1); | |
43 | } | |
44 | ||
45 | static void gpimage_print_header(const void *ptr) | |
46 | { | |
47 | const struct gp_header *gph = (struct gp_header *)ptr; | |
48 | ||
49 | gph_print_header(gph, 1); | |
50 | } | |
51 | ||
52 | static void gpimage_set_header(void *ptr, struct stat *sbuf, int ifd, | |
53 | struct image_tool_params *params) | |
54 | { | |
55 | struct gp_header *gph = (struct gp_header *)ptr; | |
56 | ||
57 | gph_set_header(gph, sbuf->st_size - GPIMAGE_HDR_SIZE, params->addr, 1); | |
58 | } | |
59 | ||
60 | /* | |
61 | * gpimage parameters | |
62 | */ | |
63 | static struct image_type_params gpimage_params = { | |
64 | .name = "TI KeyStone GP Image support", | |
65 | .header_size = GPIMAGE_HDR_SIZE, | |
66 | .hdr = (void *)&gpimage_header, | |
67 | .check_image_type = gpimage_check_image_types, | |
68 | .verify_header = gpimage_verify_header, | |
69 | .print_header = gpimage_print_header, | |
70 | .set_header = gpimage_set_header, | |
71 | .check_params = gpimage_check_params, | |
72 | }; | |
73 | ||
74 | void init_gpimage_type(void) | |
75 | { | |
76 | register_image_type(&gpimage_params); | |
77 | } |