I am having the same exact problem with 2.6.27.9. It works well in 2.6.24.7. I am posting some debugging information. It dies in the LzmaDecode() function
2.6.27.9 broken
Uncompressing Linux - debug
lzma_unzip()
lzma args - i: 00000000
lzma args - Literal context bits: 00000007
lzma args - Literal pos state bits: 00000000
Dictionary size: 00800000
Uncompressed size: 001A660C
Compressed size: 00000000
Workspace address: 002B0B24
Callback address: 002B5AE8
LzmaDecode() <---- hangs here
2.6.24.7 works!
Uncompressing Linux - debug
lzma_unzip()
lzma args - i: 00000000
lzma args - Literal context bits: 00000007
lzma args - Literal pos state bits: 00000000
Dictionary size: 00800000
Uncompressed size: 001A8C1F
Compressed size: 00000000
Workspace address: 002B3DA4
Callback address: 002B3D4C
LzmaDecode()
return 0
Done, booting
Digging further into LzmaDecode() here is where it fails
len += kMatchMinLen;
early_serial_write("rep0 =\n", 512);
print_hex_long(rep0);
early_serial_write("newPos =\n", 512);
print_hex_long(nowPos);
if (rep0 > nowPos
#ifdef _LZMA_OUT_READ
+ globalPos || rep0 > dictionarySize
#endif
)
return LZMA_RESULT_DATA_ERROR; <----------- it dies right here
I think there is stack corruption.
(Last edited by dhonn on 8 Jan 2009, 02:52)