/* * (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 */ static struct image_type_params gpimage_params = { .name = "TI KeyStone GP Image support", .header_size = GPIMAGE_HDR_SIZE, .hdr = (void *)&gpimage_header, .check_image_type = gpimage_check_image_types, .verify_header = gpimage_verify_header, .print_header = gpimage_print_header, .set_header = gpimage_set_header, .check_params = gpimage_check_params, }; void init_gpimage_type(void) { register_image_type(&gpimage_params); }