On 31.10.2022 15:51:21, Marc Kleine-Budde wrote: > If the user select the image type "flat_dt" a FIT image will be build. > This breaks the legacy use case of putting a Flat Device Tree into a > legacy u-boot image. > > Add a new image type "flat_dt_legacy" to build a legacy u-boot image > with a "flat_dt" type. > > Link: > https://lore.kernel.org/all/20221028155205.ojw6tcso2fofg...@pengutronix.de > Signed-off-by: Marc Kleine-Budde <m...@pengutronix.de>
Sean, what about this approach compared to adding the new command line parameter? Marc > --- > boot/image.c | 1 + > include/image.h | 1 + > tools/default_image.c | 11 +++++++++-- > 3 files changed, 11 insertions(+), 2 deletions(-) > > diff --git a/boot/image.c b/boot/image.c > index 9f95b3260a80..9d7e57dee985 100644 > --- a/boot/image.c > +++ b/boot/image.c > @@ -180,6 +180,7 @@ static const table_entry_t uimage_type[] = { > { IH_TYPE_COPRO, "copro", "Coprocessor Image"}, > { IH_TYPE_SUNXI_EGON, "sunxi_egon", "Allwinner eGON Boot Image" > }, > { IH_TYPE_SUNXI_TOC0, "sunxi_toc0", "Allwinner TOC0 Boot Image" > }, > + { IH_TYPE_FLATDT_LEGACY, "flat_dt_legacy", "Flat Device Tree > legacy Image", }, > { -1, "", "", }, > }; > > diff --git a/include/image.h b/include/image.h > index d7d6a3fe5b81..e578e2c5f1fd 100644 > --- a/include/image.h > +++ b/include/image.h > @@ -229,6 +229,7 @@ enum { > IH_TYPE_COPRO, /* Coprocessor Image for remoteproc*/ > IH_TYPE_SUNXI_EGON, /* Allwinner eGON Boot Image */ > IH_TYPE_SUNXI_TOC0, /* Allwinner TOC0 Boot Image */ > + IH_TYPE_FLATDT_LEGACY, /* Binary Flat Device Tree Blob in a > legacy image */ > > IH_TYPE_COUNT, /* Number of image types */ > }; > diff --git a/tools/default_image.c b/tools/default_image.c > index 4a067e65862e..3b49f0d70e29 100644 > --- a/tools/default_image.c > +++ b/tools/default_image.c > @@ -27,7 +27,8 @@ static struct legacy_img_hdr header; > static int image_check_image_types(uint8_t type) > { > if (((type > IH_TYPE_INVALID) && (type < IH_TYPE_FLATDT)) || > - (type == IH_TYPE_KERNEL_NOLOAD) || (type == IH_TYPE_FIRMWARE_IVT)) > + (type == IH_TYPE_KERNEL_NOLOAD) || (type == IH_TYPE_FIRMWARE_IVT) || > + (type == IH_TYPE_FLATDT_LEGACY)) > return EXIT_SUCCESS; > else > return EXIT_FAILURE; > @@ -94,6 +95,7 @@ static void image_set_header(void *ptr, struct stat *sbuf, > int ifd, > uint32_t imagesize; > uint32_t ep; > uint32_t addr; > + int type; > struct legacy_img_hdr *hdr = (struct legacy_img_hdr *)ptr; > > checksum = crc32(0, > @@ -113,6 +115,11 @@ static void image_set_header(void *ptr, struct stat > *sbuf, int ifd, > else > imagesize = sbuf->st_size - sizeof(struct legacy_img_hdr); > > + if (params->type == IH_TYPE_FLATDT_LEGACY) > + type = IH_TYPE_FLATDT; > + else > + type = params->type; > + > if (params->os == IH_OS_TEE) { > addr = optee_image_get_load_addr(hdr); > ep = optee_image_get_entry_point(hdr); > @@ -127,7 +134,7 @@ static void image_set_header(void *ptr, struct stat > *sbuf, int ifd, > image_set_dcrc(hdr, checksum); > image_set_os(hdr, params->os); > image_set_arch(hdr, params->arch); > - image_set_type(hdr, params->type); > + image_set_type(hdr, type); > image_set_comp(hdr, params->comp); > > image_set_name(hdr, params->imagename); > -- > 2.35.1 > > > -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
signature.asc
Description: PGP signature