[PATCH u-boot-marvell 08/14] tools: kwboot: Allow to use option -b without image path

Stefan Roese sr at denx.de
Wed Jan 26 16:39:55 CET 2022


On 1/25/22 18:13, Marek Behún wrote:
> From: Pali Rohár <pali at kernel.org>
> 
> Allow option -b without image path parameter, to send boot pattern and
> wait for response but not send any image. This allows to use kwboot just
> for processing boot pattern and user can use any other xmodem tool for
> transferring the image itself (e.g. sx). Useful for debugging purposes.
> 
> Signed-off-by: Pali Rohár <pali at kernel.org>
> Signed-off-by: Marek Behún <marek.behun at nic.cz>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
>   tools/kwboot.c | 22 +++++++++++++++++-----
>   1 file changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/kwboot.c b/tools/kwboot.c
> index 1dcec1969a..c413a8bf51 100644
> --- a/tools/kwboot.c
> +++ b/tools/kwboot.c
> @@ -1699,6 +1699,8 @@ main(int argc, char **argv)
>   	size_t size;
>   	size_t after_img_rsv;
>   	int baudrate;
> +	int prev_optind;
> +	int c;
>   
>   	rv = 1;
>   	tty = -1;
> @@ -1716,22 +1718,32 @@ main(int argc, char **argv)
>   	kwboot_verbose = isatty(STDOUT_FILENO);
>   
>   	do {
> -		int c = getopt(argc, argv, "hb:ptaB:dD:q:s:o:");
> +		prev_optind = optind;
> +		c = getopt(argc, argv, "hbptaB:dD:q:s:o:");
>   		if (c < 0)
>   			break;
>   
>   		switch (c) {
>   		case 'b':
> +			if (imgpath || bootmsg || debugmsg)
> +				goto usage;
>   			bootmsg = kwboot_msg_boot;
> -			imgpath = optarg;
> +			if (prev_optind == optind)
> +				goto usage;
> +			if (argv[optind] && argv[optind][0] != '-')
> +				imgpath = argv[optind++];
>   			break;
>   
>   		case 'D':
> +			if (imgpath || bootmsg || debugmsg)
> +				goto usage;
>   			bootmsg = NULL;
>   			imgpath = optarg;
>   			break;
>   
>   		case 'd':
> +			if (imgpath || bootmsg || debugmsg)
> +				goto usage;
>   			debugmsg = kwboot_msg_debug;
>   			break;
>   
> @@ -1774,11 +1786,11 @@ main(int argc, char **argv)
>   	if (!bootmsg && !term && !debugmsg)
>   		goto usage;
>   
> -	if (argc - optind < 1)
> -		goto usage;
> -
>   	ttypath = argv[optind++];
>   
> +	if (optind != argc)
> +		goto usage;
> +
>   	tty = kwboot_open_tty(ttypath, imgpath ? 115200 : baudrate);
>   	if (tty < 0) {
>   		perror(ttypath);

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list