* Patrick Georgi patrick@georgi-clan.de [070629 22:03]:
I don't. At some point in _LinuxBIOSv3_, some code searches for option_table and returns a pointer to ROM for further use. Of course, this mechanism won't work if the option_table is compressed there.
Ah! In this case I think the file needs to be in rom uncompressed all the time because we want to read cmos options before ram is up.
Right now, my solution is to mark it nocompress:, before that, I just decompressed it to a fixed location for experimentation. It has to be done one way or the other.
I think the uncompress: marker is fine.
My proposal would be to decompress the ELF image to some location, look if that location overlaps with the places the data is copied to, and if so, determine a large-enough chunk of memory and decompress it to there again, and work from there.
So the program will not live at the address it asked for?
lbgrub2 right now is copied to 64k - though I can change that.
If it gets your trouble done for the moment, please move it, until we really figured the ELF stuff out.
My idea would be to let copy_elf be a wrapper around elfboot_mem (with some refactorings to more easily look at the ranges the ELF requires), with elfboot_mem still available in case "other" loading mechanisms are devised.
we could maybe redo some parts of what we aready have, instead of creating a layer around it?
lar-fs would solve having an additional chunk of data somewhere in memory where grub2 can find its modules. It would be some extra trouble with regard to finding the LAR, providing the decompression routines again, _having to freeze or version the lar format_ (because there's an external user), ... so I'd rather go with the current solution (just creating a large, zeroed array in the grub2 kernel and fill it up with modules)
I think we really want to freeze lar in the long or even short run. we should get this finished within the next few weeks. Lets not freeze or version the format during development. If early versions stop working at some point, that is not an issue. We dont run on any hardware, yet. Decompression is the only issue I see with this at the moment. :( It will make us have several copies of the same stuff again :(