[LinuxBIOS] selection of compression algorithm

Stefan Reinauer stepan at coresystems.de
Mon May 22 22:05:04 CEST 2006

* Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net> [060522 21:29]:
> > On 5/22/06, Stefan Reinauer <stepan at coresystems.de> wrote:
> >> We never actually compile nrv2b with romcc, do we? At the point we run
> >> nrv2b ram has to be enabled anyways - we uncompress the code somewhere.
> >> So our limits are far bigger than that.
> yhlu wrote:
> > in crt0.s, and it is used to uncompress linuxbios_ram when using romcc.
> You mean copy_and_run() is compiled with romcc? Can we change that?
No, it is not. But src/arch/i386/init/crt0.S.lb contains another
assembly written version of an nrv2b decompressor. 

crt0.s should be changed to call the C version of unrv2b. 

Then it can easily be changed later to use any other algorithm.

Using assembly at this point even though ram is enabled already must be
some code fragment from old times when we did a lot more assembly.

This might require though that we have 

1. auto.c stage           (romcc)
2. uncompression stage    (gcc)
3. compressed linuxbios stage (gcc, initially compressed)

This reads ugly in a mail but is by no means uglier than keeping
assembler versions of decompressors in the code.

> What's the difference between CONFIG_COMPRESSED_ROM_STREAM and
> CONFIG_COMPRESS? Can we use lzma compression for both?

CONFIG_COMPRESSED_ROM_STREAM says: the payload is compressed.
CONFIG_COMPRESS says: LinuxBIOS is compressed.

coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.dehttp://www.coresystems.de/

More information about the coreboot mailing list