[LinuxBIOS] selection of compression algorithm

Ronald G Minnich rminnich at lanl.gov
Tue May 23 18:09:56 CEST 2006


Stefan Reinauer wrote:

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

What I think of as the long term goal for OLPC:
1. auto.c stage: CAR, gunzip gcc code to ram
2. gcc stage: turn on the hardware, gunzip vga bios, other pieces, and 
payload to ram
3. payload runs, may do further gunzip work

the gunzip was removed from V1 because linux had its own decompressor in 
the bzimage. Given that there was, at the time, only one gunzip step, 
using the kernel's gunzip was deemed to save space. On OLPC, which is 
representative of the new systems, there are several distinct compressed 
bits:
1. nrv2b for gcc-compiled linuxbios
2. nrv2b for OLPC VSA binary
3. nrv2b for linux+initrd
4. nrv2b for VGA BIOS

it's clear that the balance of compression is now in linuxbios. So, in 
my view, it's time to move the decompressor back into linuxbios and dump 
the one we use in the kernel. This will help Plan 9 as well. We should 
also move to a better compression algorithm, I think.

I've already modified mkelfimage to just create 3 segments
1. kernel
2. cmdline+params (at 0x90000)
3. initrd (at 0x8000000)

So this is no real problem.

ron




More information about the coreboot mailing list