Eric W. Biederman
ebiederman at lnxi.com
Fri Oct 18 00:50:01 CEST 2002
Ronald G Minnich <rminnich at lanl.gov> writes:
> So upx is definitely worth it, right?
Yes. It is much easier to put in lots of microcode updates
and things. And we have lots of strings.
It is a very maintainable solution.
> Unless I misread it the decompressor is assembly.
And fits on one screen. See also util/nrv2b which has
the C compressor decompressor. I put it in crt0.base in my tree
The data structures are all heavily tuned so you can have a very
small and simple assembly decopressor. And I think you can
dig non-x86 ports out of the main upx tree.
> We have a PPC port going on. I do see the 2-1 compression but
> in 256KB we have oodles of room (with etherboot), so I'm just trying to
> make sure the added complexity in the build is something we want.
Except for the decompression step all I did was clearly seperate
the code that can assume it has ram, from the painful assemly include,
execute from rom code that gets us there.
It actually reduces complexity in several places in the linker script,
as we don't have to tell the linker put the code here, but actually
set it up so it executes there.
As for size for the longest time it has been my goal to keep linuxbios
small enough that I can fit LinuxBIOS and etherboot into 64KB. We are
quickly going from being the overly large solution to a solution for
a smaller BIOS. And if we can do it why not?
> Is it easily turned off?
Yes. You do a memcpy instead of decompression. I just haven't had
time to write the code to make it conditional yet.
> p.s. I know I promised not to distract you, sorry :-)
So long as I don't have to do the merger a little distraction now and
again is o.k. And getting some discussion and code review going over
my code is probably a good side benefit.
More information about the coreboot