I have been putting in a fair chunk of work cleaning up linuxBIOS, mostly so I don't have to have hacks outside of the tree. Tommorrow my goal is to test what I have developed on the L440GX and possibly the alpha to make certain I haven't wrecked the tree, and then I'm going to start committing. I have removed mkrom, and now things like: biosbase 0xffff8b80 and biosbase 0xf0010 are possible. I have removed all hardcoded instructions from start32.inc. I have ld doing the address calculations that gas could not do. I have cleaned up printk usages so that you can compile out all of the spew, debug, info and even the emerg messages if you want to. This required changes calls of the form printk(KERN_EMERG to printk_emerg( so the C preprocessor could get at them. I have removed the special case of this we had with DBG and PRINTK. Now perhaps we can actually use the multiple levels of printk that we have. I have cleaned up handling of the option directive, and now options with values are handled properly and now additionally put in the Makefile as make variables, and the ldscript as linker variables. I have cleaned up hardwaremain a little bit so it is readable. Mostly it was a matter of moving declarations into header files, and testing in the haeder file if the option was defined to use that function call. If it was defined the declaration was presented. If it wasn't defined a macro was defined instaed that expanded with the same name as the function but does nothing, so we intel_main is nolonger ifdef hell. I have cleaned up i386_subr.h it is down to two declarations, and virtually every function that had an intel_ prefix has had that prefix removed. I have done a clean implementation of multiprocessor support which makes supporting multiple processors in linuxBIOS easy. This is the only functional change so far in hardwaremain.c as I seperated out all of the cpu_initialization into it's own function. For the Dual Athlon I needed all of the hard bits, and doing the rest was easy. I have done an implementation of reboot/resetting in linuxBIOS. I was afraid I would need it to get the my additional Athlon processor running, I didn't. But now we there is infrastructure you can tap into if you want a clean reset. I have generic code for some more of the legacy pc devices that still keep needing to be setup. In particular the i8259 interrupt controllers, intialization has moved into C. I have a real time clock setup, and testing in a C. As well setup for a legacy DMA controller (My floppy drive now works :). And I have probably done a few other things as well, and am forgetting to mention them. So if every one can keep an eye out on the tree as I start checking this stuff in, to double check I haven't missed a little detail I'd appreciate it :) Eric