[REGRESSION] imx: spl_imx_romapi: boot loops

Rasmus Villemoes rasmus.villemoes at prevas.dk
Wed Oct 25 20:35:18 CEST 2023


On 25/10/2023 18.01, Marcel Ziswiler wrote:
> Hi Rasmus
> 
> On Tue, 2023-10-24 at 16:32 +0200, Rasmus Villemoes wrote:

>> What am I missing?
> 
> Good question. Some more debugging revealed that we are missing 464 bytes at the beginning of the buffer. Why
> would that be?

[slaps forehead]

		bytes = end - ss->end;
		bytes += ss->pagesize - 1;
		bytes /= ss->pagesize;
		bytes *= ss->pagesize;

		ret = rom_api_download_image(ss->end, 0, bytes);
...
		ss->end = end;

So I figure out how many bytes must at least be fetched to honor the
current read, round that up to the ss->pagesize [which is a no-op in the
usb download case because that has ->pagesize==1, so I even considered
leaving that rounding-up out], fetch that many bytes, but then record
the original upper bound as the new end of the valid data. That can
certainly account for losing something 0 < foo < pagesize number of bytes.

So let's try if changing that last line to

  ss->end += bytes;

works better.

Rasmus



More information about the U-Boot mailing list