This patch set replaces the x86 setup code, which is currently all in
assembly, with a version written in C, using the ".code16gcc" feature
of binutils (which has been present since at least 2001.)
The new code is vastly easier to read, and, I hope, debug. It should
be noted that I found a fair number of minor bugs while going through
this code, and have attempted to correct them.
In the process of doing so, it introduces several cleanups, in
particular:
- Obsoletes the hd_info field in the boot_params structure; they are
only ever used for ST-506 (pre-IDE) drives and are pretty much
guaranteed to be wrong on current BIOSes;
- Unifies the CPU feature bits between i386 and x86-64. In the
future, it should be possible to use arch/i386/boot/cpucheck.c to do
the post-invocation CPU check currently done in
arch/x86_64/kernel/trampoline.S, although this patch set doesn't
introduce that change.
- boot_params is now a proper structure.
This patchset incorporates all feedback received by 2007-07-11 12:00 PDT.