Skip to contentSkip to conversation

help - u-boot header & compression

U-Boot-Users Avinash Vijayvergia 2 participants 2 messages Apr 2, 2008

lore
Share & tools
lore
#0 lore raw

Hi Luigi

Thank you for your mail and comments. I should have explain why I want to compress u-boot. My target processor is Atmel AT91SAM9260. I am having a 64Mb Dataflash which is interfaced on SPI bus. The Atmel ARM9 copies the first 4kB to internal SRAM and then boots from there. So we need a loader of size <4kb which will be copied to SRAM. I have got this loader. This loader will invoke u-boot, and u-boot will invoke kernel. So I can compress loader and it will still work.

I'll compare nrv2b and lzma and then will be in a better position to comment. I chose nrv2b because I need a compression algo which can be as small as 600B (I have size restriction of 4kB).

Thanks
Avinash

----- Original Message ----
From: Luigi 'Comio' Mantellini <[email protected]>
To: Avinash Vijayvergia <[email protected]>
Cc: u-boot-users at lists.sourceforge.net
Sent: Wednesday, April 2, 2008 2:37:20 PM
Subject: Re: [U-Boot-Users] help - u-boot header & compression

Hi Avinash,

see inline.

Il giorno mer, 02/04/2008 alle 14.26 -0700, Avinash Vijayvergia ha scritto: Hi LuigI

Thank you for your mail. I actually have two questions: What is the format of u-boot header? Can you refer me to some documentation?
What do you intend for "u-boot header"? U-boot uses the uImage format for the kernels images. You can check the file include/image.h (row 175) to understand the (old) uImage format. See this link:
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/image.h;h=36143e25acfe3684a751a4ee6a5cf945524ef424;hb=74d1e66d22dac91388bc538b2fe19f735edc5b82

I want to compress u-boot. I have picked up nrv2b.c from Koders.com which is in use by many people :). I couldn't understand how it does encoding and decoding. I wanted to use this algo and do compression and decompression of my binaries. You can search google for nrv2b.c and you will get it from Koder.com.
U-boot is the object code, the bootloader... how can you compress it? it is a non-sense for me. Anyway, if you need to compress the kernel image, you need to use the uImage format and the utility mkimage (see tools directory). I recently posted a patch to support the lzma compression algorithm (that works better than bzip2 and gzip): you can search in the mailing list archive to retrieve this patch.

Are you sure that nrv2b is better than powerful lzma or bzip2? Do you have benchmarks on this point? If you demonstrate me that nrv2b is a good choice I can consider to make the patch for the community... I have an application that has a very small flash memory... nrv2b should be a choice...

Best regards,

luigi

Thanks for your help
Avinash

----- Original Message ----
From: Luigi 'Comio' Mantellini <[email protected]>
To: Avinash Vijayvergia <[email protected]>
Cc: u-boot-users at lists.sourceforge.net
Sent: Wednesday, April 2, 2008 2:19:36 PM
Subject: Re: [U-Boot-Users] help - u-boot header & compression

Hi Avinash,

I'm not undestanding if you want compress the U-Boot code or if you want compress the uImage image. Anyway, I don't know the nrv2b algorithm, can you give me any links?

thanks,

luigi

Il giorno mer, 02/04/2008 alle 13.54 -0700, Avinash Vijayvergia ha scritto:
Hi All

I am working on AT91SAM9260 ARM9 core. I have very small flash memory and hence need to compress the u-boot. I have picked nrv2b algo for that. Can someone suggest me how to put the compression info in the u-boot header. I want to know the details of u-boot header too.

Thanks
Avinash

You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. -------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________ U-Boot-Users mailing list U-Boot-Users at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
Ing. Luigi Mantellini
Industrie Dial Face S.p.A.
Via Canzo, 4
20068 Peschiera Borromeo (MI)
Tel.: +39 02 5167 2813
Fax: +39 02 5167 2459
E-mail: luigi.mantellini at idf-hit.com

You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.
Ing. Luigi Mantellini
Industrie Dial Face S.p.A.
Via Canzo, 4
20068 Peschiera Borromeo (MI)
Tel.: +39 02 5167 2813
Fax: +39 02 5167 2459
E-mail: luigi.mantellini at idf-hit.com

      ____________________________________________________________________________________

You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.
http://tc.deals.yahoo.com/tc/blockbuster/text5.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20080402/2d7b61db/attachment.htm

#1 lore raw

Il giorno mer, 02/04/2008 alle 14.57 -0700, Avinash Vijayvergia ha scritto:

Quoted 10 lines

Hi Luigi

Thank you for your mail and comments. I should have explain why I want to compress u-boot. My target processor is Atmel AT91SAM9260. I am having a 64Mb Dataflash which is interfaced on SPI bus. The Atmel ARM9 copies the first 4kB to internal SRAM and then boots from there. So we need a loader of size <4kb which will be copied to SRAM. I have got this loader. This loader will invoke u-boot, and u-boot will invoke kernel. So I can compress loader and it will still work.

