* Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net [060522 21:29]:
On 5/22/06, Stefan Reinauer stepan@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.