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


Reply via email to