mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
tools: kwboot: Fix invalid UART kwbimage v1 headersz
Ensure that UART aligned header size is always stored into kwbimage v1 header. It is needed for proper UART booting. Calculation of headersz field was broken in commitd656f5a0ee
("tools: kwboot: Calculate real used space in kwbimage header when calling kwboot_img_grow_hdr()") which introduced optimization of kwboot_img_grow_hdr() function. Fixes:d656f5a0ee
("tools: kwboot: Calculate real used space in kwbimage header when calling kwboot_img_grow_hdr()") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
12e79fbfff
commit
848d9a5eaa
1 changed files with 11 additions and 0 deletions
|
@ -2168,6 +2168,17 @@ kwboot_img_patch(void *img, size_t *size, int baudrate)
|
|||
|
||||
kwboot_printv("Aligning image header to Xmodem block size\n");
|
||||
kwboot_img_grow_hdr(img, size, grow);
|
||||
hdrsz += grow;
|
||||
|
||||
/*
|
||||
* kwbimage v1 contains header size field and for UART type it
|
||||
* must be set to the aligned xmodem header size because BootROM
|
||||
* rounds header size down to xmodem block size.
|
||||
*/
|
||||
if (kwbimage_version(img) == 1) {
|
||||
hdr->headersz_msb = hdrsz >> 16;
|
||||
hdr->headersz_lsb = cpu_to_le16(hdrsz & 0xffff);
|
||||
}
|
||||
}
|
||||
|
||||
hdr->checksum = kwboot_hdr_csum8(hdr) - csum;
|
||||
|
|
Loading…
Reference in a new issue