]> Git Repo - J-u-boot.git/blobdiff - tools/imagetool.c
imagetool: move common code to imagetool module
[J-u-boot.git] / tools / imagetool.c
index da72115e53230a53444078df089186d932bec54b..e4de7af9845753eda63045d2da1ea5a30111f3af 100644 (file)
@@ -8,6 +8,8 @@
 
 #include "imagetool.h"
 
+#include <image.h>
+
 /*
  * Callback function to register a image type within a tool
  */
@@ -27,6 +29,8 @@ void register_image_tool(imagetool_register_t image_register)
         */
        register_func = image_register;
 
+       /* Init ATMEL ROM Boot Image generation/list support */
+       init_atmel_image_type();
        /* Init Freescale PBL Boot image generation/list support */
        init_pbl_image_type();
        /* Init Kirkwood Boot image generation/list support */
@@ -45,6 +49,8 @@ void register_image_tool(imagetool_register_t image_register)
        init_ubl_image_type();
        /* Init Davinci AIS support */
        init_ais_image_type();
+       /* Init Altera SOCFPGA support */
+       init_socfpga_image_type();
        /* Init TI Keystone boot image generation/list support */
        init_gpimage_type();
 }
@@ -58,3 +64,52 @@ void register_image_type(struct image_type_params *tparams)
 {
        register_func(tparams);
 }
+
+struct image_type_params *imagetool_get_type(
+       int type,
+       struct image_type_params *tparams)
+{
+       struct image_type_params *curr;
+
+       for (curr = tparams; curr != NULL; curr = curr->next) {
+               if (curr->check_image_type) {
+                       if (!curr->check_image_type(type))
+                               return curr;
+               }
+       }
+       return NULL;
+}
+
+int imagetool_verify_print_header(
+       void *ptr,
+       struct stat *sbuf,
+       struct image_type_params *tparams,
+       struct image_tool_params *params)
+{
+       int retval = -1;
+       struct image_type_params *curr;
+
+       for (curr = tparams; curr != NULL; curr = curr->next) {
+               if (curr->verify_header) {
+                       retval = curr->verify_header((unsigned char *)ptr,
+                                                    sbuf->st_size, params);
+
+                       if (retval == 0) {
+                               /*
+                                * Print the image information  if verify is
+                                * successful
+                                */
+                               if (curr->print_header) {
+                                       curr->print_header(ptr);
+                               } else {
+                                       fprintf(stderr,
+                                               "%s: print_header undefined for %s\n",
+                                               params->cmdname, curr->name);
+                               }
+                               break;
+                       }
+               }
+       }
+
+       return retval;
+}
This page took 0.027803 seconds and 4 git commands to generate.