Hi Pali,

On 30.09.21 20:14, Pali Rohár wrote:
Hello!

Could you test or review this patch series?

It is a big improvement for kwboot as it allows to transfer u-boot over
uart into mvebu platforms much faster.

I'm testing this series right now on my theadorable target, which
is Armada XP based. Here I get this error:

$ ./tools/kwboot -B 230400 -b u-boot-spl.kwb -t /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A1019EGY-if00-port0
Patching image boot signature to UART
Injecting binary header code for changing baudrate to 230400 Bd
Injecting code for changing baudrate back
Aligning image header to Xmodem block size
Sending boot message. Please reboot the target...|
Waiting 2s and flushing tty
Sending boot image header (90496 bytes)...
0 % [......................................................................] 10 % [......................................................................] 19 % [......................................................................] 29 % [......................................................................] 39 % [......................................................................] 49 % [......................................................................] 59 % [......................................................................] 69 % [......................................................................] 79 % [......................................................................] 89 % [......................................................................] 99 % [....... ]
Done

U-Boot SPL 2021.10-rc5-00228-g5523b4689ff9 (Oct 01 2021 - 08:39:06 +0200)
High speed PHY - Version: 2.1.5 (COM-PHY-V20)
High speed PHY - Ended Successfully
DDR3 Training Sequence - Ver 5.7.4
DDR3 Training Sequence - Ended Successfully
Trying to boot from BOOTROM
Returning to BootROM (return address 0xffff0aa0)...

Changing baudrate to 230400 Bd
Baudrate was not changed


xmodem: Protocol error


UART booting currently only seems to work with the default 115kBaud.

Do you have any idea what might go wrong here?

Thanks,
Stefan

On Friday 24 September 2021 23:06:37 Marek Behún wrote:
From: Marek Behún <marek.be...@nic.cz>

Hello Stefan and others,

here's v3 of series adding support for booting Marvell platforms via
UART (those bootable with kwboot) at higher baudrates.

Tested on Turris Omnia up to 5.15 MBd, which is 44x faster than
115200 Bd.

The user can direct kwboot to use higher baudrate via the -B option.
(BTW this option was there before but did not work with the -b option.)

Only the payload part of the KWB image is uploaded at this higher
baudrate. The header part is still uploaded at 115200 Bd, since the code
that changes baudrate is injected into header as a binary extension.
(The payload part makes up majority of the binary, though. On Turris
  Omnia the payload currently makes ~87%.)

The series also contains various other fixes, refactors and improvements
of the code, upon which the main change is done.

Marek & Pali

Changes since v2:
- fixed integer overflow in patch 15
- fixed commit title in patch 32

Changes since v1:
- fixed uploading of older kwb images, now all kwb images should be able
   to upload at faster baudrate
- fixed injecting code that changes baudrate back
- various other fixes and refactors, the best way to compare with v1 is
   to apply v1 and v2 separately and compare the resulting kwboot.c

Marek Behún (19):
   tools: kwbimage: Fix printf format warning
   tools: kwboot: Fix buffer overflow in kwboot_terminal()
   tools: kwboot: Make the quit sequence buffer const
   tools: kwboot: Refactor and fix writing buffer
   tools: kwboot: Fix comparison of integers with different size
   tools: kwboot: Use a function to check whether received byte is a
     Xmodem reply
   tools: kwboot: Print new line after SPL output
   tools: kwboot: Allow greater timeout when executing header code
   tools: kwboot: Prevent waiting indefinitely if no xmodem reply is
     received
   tools: kwbimage: Simplify iteration over version 1 optional headers
   tools: kwbimage: Refactor image_version()
   tools: kwbimage: Refactor kwbimage header size determination
   tools: kwboot: Explicitly check against size of struct main_hdr_v1
   tools: kwboot: Check whether baudrate was set to requested value
   tools: kwboot: Cosmetic fix
   tools: kwboot: Avoid code repetition in kwboot_img_patch()
   tools: kwboot: Update file header
   doc/kwboot.1: Update man page
   MAINTAINERS: Add entry for kwbimage / kwboot tools

Pali Rohár (20):
   tools: kwboot: Print version information header
   tools: kwboot: Fix kwboot_xm_sendblock() function when
     kwboot_tty_recv() fails
   tools: kwboot: Fix return type of kwboot_xm_makeblock() function
   tools: kwboot: Fix printing progress
   tools: kwboot: Print newline on error when progress was not completed
   tools: kwboot: Split sending image into header and data stages
   tools: kwboot: Allow non-xmodem text output from BootROM only in a
     specific case
   tools: kwboot: Properly finish xmodem transfer
   tools: kwboot: Always call kwboot_img_patch_hdr()
   tools: kwboot: Don't patch image header if signed
   tools: kwboot: Patch source address in image header
   tools: kwboot: Patch destination address to DDR area for SPI image
   tools: kwbimage: Update comments describing kwbimage v1 structures
   tools: kwboot: Round up header size to 128 B when patching
   tools: kwboot: Support higher baudrates when booting via UART
   tools: kwboot: Allow any baudrate on Linux
   tools: kwboot: Fix initializing tty device
   tools: kwboot: Disable tty interbyte timeout
   tools: kwboot: Disable non-blocking mode
   tools: kwboot: Add Pali and Marek as authors

  MAINTAINERS           |   10 +
  doc/kwboot.1          |   60 ++-
  tools/kwbimage.c      |  130 ++---
  tools/kwbimage.h      |   99 +++-
  tools/kwboot.c        | 1197 +++++++++++++++++++++++++++++++++++------
  tools/termios_linux.h |  189 +++++++
  6 files changed, 1385 insertions(+), 300 deletions(-)
  create mode 100644 tools/termios_linux.h

--
2.32.0



Viele Grüße,
Stefan

--
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: s...@denx.de

Reply via email to