[PATCH] tools: kwboot: Check if baudrate value is supported before sending image
Marek Behún
marek.behun at nic.cz
Sun Mar 6 14:12:02 CET 2022
On Sun, 6 Mar 2022 13:39:07 +0100
Pali Rohár <pali at kernel.org> wrote:
> Call kwboot_open_tty() which baudrate value which was specified at the
with
> command line by option -B. This function returns error if baudrate is not
> supported by selected tty device.
>
> Initial baudrate for image transfer is always 115200, so call
> kwboot_tty_change_baudrate() with value 115200 immediately after
> kwboot_open_tty() if baudrate specified by option -B is different than
> 115200.
>
> This help user to see error message about unsupported baudrate value by
> local tty device immediately after starting kwboot.
This makes kwboot fail immediately, informing that baudrate is
unsupported, instead of failing only after the first part of image is
already sent.
>
> Before this change, kwboot sent kwbimage header (at 115200 Bd) and then
> validated that selected baudrate if is supported by tty device. It consumed
> too much time (need to send kwbimage again and again) until some supported
> baudrate by local tty device was guessed.
This last paragraph can be dropped. If you want to keep it, please
change "Before this change" to "Until now"
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
> ---
> tools/kwboot.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/tools/kwboot.c b/tools/kwboot.c
> index f975c4a6c6ca..d9498af8fc02 100644
> --- a/tools/kwboot.c
> +++ b/tools/kwboot.c
> @@ -2137,12 +2137,24 @@ main(int argc, char **argv)
> if (optind != argc)
> goto usage;
>
> - tty = kwboot_open_tty(ttypath, imgpath ? 115200 : baudrate);
> + tty = kwboot_open_tty(ttypath, baudrate);
> if (tty < 0) {
> perror(ttypath);
> goto out;
> }
>
> + /*
> + * initial baudrate for image transfer is always 115200,
> + * change to different baudrate is done after sending header
*the change to different baudrate is done only after the header is sent
> + */
> + if (imgpath && baudrate != 115200) {
> + rc = kwboot_tty_change_baudrate(tty, 115200);
> + if (rc) {
> + perror(ttypath);
> + goto out;
> + }
> + }
> +
> if (baudrate == 115200)
> /* do not change baudrate during Xmodem to the same value */
> baudrate = 0;
Marek
More information about the U-Boot
mailing list