The SPARC port already implements the ability to throw init code and
data out the door into the bit bucket after system setup. It should be
in the mainline kernel whenever Linus syncs the main tree to the SPARC
port's tree.
Every piece of init code and data is tagged with the magical "section"
gcc attribute. Init code ends up in ELF section "text.init" and init
data ends up in "data.init". It is similar to the magical section
tricks done with the new exception handling mechanism.
During the link stage, we arrange for the text.init and data.init
sections to be last in the executable. After system setup, the init
code/data gets reassigned as free pages. Viola!
Tom