gpimage.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 <john.rigby@linaro.org>
  10. * Based on TI's signGP.c
  11. *
  12. * (C) Copyright 2009
  13. * Stefano Babic, DENX Software Engineering, sbabic@denx.de.
  14. *
  15. * (C) Copyright 2008
  16. * Marvell Semiconductor <www.marvell.com>
  17. * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
  18. *
  19. * SPDX-License-Identifier: GPL-2.0+
  20. */
  21. #include "imagetool.h"
  22. #include <compiler.h>
  23. #include <image.h>
  24. #include "gpheader.h"
  25. static uint8_t gpimage_header[GPIMAGE_HDR_SIZE];
  26. /* to be in keystone gpimage */
  27. static int gpimage_check_image_types(uint8_t type)
  28. {
  29. if (type == IH_TYPE_GPIMAGE)
  30. return EXIT_SUCCESS;
  31. return EXIT_FAILURE;
  32. }
  33. static int gpimage_verify_header(unsigned char *ptr, int image_size,
  34. struct image_tool_params *params)
  35. {
  36. struct gp_header *gph = (struct gp_header *)ptr;
  37. return gph_verify_header(gph, 1);
  38. }
  39. static void gpimage_print_header(const void *ptr)
  40. {
  41. const struct gp_header *gph = (struct gp_header *)ptr;
  42. gph_print_header(gph, 1);
  43. }
  44. static void gpimage_set_header(void *ptr, struct stat *sbuf, int ifd,
  45. struct image_tool_params *params)
  46. {
  47. struct gp_header *gph = (struct gp_header *)ptr;
  48. gph_set_header(gph, sbuf->st_size - GPIMAGE_HDR_SIZE, params->addr, 1);
  49. }
  50. /*
  51. * gpimage parameters
  52. */
  53. U_BOOT_IMAGE_TYPE(
  54. gpimage,
  55. "TI KeyStone GP Image support",
  56. GPIMAGE_HDR_SIZE,
  57. (void *)&gpimage_header,
  58. gpimage_check_params,
  59. gpimage_verify_header,
  60. gpimage_print_header,
  61. gpimage_set_header,
  62. NULL,
  63. gpimage_check_image_types,
  64. NULL,
  65. NULL
  66. );