imagetool: replace image registration function by linker_lists feature
authorGuilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Thu, 15 Jan 2015 04:48:07 +0000 (02:48 -0200)
committerTom Rini <trini@ti.com>
Thu, 29 Jan 2015 18:38:41 +0000 (13:38 -0500)
The registration was introduced in commit f86ed6a8d52c99bb2d17d3cac1647edca0c4399c

This commit also removes all registration functions, and the member "next"
from image_type_params struct

Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
18 files changed:
tools/Makefile
tools/aisimage.c
tools/atmelimage.c
tools/default_image.c
tools/dumpimage.c
tools/fit_image.c
tools/gpimage.c
tools/imagetool.c
tools/imagetool.h
tools/imagetool.lds [new file with mode: 0644]
tools/imximage.c
tools/kwbimage.c
tools/mkimage.c
tools/mxsimage.c
tools/omapimage.c
tools/pblimage.c
tools/socfpgaimage.c
tools/ublimage.c

index e549f8e63c9cbe0b1066a659efb16bd641601601..cb44456cbd82f31c50e6fa6b7a217d3b360bb699 100644 (file)
@@ -122,6 +122,8 @@ HOSTLOADLIBES_dumpimage := $(HOSTLOADLIBES_mkimage)
 HOSTLOADLIBES_fit_info := $(HOSTLOADLIBES_mkimage)
 HOSTLOADLIBES_fit_check_sign := $(HOSTLOADLIBES_mkimage)
 
+HOSTLDFLAGS += -T $(srctree)/tools/imagetool.lds
+
 hostprogs-$(CONFIG_EXYNOS5250) += mkexynosspl
 hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
 HOSTCFLAGS_mkexynosspl.o := -pedantic
index 8de370a2e08d4cb7deff61f333c5986c722b77f9..9338342cb36c28022c780eb60b2494baf0f08914 100644 (file)
@@ -413,19 +413,17 @@ int aisimage_check_params(struct image_tool_params *params)
 /*
  * aisimage parameters
  */
