[U-Boot] 2016.07 regression: kwboot does not work on Kirkwood

Hi,
I just tried to boot a freshly built u-boot.kwb using UART boot on a Kirkwood box (IB-NAS6210), but to no avail. An old backup image does not boot either.
After scratching my head for quite some time, I found this change in commit f4db6c976cf ("arm: mvebu: Add runtime detection of UART (xmodem) boot-mode") to kwboot.c:
@@ -652,6 +654,14 @@ kwboot_img_patch_hdr(void *img, size_t size)
hdr->blockid = IBR_HDR_UART_ID;
+ /* + * Subtract mkimage header size from destination address + * as this header is not expected by the Marvell BootROM. + * This way, the execution address is identical to the + * one the image is compiled for (TEXT_BASE). + */ + hdr->destaddr = hdr->destaddr - sizeof(struct image_header); + if (image_ver == 0) { struct main_hdr_v0 *hdr_v0 = img;
Reverting this change makes kwboot work again for me.
I don't know what the correct fix is. Should we change hdr->destaddr only for header version 1? (Orion and Kirkwood use header version 0, right?)
- Simon
participants (1)
-
Simon Baatz