]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
tools: kwboot: Fix sending retry of last header packet
authorPali Rohár <pali@kernel.org>
Wed, 27 Oct 2021 18:56:58 +0000 (20:56 +0200)
committerStefan Roese <sr@denx.de>
Wed, 3 Nov 2021 05:45:27 +0000 (06:45 +0100)
After the trasfer of last header packet, it is possible that baudrate
change pattern is received, and also that NAK byte is received so that
the packet should be sent again.

Thus we should not clear the baudrate change state when sending retry
of that packet.

Move code for initializing state variables from kwboot_xm_recv_reply()
to kwboot_xm_sendblock().

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
tools/kwboot.c

index bb7cae9f0542480dc57434b1f85eb95d03da0df8..b2c48812c3865801301ec43f9a6724e9a37cf77d 100644 (file)
@@ -859,11 +859,6 @@ kwboot_xm_recv_reply(int fd, char *c, int nak_on_non_xm,
        uint64_t recv_until = _now() + timeout;
        int rc;
 
-       if (non_xm_print)
-               *non_xm_print = 0;
-       if (baud_changed)
-               *baud_changed = 0;
-
        while (1) {
                rc = kwboot_tty_recv(fd, c, 1, timeout);
                if (rc) {
@@ -929,6 +924,8 @@ kwboot_xm_sendblock(int fd, struct kwboot_block *block, int allow_non_xm,
        char c;
 
        *done_print = 0;
+       non_xm_print = 0;
+       baud_changed = 0;
 
        retries = 0;
        do {