[U-Boot] Error uncompressing kernel image

Hi all,
I have two JFFS2 images, both with the _same_ kernel inside.
But the images differs in size, cause one is for debugging and has some additional apps:
debug.im = 13 MB release.im = 6.2 MB
Im loading kernel and dtb via fsload:
fsload 2000000 uImage fsload 4000000 mpc8343.dtb bootm 2000000 - 4000000
When I use release.im, no problems. But when I use debug.im:
Verifying Checksum ... OK Uncompressing Kernel Image ... Error: inflateInit2() returned -4 GUNZIP ERROR - must RESET board to recover Resetting the board.
In u-boot/include/zlib.h:232:
#define Z_MEM_ERROR (-4)
In u-boot/lib_generic/zlib.c:342: (inflateInit2() function)
-------- if ((z->state = (struct internal_state FAR *) ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
return Z_MEM_ERROR; --------
Any ideas why this is happening?
Maybe scanning JFFS2 is consuming a lot of memory?
My board has 128 MB of DDR SDRAM, I think space is not a problem, so is there a place that I can set for exemple max values for allocations?
Im using U-boot-1.2.0.
Cheers,
-- Alemao

Alemao wrote:
Hi all,
I have two JFFS2 images, both with the _same_ kernel inside.
But the images differs in size, cause one is for debugging and has some additional apps:
debug.im = 13 MB release.im = 6.2 MB
Im loading kernel and dtb via fsload:
fsload 2000000 uImage fsload 4000000 mpc8343.dtb bootm 2000000 - 4000000
Your uImage is located pretty high in memory: 0x02000000. A lot of boards load the image at 0x00400000. I would move this down and see if it helps.
Your DTB is loaded way away from your image. I would load it 32K below (lower address) your uImage. It probably is only around 8K, 32K will give you plenty of room to grow (famous last words ;-). Try 0x003F8000.
Combining the lower addresses should give bigger available chunks of RAM on startup.
When I use release.im, no problems. But when I use debug.im:
Verifying Checksum ... OK Uncompressing Kernel Image ... Error: inflateInit2() returned -4 GUNZIP ERROR - must RESET board to recover Resetting the board.
In u-boot/include/zlib.h:232:
#define Z_MEM_ERROR (-4)
Out of memory - probably due to fragmentation (see above) because of where you are loading your image and dtb.
[snip]
Any ideas why this is happening?
Maybe scanning JFFS2 is consuming a lot of memory?
Quite likely.
My board has 128 MB of DDR SDRAM, I think space is not a problem, so is there a place that I can set for exemple max values for allocations?
Im using U-boot-1.2.0.
Very old.
Cheers,
-- Alemao
Best regards, gvb

Alemao said the following:
return Z_MEM_ERROR;
Any ideas why this is happening?
Out of memory.
You don't tell us processor architecture/type. In my case (PPC, u-boot 1.3.3 ff) I'd take a look into include/configs/<board>.h and would increase the constant CONFIG_SYS_MALLOC_LEN
HTH
participants (3)
-
Alemao
-
Jerry Van Baren
-
Michael Lawnick