Right now, we use mkelfimage to set up parameter blocks for linux. There is a lot of code to do this, and I am running out of room on OLPC. I need to build tiny elf images with on executable code in them (other than your kernel, of course).
I have modified mkelfimage so that it produces an elfimage with only 3 segments: command line, kernel, initrd. With this option, you can build a very simple elfimage with just those three things.
There is the issue of setting up %esi for 386 linux. I am considering the following convention:
architecture-independent part (src/boot/) For the first PT_LOAD elf segment, assume it is the command line. Set a variable, command_line, to the load address of this segment.
architecture-dependent, e.g. 386 (src/cpu/boot.c) set %esi to command_line.
If you are using normal mkelfimage, this is a no-op: esi setting is ignored. If you are using mkelfimage with my option (e.g. OLPC), this address will be used as the command line pointer.
I can't see a problem, any comments?
thanks
ron