summaryrefslogtreecommitdiff
path: root/lib/string.c
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2021-09-24 23:07:05 +0200
committerStefan Roese <sr@denx.de>2021-10-01 11:07:13 +0200
commitca272041c00f7f260259d3318c7832c80a874b8e (patch)
tree4d34a24d458da77417fbf2b59ce5ac8c2cc3a941 /lib/string.c
parent5c8f812ca93731f5177559db9f491f7bfeb0188d (diff)
tools: kwboot: Support higher baudrates when booting via UART
Add support for uploading the boot image (the data part only) at higher baudrate than the standard one. The kwboot utility already has -B option, but choosing other baudrate than the standard one (115200 Bd) can only work for debug mode, not for booting the device. The BootROM for kwboot supported platforms (Orion, Kirkwood, Dove, Discovery, AXP, A37x, A38x, A39x) cannot change the baudrate when uploading boot image via the Xmodem protocol, nor can it be configured via strapping pins. So instead we add this support by injecting baudrate changing code into the kwbimage v1 header as a new optional binary extension. This code is executed by BootROM after it receives the whole header. The code sends the magic string "$baudratechange\0" just before changing the baudrate to let kwboot know that it should also change it. This is because the injected code is run as the last binary extension, and we do not want to loose possible output from other possible binary extensions that came before it (in most cases this is U-Boot SPL). We also inject the code before the payload (the data part of the image), to change the baudrate back to the standard value, in case the payload does not reset UART. This change improves boot time via UART significantly (depending on the chosen baudrate), which is very useful when debugging. Signed-off-by: Pali Rohár <pali@kernel.org> [ major refactor ] Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'lib/string.c')
0 files changed, 0 insertions, 0 deletions