From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Fri, 22 Jan 2021 16:58:20 -0500 Subject: [PATCH v2 4/4] mkimge: Reject signing-related flags without FIT_SIGNATURE In-Reply-To: <20201208041216.888902-5-joel@jms.id.au> References: <20201208041216.888902-1-joel@jms.id.au> <20201208041216.888902-5-joel@jms.id.au> Message-ID: <20210122215820.GA18945@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, Dec 08, 2020 at 02:42:16PM +1030, Joel Stanley wrote: > When CONFIG_FIT_SIGNATURE=n the signing options are not available. If a > user is careful they will notice this when looking at the help output. > > If they are not careful they will waste several hours wondering why > their FIT doesn't contain a /signature node, as mkimage will silently > ingore the signing related options. > > Make it obvious that the commands don't work by removing them from the > getopt opt_string. > > $ mkimage -f machine.its -k keys -K u-boot-pubkey.dtb -r image.fit > mkimage: invalid option -- 'k' > Error: Invalid option > > Signed-off-by: Joel Stanley > --- > v2: Leave padding related options in the CONFIG_FIT_SIGNATURE=y optargs > --- > tools/mkimage.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/tools/mkimage.c b/tools/mkimage.c > index 68d5206cb4fd..f7d3ac40e681 100644 > --- a/tools/mkimage.c > +++ b/tools/mkimage.c > @@ -142,7 +142,11 @@ static int add_content(int type, const char *fname) > return 0; > } > > +#ifdef CONFIG_FIT_SIGNATURE > #define OPT_STRING "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qstT:vVx" > +#else > +#define OPT_STRING "a:A:b:B:C:d:D:e:Ef:i:ln:O:R:qstT:vVx" > +#endif > static void process_args(int argc, char **argv) > { > char *ptr; > @@ -150,8 +154,7 @@ static void process_args(int argc, char **argv) > char *datafile = NULL; > int opt; > > - while ((opt = getopt(argc, argv, > - "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qstT:vVx")) != -1) { > + while ((opt = getopt(argc, argv, OPT_STRING)) != -1) { > switch (opt) { > case 'a': > params.addr = strtoull(optarg, &ptr, 16); This part of the series breaks a huge number of platforms default build because we don't have 'p' which is: -p => place external data at a static position and not strictly used in signature only options and is used for FIT_EXTERNAL_OFFSET. While I could adjust the patch to keep 'p' in both cases I wanted to bring this up so it's not a surprise and ask you to update just this patch, or suggest things need to be further adjusted. The rest of the series seems fine and is under review. Thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: not available URL: