Skip to contentSkip to conversation

gunzip command?

U-Boot-Users Steven Scholz 2 participants 3 messages Sep 26, 2003

lore
Share & tools
lore
#0 lore raw

Hi there,

on my board U-Boot should program an FPGA before booting linux. Unfortunatly the file is quite big (>160KB). So I store a gzipped version of it in my flash. Actually I stored an image created with mkimage

DAB4K2> imi 40040000

## Checking Image at 40040000 ...

    Image Name:   DAB4K_TEST-
    Created:      2003-09-22   8:20:19 UTC
    Image Type:   PowerPC U-Boot Firmware (gzip compressed)
    Data Size:    56098 Bytes = 54.8 kB
    Load Address: 00000000
    Entry Point:  00000000
    Verifying Checksum ... OK

So what I need now is a way to uncompress the data to RAM before I can call "fpga load".

My questions:
1. Should we add a "gunzip" command to U-Boot?
2. Should we add a command (similar to bootm) that takes an image, decompresses it and checks CRC etc.?
3. Or should we put this into the "fpga load" command?

I would go for the first. Maybe the second. Third seems to be too limited.

Any comments?

Thanks,

Steven

#1 lore raw

Hi Steven,

Quoted 24 lines

on my board U-Boot should program an FPGA before booting linux. Unfortunatly the file is quite big (>160KB). So I store a gzipped version of it in my flash. Actually I stored an image created with mkimage

DAB4K2> imi 40040000

## Checking Image at 40040000 ...

    Image Name:   DAB4K_TEST-
    Created:      2003-09-22   8:20:19 UTC
    Image Type:   PowerPC U-Boot Firmware (gzip compressed)
    Data Size:    56098 Bytes = 54.8 kB
    Load Address: 00000000
    Entry Point:  00000000
    Verifying Checksum ... OK

So what I need now is a way to uncompress the data to RAM before I can call "fpga load".

My questions:
1. Should we add a "gunzip" command to U-Boot?
2. Should we add a command (similar to bootm) that takes an image, decompresses it and checks CRC etc.?
3. Or should we put this into the "fpga load" command?

Quoted 3 lines

I would go for the first. Maybe the second. Third seems to be too limited.

Any comments?

Yes, why implement things that are already there? See our documentation[1] for exactly this problem. I know, it takes some courage to use "bootm" to uncompress, but hey, it works...

Cheers
Detlev

[1] https://www.denx.de/twiki/bin/view/DULG/HowCanILoadAndUncompressACompressedImage

Signature · 2 lines
"The number you have dialed is imaginary. Please rotate your phone 90
degrees and try again."
#2 lore raw

Hi Detlev,

Quoted 6 lines
Quoted 6 lines

My questions:
1. Should we add a "gunzip" command to U-Boot?
2. Should we add a command (similar to bootm) that takes an image, decompresses it and checks CRC etc.?
3. Or should we put this into the "fpga load" command?

Quoted 8 lines
Quoted 3 lines

I would go for the first. Maybe the second. Third seems to be too limited.

Any comments?

Yes, why implement things that are already there? See our documentation[1] for exactly this problem. I know, it takes some courage to use "bootm" to uncompress, but hey, it works...

Aah. Yes. I tought about that. I actually just try the following:
1. Create a new image typ "FPGA Data"
2. Hack cmd_bootm.c to handle this and to directly call fpga_load()

DAB4K2> bootm 40040000
## Booting image at 40040000 ...

    Image Name:   DAB4K_TEST-
    Created:      2003-09-22   8:20:19 UTC
    Image Type:   FPGA Data Image (gzip compressed)
    Data Size:    56098 Bytes = 54.8 kB
    Load Address: 00200000
    Entry Point:  00000000
    Verifying Checksum ... OK
    Uncompressing FPGA Image ... OK
    Calling fpga_load( 0, 0x200000, 166965)...

ACEX1K_load: Launching Passive Serial Loader
ACEX1K_ps_load: start with interface functions @ 0x00ffa034 Loading FPGA Device 0...
....................
Done.

The "Load Address" could be used as a free RAM Address for decompressing. The "Start Address" could be the number of the FPGA device (first argument for fpga_load) so we could handle more than one FPGA in one Multi-Image file.

What do you think?

Is it worth it to go that way. Or is the you suggested way preferred as you could do the rest using simple scripts...?

How could I get the uncompressed size??? Does bootm update $filesize?

fpga_load needs a size. So if I use bootm only for uncompressing how could I pass the lenght to fpga_load()???

Steven