Stefan Reinauer wrote:
- auto.c stage (romcc)
- uncompression stage (gcc)
- 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