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