Quoted 4 lines

I'll compare nrv2b and lzma and then will be in a better position to comment. I chose nrv2b because I need a compression algo which can be as small as 600B (I have size restriction of 4kB).

Ok. Now I understand the problem. U-boot is a pure binary file, you need to compile it fixing the TEXT_BASE address in order to fit your RAM. Your "pre-bootloader" should setup the ram and the dataflash in order to decompress/copy u-boot (vetctors+text+data) from the dataflash space addresses to the ram addresses. After the copy/decompress just jump to u-boot address. To achieve this you needn't to know the u-boot header structure.
You should analyze the board/atmel/at91rm9200dk/u-boot.lds and cpu/arm920t/start.S files to understand how u-boot works (at initialization time).

Best regards,

luigi

Quoted 151 lines

Thanks
Avinash

----- Original Message ----
From: Luigi 'Comio' Mantellini <[email protected]>
To: Avinash Vijayvergia <[email protected]>
Cc: u-boot-users at lists.sourceforge.net
Sent: Wednesday, April 2, 2008 2:37:20 PM
Subject: Re: [U-Boot-Users] help - u-boot header & compression

Hi Avinash,

see inline.

Il giorno mer, 02/04/2008 alle 14.26 -0700, Avinash Vijayvergia ha scritto:

Quoted 8 lines

Hi LuigI

Thank you for your mail. I actually have two questions:
1. What is the format of u-boot header? Can you refer me to some documentation?

What do you intend for "u-boot header"? U-boot uses the uImage format for the kernels images. You can check the file include/image.h (row
175) to understand the (old) uImage format. See this link:
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/image.h;h=36143e25acfe3684a751a4ee6a5cf945524ef424;hb=74d1e66d22dac91388bc538b2fe19f735edc5b82

Quoted 6 lines

1. I want to compress u-boot. I have picked up nrv2b.c from Koders.com which is in use by many people :). I couldn't understand how it does encoding and decoding. I wanted to use this algo and do compression and decompression of my binaries. You can search google for nrv2b.c and you will get it from Koder.com.

U-boot is the object code, the bootloader... how can you compress it? it is a non-sense for me. Anyway, if you need to compress the kernel image, you need to use the uImage format and the utility mkimage (see tools directory). I recently posted a patch to support the lzma compression algorithm (that works better than bzip2 and gzip): you can search in the mailing list archive to retrieve this patch.

Are you sure that nrv2b is better than powerful lzma or bzip2? Do you have benchmarks on this point? If you demonstrate me that nrv2b is a good choice I can consider to make the patch for the community... I have an application that has a very small flash memory... nrv2b should be a choice...

Best regards,

luigi

Quoted 66 lines

Thanks for your help
Avinash

----- Original Message ----
From: Luigi 'Comio' Mantellini <[email protected]>
To: Avinash Vijayvergia <[email protected]>
Cc: u-boot-users at lists.sourceforge.net
Sent: Wednesday, April 2, 2008 2:19:36 PM
Subject: Re: [U-Boot-Users] help - u-boot header & compression

Hi Avinash,

I'm not undestanding if you want compress the U-Boot code or if you want compress the uImage image.
Anyway, I don't know the nrv2b algorithm, can you give me any links?

thanks,

luigi

Il giorno mer, 02/04/2008 alle 13.54 -0700, Avinash Vijayvergia ha scritto:

Quoted 18 lines

Hi All

I am working on AT91SAM9260 ARM9 core. I have very small flash memory and hence need to compress the u-boot. I have picked nrv2b algo for that. Can someone suggest me how to put the compression info in the u-boot header. I want to know the details of u-boot header too.

Thanks
Avinash

__________________________________________________________________

You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.

Quoted 6 lines

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________ U-Boot-Users mailing list U-Boot-Users at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users

Ing. Luigi Mantellini
Industrie Dial Face S.p.A.
Via Canzo, 4
20068 Peschiera Borromeo (MI)
Tel.: +39 02 5167 2813
Fax: +39 02 5167 2459
E-mail:
luigi.mantellini at idf-hit.com

Quoted 4 lines

____________________________________________________________________

You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.

Ing. Luigi Mantellini
Industrie Dial Face S.p.A.
Via Canzo, 4
20068 Peschiera Borromeo (MI)
Tel.: +39 02 5167 2813
Fax: +39 02 5167 2459
E-mail:
luigi.mantellini at idf-hit.com

Quoted 3 lines

______________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.

Ing. Luigi Mantellini
Industrie Dial Face S.p.A.
Via Canzo, 4
20068 Peschiera Borromeo (MI)
Tel.: +39 02 5167 2813
Fax: +39 02 5167 2459
E-mail: luigi.mantellini at idf-hit.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20080403/a25b9368/attachment.htm