[coreboot] [PATCH] The filo crashes if the filo and coreboot overlap.

Patrick Georgi patrick at georgi-clan.de
Fri Nov 6 16:28:53 CET 2009


Am 04.11.2009 03:34, schrieb Bao, Zheng:
> Marc and Patrick,
> The LZMA compressing way doesn't work on my board. I haven't found any solution to resolve the overlapping in current code. ulzma() doesn't seem to know that overlapping happens. It is a problem that has to be solved.
>    
Thanks for your fix, but I'd like to come back to the ulzma issue.

What do you mean, that LZMA compression doesn't work on your board? 
There is a known problem that decompression takes _very_ long (several 
minutes for a moderately sized payload such as FILO).
If it looks like the boards was stuck in the decompression phase, please 
try again and wait to see if it moves on eventually (15 minutes should 
be enough with some safety margin), so we know if you ran into that 
known issue, or if you found another bug.

If it's something entirely different, I'd also like to hear about it, of 
course :-)

As for ulzma():
ulzma really doesn't know about the overlap, but the compression related 
code compensates for that. The bounce buffer function returns the start 
address of the bounce buffer. The location that is used for 
decompression is (segment_start - RAMBASE + bouncebuffer_base).
If the segment starts before the rambase, the segment is decompressed to 
the bounce buffer and the memory region before it. Right after 
decompression, the memory region before the bounce buffer is copied.
That solution has its own share of problems, but the bounce buffer 
handling code is quite nasty, and I wanted to keep the changes as small 
as possible.


Thanks,
Patrick Georgi




More information about the coreboot mailing list