-static struct image_type_params aisimage_params = {
-       .name           = "TI Davinci AIS Boot Image support",
-       .header_size    = 0,
-       .hdr            = NULL,
-       .check_image_type = aisimage_check_image_types,
-       .verify_header  = aisimage_verify_header,
-       .print_header   = aisimage_print_header,
-       .set_header     = aisimage_set_header,
-       .check_params   = aisimage_check_params,
-       .vrec_header    = aisimage_generate,
-};
-
-void init_ais_image_type(void)
-{
-       register_image_type(&aisimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       aisimage,
+       "TI Davinci AIS Boot Image support",
+       0,
+       NULL,
+       aisimage_check_params,
+       aisimage_verify_header,
+       aisimage_print_header,
+       aisimage_set_header,
+       NULL,
+       aisimage_check_image_types,
+       NULL,
+       aisimage_generate
+);
index c8101d2ddc221803c2e07f1991be35abcc69d055..5b72ac54a6d35442232a49780287d83134bdf12b 100644 (file)
@@ -324,19 +324,17 @@ static int atmel_vrec_header(struct image_tool_params *params,
        return EXIT_SUCCESS;
 }
 
-static struct image_type_params atmelimage_params = {
-       .name           = "ATMEL ROM-Boot Image support",
-       .header_size    = 0,
-       .hdr            = NULL,
-       .check_image_type = atmel_check_image_type,
-       .verify_header  = atmel_verify_header,
-       .print_header   = atmel_print_header,
-       .set_header     = atmel_set_header,
-       .check_params   = atmel_check_params,
-       .vrec_header    = atmel_vrec_header,
-};
-
-void init_atmel_image_type(void)
-{
-       register_image_type(&atmelimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       atmelimage,
+       "ATMEL ROM-Boot Image support",
+       0,
+       NULL,
+       atmel_check_params,
+       atmel_verify_header,
+       atmel_print_header,
+       atmel_set_header,
+       NULL,
+       atmel_check_image_type,
+       NULL,
+       atmel_vrec_header
+);
index a92fa8015b1eafdf84c857cc4dcdb0d174ad2d60..0b0e076831dfb24cb5c83fc921c8afba08d82e01 100644 (file)
@@ -150,19 +150,17 @@ static int image_extract_datafile(void *ptr, struct image_tool_params *params)
 /*
  * Default image type parameters definition
  */
-static struct image_type_params defimage_params = {
-       .name = "Default Image support",
-       .header_size = sizeof(image_header_t),
-       .hdr = (void*)&header,
-       .check_image_type = image_check_image_types,
-       .verify_header = image_verify_header,
-       .print_header = image_print_contents,
-       .set_header = image_set_header,
-       .extract_datafile = image_extract_datafile,
-       .check_params = image_check_params,
-};
-
-void init_default_image_type(void)
-{
-       register_image_type(&defimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       defimage,
+       "Default Image support",
+       sizeof(image_header_t),
+       (void *)&header,
+       image_check_params,
+       image_verify_header,
+       image_print_contents,
+       image_set_header,
+       image_extract_datafile,
+       image_check_image_types,
+       NULL,
+       NULL
+);
index 0228e183abd30f0c70161f7cbc48af00f21c3a23..80bf583b396b85942b6b607678982847a4b42165 100644 (file)
@@ -20,41 +20,6 @@ static struct image_tool_params params = {
        .type = IH_TYPE_KERNEL,
 };
 
-/**
- * dumpimage_register() - register respective image generation/list support
- *
- * the input struct image_type_params is checked and appended to the link
- * list, if the input structure is already registered, issue an error
- *
- * @tparams: Image type parameters
- */
-static void dumpimage_register(struct image_type_params *tparams)
-{
-       struct image_type_params **tp;
-
-       if (!tparams) {
-               fprintf(stderr, "%s: %s: Null input\n", params.cmdname,
-                       __func__);
-               exit(EXIT_FAILURE);
-       }
-
-       /* scan the linked list, check for registry and point the last one */
-       for (tp = &dumpimage_tparams; *tp != NULL; tp = &(*tp)->next) {
-               if (!strcmp((*tp)->name, tparams->name)) {
-                       fprintf(stderr, "%s: %s already registered\n",
-                               params.cmdname, tparams->name);
-                       return;
-               }
-       }
-
-       /* add input struct entry at the end of link list */
-       *tp = tparams;
-       /* mark input entry as last entry in the link list */
-       tparams->next = NULL;
-
-       debug("Registered %s\n", tparams->name);
-}
-
 /*
  * dumpimage_extract_datafile -
  *
@@ -70,8 +35,12 @@ static int dumpimage_extract_datafile(void *ptr, struct stat *sbuf)
 {
        int retval = -1;
        struct image_type_params *curr;
+       struct image_type_params *start = ll_entry_start(
+                       struct image_type_params, image_type);
+       struct image_type_params *end = ll_entry_end(
+                       struct image_type_params, image_type);
 
-       for (curr = dumpimage_tparams; curr != NULL; curr = curr->next) {
+       for (curr = start; curr != end; curr++) {
                if (curr->verify_header) {
                        retval = curr->verify_header((unsigned char *)ptr,
                                                     sbuf->st_size, &params);
@@ -104,9 +73,6 @@ int main(int argc, char **argv)
        int retval = 0;
        struct image_type_params *tparams = NULL;
 
-       /* Init all image generation/list support */
-       register_image_tool(dumpimage_register);
-
        params.cmdname = *argv;
 
        while ((opt = getopt(argc, argv, "li:o:p:V")) != -1) {
@@ -142,7 +108,7 @@ int main(int argc, char **argv)
                usage();
 
        /* set tparams as per input type_id */
-       tparams = imagetool_get_type(params.type, dumpimage_tparams);
+       tparams = imagetool_get_type(params.type);
        if (tparams == NULL) {
                fprintf(stderr, "%s: unsupported type %s\n",
                        params.cmdname, genimg_get_type_name(params.type));
index 3ececf913ff4c4fe2c1c2457f3f5b5ccbfa195fb..5712842969db10f3179055cb5d2bdf302ed94826 100644 (file)
@@ -162,19 +162,17 @@ static int fit_check_params(struct image_tool_params *params)
                (params->lflag && (params->dflag || params->fflag)));
 }
 
-static struct image_type_params fitimage_params = {
-       .name = "FIT Image support",
-       .header_size = sizeof(image_header_t),
-       .hdr = (void*)&header,
-       .verify_header = fit_verify_header,
-       .print_header = fit_print_contents,
-       .check_image_type = fit_check_image_types,
-       .fflag_handle = fit_handle_file,
-       .set_header = NULL,     /* FIT images use DTB header */
-       .check_params = fit_check_params,
-};
-
-void init_fit_image_type (void)
-{
-       register_image_type(&fitimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       fitimage,
+       "FIT Image support",
+       sizeof(image_header_t),
+       (void *)&header,
+       fit_check_params,
+       fit_verify_header,
+       fit_print_contents,
+       NULL,
+       NULL,
+       fit_check_image_types,
+       fit_handle_file,
+       NULL /* FIT images use DTB header */
+);
index 1cabb5b612e2a485662e6d5c411e5851c12efd06..1adc55c5fca9effb91eeb8f8541282abd8ba7839 100644 (file)
@@ -60,18 +60,17 @@ static void gpimage_set_header(void *ptr, struct stat *sbuf, int ifd,
 /*
  * 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);
-}
+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
+);
index a25b86b36ebafa3baaa43344a1ab3c08033c033e..9d2819ed68dcdb76dac4796baee378fae34460a2 100644 (file)
 
 #include <image.h>
 
-/*
- * Callback function to register a image type within a tool
- */
-static imagetool_register_t register_func;
-
-/*
- * register_image_tool -
- *
- * The tool provides its own registration function in order to all image
- * types initialize themselves.
- */
-void register_image_tool(imagetool_register_t image_register)
-{
-       /*
-        * Save the image tool callback function. It will be used to register
-        * image types within that tool
-        */
-       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 */
-       init_kwb_image_type();
-       /* Init Freescale imx Boot image generation/list support */
-       init_imx_image_type();
-       /* Init Freescale mxs Boot image generation/list support */
-       init_mxs_image_type();
-       /* Init FIT image generation/list support */
-       init_fit_image_type();
-       /* Init TI OMAP Boot image generation/list support */
-       init_omap_image_type();
-       /* Init Default image generation/list support */
-       init_default_image_type();
-       /* Init Davinci UBL support */
-       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();
-}
-
-/*
- * register_image_type -
- *
- * Register a image type within a tool
- */
-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 *imagetool_get_type(int type)
 {
        struct image_type_params *curr;
+       struct image_type_params *start = ll_entry_start(
+                       struct image_type_params, image_type);
+       struct image_type_params *end = ll_entry_end(
+                       struct image_type_params, image_type);
 
-       for (curr = tparams; curr != NULL; curr = curr->next) {
+       for (curr = start; curr != end; curr++) {
                if (curr->check_image_type) {
                        if (!curr->check_image_type(type))
                                return curr;
@@ -89,7 +36,12 @@ int imagetool_verify_print_header(
        int retval = -1;
        struct image_type_params *curr;
 
-       for (curr = tparams; curr != NULL; curr = curr->next) {
+       struct image_type_params *start = ll_entry_start(
+                       struct image_type_params, image_type);
+       struct image_type_params *end = ll_entry_end(
+                       struct image_type_params, image_type);
+
+       for (curr = start; curr != end; curr++) {
                if (curr->verify_header) {
                        retval = curr->verify_header((unsigned char *)ptr,
                                                     sbuf->st_size, params);
index 44d9380995b9a28e5b99c85cc3a66d8735f12468..8724cb525f83be3747391371dff6c63dccbd80ea 100644 (file)
 #include <time.h>
 #include <unistd.h>
 #include <u-boot/sha1.h>
+
+/* define __KERNEL__ in order to get the definitions
+ * required by the linker list. This is probably not
+ * the best way to do this */
+#ifndef __KERNEL__
+#define __KERNEL__
+#include <linker_lists.h>
+#undef __KERNEL__
+#endif /* __KERNEL__ */
+
 #include "fdt_host.h"
 
 #define ARRAY_SIZE(x)          (sizeof(x) / sizeof((x)[0]))
@@ -127,29 +137,8 @@ struct image_type_params {
         */
        int (*vrec_header) (struct image_tool_params *,
                struct image_type_params *);
-       /* pointer to the next registered entry in linked list */
-       struct image_type_params *next;
 };
 
-/*
- * Tool registration function.
- */
-typedef void (*imagetool_register_t)(struct image_type_params *);
-
-/*
- * Initializes all image types with the given registration callback
- * function.
- * An image tool uses this function to initialize all image types.
- */
-void register_image_tool(imagetool_register_t image_register);
-
-/*
- * Register a image type within a tool.
- * An image type uses this function to register itself within
- * all tools.
- */
-void register_image_type(struct image_type_params *tparams);
-
 /**
  * imagetool_get_type() - find the image type params for a given image type
  *
@@ -161,9 +150,7 @@ void register_image_type(struct image_type_params *tparams);
  * if input type_id is not supported by any of image_type_support
  *     returns NULL
  */
-struct image_type_params *imagetool_get_type(
-       int type,
-       struct image_type_params *tparams);
+struct image_type_params *imagetool_get_type(int type);
 
 /*
  * imagetool_verify_print_header() - verifies the image header
@@ -201,24 +188,37 @@ int imagetool_save_datafile(
 /*
  * There is a c file associated with supported image type low level code
  * for ex. default_image.c, fit_image.c
- * init_xxx_type() is the only function referred by image tool core to avoid
- * a single lined header file, you can define them here
- *
- * Supported image types init functions
  */
-void init_default_image_type(void);
-void init_atmel_image_type(void);
-void init_pbl_image_type(void);
-void init_ais_image_type(void);
-void init_kwb_image_type(void);
-void init_imx_image_type(void);
-void init_mxs_image_type(void);
-void init_fit_image_type(void);
-void init_ubl_image_type(void);
-void init_omap_image_type(void);
-void init_socfpga_image_type(void);
-void init_gpimage_type(void);
+
 
 void pbl_load_uboot(int fd, struct image_tool_params *mparams);
 
+#define U_BOOT_IMAGE_TYPE( \
+               _id, \
+               _name, \
+               _header_size, \
+               _header, \
+               _check_params, \
+               _verify_header, \
+               _print_header, \
+               _set_header, \
+               _extract_datafile, \
+               _check_image_type, \
+               _fflag_handle, \
+               _vrec_header \
+       ) \
+       ll_entry_declare(struct image_type_params, _id, image_type) = { \
+               .name = _name, \
+               .header_size = _header_size, \
+               .hdr = _header, \
+               .check_params = _check_params, \
+               .verify_header = _verify_header, \
+               .print_header = _print_header, \
+               .set_header = _set_header, \
+               .extract_datafile = _extract_datafile, \
+               .check_image_type = _check_image_type, \
+               .fflag_handle = _fflag_handle, \
+               .vrec_header = _vrec_header \
+       }
+
 #endif /* _IMAGETOOL_H_ */
diff --git a/tools/imagetool.lds b/tools/imagetool.lds
new file mode 100644 (file)
index 0000000..7e92b4a
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2011-2012 The Chromium OS Authors.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+SECTIONS
+{
+
+       . = ALIGN(4);
+       .u_boot_list : {
+               KEEP(*(SORT(.u_boot_list*)));
+       }
+
+       __u_boot_sandbox_option_start = .;
+       _u_boot_sandbox_getopt : { *(.u_boot_sandbox_getopt) }
+       __u_boot_sandbox_option_end = .;
+
+       __bss_start = .;
+}
+
+INSERT BEFORE .data;
index 526b7d490d5c38cca59c6abfd12ac3f15f3931ab..3d3759188692b91323e88603d5a2503714f3b39b 100644 (file)
@@ -694,19 +694,17 @@ static int imximage_generate(struct image_tool_params *params,
 /*
  * imximage parameters
  */
-static struct image_type_params imximage_params = {
-       .name           = "Freescale i.MX Boot Image support",
-       .header_size    = 0,
-       .hdr            = NULL,
-       .check_image_type = imximage_check_image_types,
-       .verify_header  = imximage_verify_header,
-       .print_header   = imximage_print_header,
-       .set_header     = imximage_set_header,
-       .check_params   = imximage_check_params,
-       .vrec_header    = imximage_generate,
-};
-
-void init_imx_image_type(void)
-{
-       register_image_type(&imximage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       imximage,
+       "Freescale i.MX Boot Image support",
+       0,
+       NULL,
+       imximage_check_params,
+       imximage_verify_header,
+       imximage_print_header,
+       imximage_set_header,
+       NULL,
+       imximage_check_image_types,
+       NULL,
+       imximage_generate
+);
index 807d46668be78ee90b1103b2e5b56460dbc6afe0..66f459ad6b1c7f2b65eb612349e6a2e647c8238e 100644 (file)
@@ -905,19 +905,17 @@ static int kwbimage_check_params(struct image_tool_params *params)
 /*
  * kwbimage type parameters definition
  */
-static struct image_type_params kwbimage_params = {
-       .name           = "Marvell MVEBU Boot Image support",
-       .header_size    = 0,            /* no fixed header size */
-       .hdr            = NULL,
-       .vrec_header    = kwbimage_generate,
-       .check_image_type = kwbimage_check_image_types,
-       .verify_header  = kwbimage_verify_header,
-       .print_header   = kwbimage_print_header,
-       .set_header     = kwbimage_set_header,
-       .check_params   = kwbimage_check_params,
-};
-
-void init_kwb_image_type (void)
-{
-       register_image_type(&kwbimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       kwbimage,
+       "Marvell MVEBU Boot Image support",
+       0,
+       NULL,
+       kwbimage_check_params,
+       kwbimage_verify_header,
+       kwbimage_print_header,
+       kwbimage_set_header,
+       NULL,
+       kwbimage_check_image_types,
+       NULL,
+       kwbimage_generate
+);
index c04a2abee5dfe5c4a5a7805dfc30dc488c3ee5bd..f668487c89be594e8d8523b43abb8488a7767376 100644 (file)
@@ -29,42 +29,6 @@ struct image_tool_params params = {
        .imagename2 = "",
 };
 
-/*
- * mkimage_register -
- *
- * It is used to register respective image generation/list support to the
- * mkimage core
- *
- * the input struct image_type_params is checked and appended to the link
- * list, if the input structure is already registered, error
- */
-void mkimage_register (struct image_type_params *tparams)
-{
-       struct image_type_params **tp;
-
-       if (!tparams) {
-               fprintf (stderr, "%s: %s: Null input\n",
-                       params.cmdname, __FUNCTION__);
-               exit (EXIT_FAILURE);
-       }
-
-       /* scan the linked list, check for registry and point the last one */
-       for (tp = &mkimage_tparams; *tp != NULL; tp = &(*tp)->next) {
-               if (!strcmp((*tp)->name, tparams->name)) {
-                       fprintf (stderr, "%s: %s already registered\n",
-                               params.cmdname, tparams->name);
-                       return;
-               }
-       }
-
-       /* add input struct entry at the end of link list */
-       *tp = tparams;
-       /* mark input entry as last entry in the link list */
-       tparams->next = NULL;
-
-       debug ("Registered %s\n", tparams->name);
-}
-
 int
 main (int argc, char **argv)
 {
@@ -75,9 +39,6 @@ main (int argc, char **argv)
        struct image_type_params *tparams = NULL;
        int pad_len = 0;
 
-       /* Init all image generation/list support */
-       register_image_tool(mkimage_register);
-
        params.cmdname = *argv;
        params.addr = params.ep = 0;
 
@@ -215,7 +176,7 @@ NXTARG:             ;
                usage ();
 
        /* set tparams as per input type_id */
-       tparams = imagetool_get_type(params.type, mkimage_tparams);
+       tparams = imagetool_get_type(params.type);
        if (tparams == NULL) {
                fprintf (stderr, "%s: unsupported type %s\n",
                        params.cmdname, genimg_get_type_name(params.type));
@@ -466,8 +427,7 @@ copy_file (int ifd, const char *datafile, int pad)
        uint8_t zeros[4096];
        int offset = 0;
        int size;
-       struct image_type_params *tparams = imagetool_get_type(params.type,
-                       mkimage_tparams);
+       struct image_type_params *tparams = imagetool_get_type(params.type);
 
        if (pad >= sizeof(zeros)) {
                fprintf(stderr, "%s: Can't pad to %d\n",
index 04beefe05cbfd87575b9e23816a69034742b505c..98fc64491c7d9f56591858f075020eed7d911ca2 100644 (file)
@@ -2312,25 +2312,18 @@ fail:
 /*
  * mxsimage parameters
  */
-static struct image_type_params mxsimage_params = {
-       .name           = "Freescale MXS Boot Image support",
-       .header_size    = 0,
-       .hdr            = NULL,
-       .check_image_type = mxsimage_check_image_types,
-       .verify_header  = mxsimage_verify_header,
-       .print_header   = mxsimage_print_header,
-       .set_header     = mxsimage_set_header,
-       .check_params   = mxsimage_check_params,
-       .vrec_header    = mxsimage_generate,
-};
-
-void init_mxs_image_type(void)
-{
-       register_image_type(&mxsimage_params);
-}
-
-#else
-void init_mxs_image_type(void)
-{
-}
+U_BOOT_IMAGE_TYPE(
+       mxsimage,
+       "Freescale MXS Boot Image support",
+       0,
+       NULL,
+       mxsimage_check_params,
+       mxsimage_verify_header,
+       mxsimage_print_header,
+       mxsimage_set_header,
+       NULL,
+       mxsimage_check_image_types,
+       NULL,
+       mxsimage_generate
+);
 #endif
index 1e0c16479681aec2d8621eabd953ff9a8cdb203c..7198b3330d6d6a62a8d3064643bfe1fe191cec33 100644 (file)
@@ -162,18 +162,17 @@ static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd,
 /*
  * omapimage parameters
  */
-static struct image_type_params omapimage_params = {
-       .name           = "TI OMAP CH/GP Boot Image support",
-       .header_size    = OMAP_FILE_HDR_SIZE,
-       .hdr            = (void *)&omapimage_header,
-       .check_image_type = omapimage_check_image_types,
-       .verify_header  = omapimage_verify_header,
-       .print_header   = omapimage_print_header,
-       .set_header     = omapimage_set_header,
-       .check_params   = gpimage_check_params,
-};
-
-void init_omap_image_type(void)
-{
-       register_image_type(&omapimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       omapimage,
+       "TI OMAP CH/GP Boot Image support",
+       OMAP_FILE_HDR_SIZE,
+       (void *)&omapimage_header,
+       gpimage_check_params,
+       omapimage_verify_header,
+       omapimage_print_header,
+       omapimage_set_header,
+       NULL,
+       omapimage_check_image_types,
+       NULL,
+       NULL
+);
index 2a799ab4b64eb9214c1a38b317d782cd5fe1e0ea..d74fde9a4415df6e12548a72f1b4b7a9e2ea1d6a 100644 (file)
@@ -308,19 +308,17 @@ int pblimage_check_params(struct image_tool_params *params)
 };
 
 /* pblimage parameters */
-static struct image_type_params pblimage_params = {
-       .name           = "Freescale PBL Boot Image support",
-       .header_size    = sizeof(struct pbl_header),
-       .hdr            = (void *)&pblimage_header,
-       .check_image_type = pblimage_check_image_types,
-       .check_params   = pblimage_check_params,
-       .verify_header  = pblimage_verify_header,
-       .print_header   = pblimage_print_header,
-       .set_header     = pblimage_set_header,
-};
-
-void init_pbl_image_type(void)
-{
-       pbl_size = 0;
-       register_image_type(&pblimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       pblimage,
+       "Freescale PBL Boot Image support",
+       sizeof(struct pbl_header),
+       (void *)&pblimage_header,
+       pblimage_check_params,
+       pblimage_verify_header,
+       pblimage_print_header,
+       pblimage_set_header,
+       NULL,
+       pblimage_check_image_types,
+       NULL,
+       NULL
+);
index 917873e7b3ce83487cb16a9a9d577f495192f5f6..652ae45f812db9b29d6b31dc7dce81840358b068 100644 (file)
@@ -241,19 +241,17 @@ static void socfpgaimage_set_header(void *ptr, struct stat *sbuf, int ifd,
        sign_buffer(buf, 0, 0, data_size, 0);
 }
 
-static struct image_type_params socfpgaimage_params = {
-       .name           = "Altera SOCFPGA preloader support",
-       .vrec_header    = socfpgaimage_vrec_header,
-       .header_size    = 0, /* This will be modified by vrec_header() */
-       .hdr            = (void *)buffer,
-       .check_image_type = socfpgaimage_check_image_types,
-       .verify_header  = socfpgaimage_verify_header,
-       .print_header   = socfpgaimage_print_header,
-       .set_header     = socfpgaimage_set_header,
-       .check_params   = socfpgaimage_check_params,
-};
-
-void init_socfpga_image_type(void)
-{
-       register_image_type(&socfpgaimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       socfpgaimage,
+       "Altera SOCFPGA preloader support",
+       0, /* This will be modified by vrec_header() */
+       (void *)buffer,
+       socfpgaimage_check_params,
+       socfpgaimage_verify_header,
+       socfpgaimage_print_header,
+       socfpgaimage_set_header,
+       NULL,
+       socfpgaimage_check_image_types,
+       NULL,
+       socfpgaimage_vrec_header
+);
index cbbbe205dadf4d168ca5c71b2d6b2aedcf3ffb75..6ed1eef29c95e38bf78658131a9548217059f197 100644 (file)
@@ -244,18 +244,17 @@ int ublimage_check_params(struct image_tool_params *params)
 /*
  * ublimage parameters
  */
-static struct image_type_params ublimage_params = {
-       .name           = "Davinci UBL boot support",
-       .header_size    = sizeof(struct ubl_header),
-       .hdr            = (void *)&ublimage_header,
-       .check_image_type = ublimage_check_image_types,
-       .verify_header  = ublimage_verify_header,
-       .print_header   = ublimage_print_header,
-       .set_header     = ublimage_set_header,
-       .check_params   = ublimage_check_params,
-};
-
-void init_ubl_image_type(void)
-{
-       register_image_type(&ublimage_params);
-}
+U_BOOT_IMAGE_TYPE(
+       ublimage,
+       "Davinci UBL boot support",
+       sizeof(struct ubl_header),
+       (void *)&ublimage_header,
+       ublimage_check_params,
+       ublimage_verify_header,
+       ublimage_print_header,
+       ublimage_set_header,
+       NULL,
+       ublimage_check_image_types,
+       NULL,
+       NULL
+);