
On 10/31/22 15:27, Simon Glass wrote:
Hi,
On Mon, 31 Oct 2022 at 08:21, Sean Anderson seanga2@gmail.com wrote:
On 10/31/22 10:13, 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 command line options "-L" and "--legacy" to let the user force the creation of a legacy u-boot image, even if "flat_dt" is selected.
Link: https://lore.kernel.org/all/20221028155205.ojw6tcso2fofgnhm@pengutronix.de Signed-off-by: Marc Kleine-Budde mkl@pengutronix.de
tools/default_image.c | 1 + tools/fit_common.c | 3 +++ tools/mkimage.c | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/tools/default_image.c b/tools/default_image.c index 9a6b50a946ba..3673eaa63de2 100644 --- a/tools/default_image.c +++ b/tools/default_image.c @@ -27,6 +27,7 @@ static struct legacy_img_hdr header; static int image_check_image_types(uint8_t type, bool legacy) { if (((type > IH_TYPE_INVALID) && (type < IH_TYPE_FLATDT)) ||
((type == IH_TYPE_FLATDT) && legacy) || (type == IH_TYPE_KERNEL_NOLOAD) || (type == IH_TYPE_FIRMWARE_IVT)) return EXIT_SUCCESS; else
diff --git a/tools/fit_common.c b/tools/fit_common.c index b4aa89b53577..eba13a789a72 100644 --- a/tools/fit_common.c +++ b/tools/fit_common.c @@ -43,6 +43,9 @@ int fit_verify_header(unsigned char *ptr, int image_size,
int fit_check_image_types(uint8_t type, bool legacy) {
if (legacy)
return EXIT_FAILURE;
if (type == IH_TYPE_FLATDT) return EXIT_SUCCESS; else
diff --git a/tools/mkimage.c b/tools/mkimage.c index 6d029afab3a8..9e9edd65583e 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -91,6 +91,7 @@ static void usage(const char *msg) fprintf(stderr, " %s [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image\n" " -A ==> set architecture to 'arch'\n"
" -L ==> force legacy image\n" " -O ==> set operating system to 'os'\n" " -T ==> set image type to 'type'\n" " -C ==> set compression type 'comp'\n"
@@ -159,7 +160,7 @@ static int add_content(int type, const char *fname) }
static const char optstring[] =
"a:A:b:B:c:C:d:D:e:Ef:Fg:G:i:k:K:ln:N:o:O:p:qrR:stT:vVx";
"a:A:b:B:c:C:d:D:e:Ef:Fg:G:i:k:K:Lln:N:o:O:p:qrR:stT:vVx";
static const struct option longopts[] = { { "load-address", required_argument, NULL, 'a' },
@@ -181,6 +182,7 @@ static const struct option longopts[] = { { "key-dir", required_argument, NULL, 'k' }, { "key-dest", required_argument, NULL, 'K' }, { "list", no_argument, NULL, 'l' },
{ "legacy", no_argument, NULL, 'L' }, { "config", required_argument, NULL, 'n' }, { "engine", required_argument, NULL, 'N' }, { "algo", required_argument, NULL, 'o' },
@@ -298,6 +300,9 @@ static void process_args(int argc, char **argv) case 'l': params.lflag = 1; break;
case 'L':
params.Lflag = 1;
break; case 'n': params.imagename = optarg; break;
Please add some documentation to the man page (doc/mkimage.1). And also consider not using a short option.
I like short options :-)
So do I, but they are a bit of an endangered species for mkimage :)
--Sean