
Dear rhabarber1848,
In message h3l0ci$lhn$1@ger.gmane.org you wrote:
it seems I solved the problem.
Hm...
The end value for the kernel was too high, the attached patch[1] should fix it, a LZMA-compressed kernel booted well. I did not test the bz2 case but it seems it suffers from the same bug.
Maybe lzmaBuffToBuffDecompress() stores an incorrect value in unc_len?
diff -uNr u-boot-2009.06.org/common/cmd_bootm.c u-boot-2009.06/common/cmd_bootm.c --- u-boot-2009.06.org/common/cmd_bootm.c 2009-06-14 21:30:39.000000000 +0200 +++ u-boot-2009.06/common/cmd_bootm.c 2009-07-15 18:28:28.000000000 +0200 @@ -380,7 +380,7 @@ return BOOTM_ERR_RESET; }
*load_end = load + unc_len;
break;*load_end = load + image_len;
#endif /* CONFIG_BZIP2 */ #ifdef CONFIG_LZMA @@ -396,7 +396,7 @@ show_boot_progress (-6); return BOOTM_ERR_RESET; }
*load_end = load + unc_len;
*load_end = load + image_len;
This seems definitely wrong to me. image_len is the length of the _compressed_ image, which is not what we need here.
Best regards,
Wolfgang Denk