]> git.baikalelectronics.ru Git - uboot.git/commit
tools: kwboot: Fix sending and processing debug message pattern (-d option)
authorPali Rohár <pali@kernel.org>
Wed, 2 Mar 2022 10:49:22 +0000 (11:49 +0100)
committerStefan Roese <sr@denx.de>
Fri, 4 Mar 2022 12:12:13 +0000 (13:12 +0100)
commitfd4634816e8069e8c6ba8267fe794422ccad0c40
tree0b4ab2953d3c79c9f704114addca7a27b2def636
parentac604f151a62b8bc691b2c2d0c87f7dcc03736d3
tools: kwboot: Fix sending and processing debug message pattern (-d option)

-d option is currently broken. In most cases BootROM does not detect this
message pattern. For sending debug message pattern it is needed to do same
steps as for boot message pattern.

Implement sending debug message pattern via same separate thread like it is
for boot message pattern.

Checking if BootROM entered into UART debug mode is different than
detecting UART boot mode. When in boot mode, BootROM sends xmodem NAK
bytes. When in debug mode, BootROM activates console echo and reply back
every written byte (extept \r\n which is interpreted as executing command
and \b which is interpreting as removing the last sent byte).

So in kwboot, check that BootROM send back at least 4 debug message
patterns as a echo reply for debug message patterns which kwboot is sending
in the loop.

Then there is another observation, if host writes too many bytes (as
command) then BootROM command line buffer may overflow after trying to
execute such long command. To workaround this overflow, it is enough to
remove bytes from the input line buffer by sending 3 \b bytes for every
sent character. So do it.

With this change, it is possbile to enter into the UART debug mode with
kwboot -d option.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Stefan Roese <sr@denx.de>
tools/kwboot.c