X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=tools%2Fublimage.c;h=6ed1eef29c95e38bf78658131a9548217059f197;hb=788068912fd9d10f8d5cc3b6e07ff6338e7a1d8c;hp=99874622d057c887032324ef0e4af2381fe689e5;hpb=7816f2cf813326505970922021b3ed6490863e78;p=karo-tx-uboot.git diff --git a/tools/ublimage.c b/tools/ublimage.c index 99874622d0..6ed1eef29c 100644 --- a/tools/ublimage.c +++ b/tools/ublimage.c @@ -10,29 +10,10 @@ * Marvell Semiconductor * Written-by: Prafulla Wadaskar * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ -/* Required to obtain the getline prototype from stdio.h */ -#define _GNU_SOURCE - -#include "mkimage.h" +#include "imagetool.h" #include #include "ublimage.h" @@ -212,8 +193,13 @@ static int ublimage_check_image_types(uint8_t type) } static int ublimage_verify_header(unsigned char *ptr, int image_size, - struct mkimage_params *params) + struct image_tool_params *params) { + struct ubl_header *ubl_hdr = (struct ubl_header *)ptr; + + if ((ubl_hdr->magic & 0xFFFFFF00) != UBL_MAGIC_BASE) + return -1; + return 0; } @@ -225,7 +211,7 @@ static void ublimage_print_header(const void *ptr) } static void ublimage_set_header(void *ptr, struct stat *sbuf, int ifd, - struct mkimage_params *params) + struct image_tool_params *params) { struct ubl_header *ublhdr = (struct ubl_header *)ptr; @@ -233,7 +219,7 @@ static void ublimage_set_header(void *ptr, struct stat *sbuf, int ifd, parse_cfg_file(ublhdr, params->imagename); } -int ublimage_check_params(struct mkimage_params *params) +int ublimage_check_params(struct image_tool_params *params) { if (!params) return CFG_INVALID; @@ -258,18 +244,17 @@ int ublimage_check_params(struct mkimage_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) -{ - mkimage_register(&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 +);