Re: arch/i386/boot rewrite, and all the hard-coded video cards

Eric W. Biederman
2007-05-01T02:35:33Z

"H. Peter Anvin" <hpa@zytor.com> writes:

> Dave Jones wrote:
>>
>> I don't really care, but I wonder what the point is of rewriting something
>> that hardly ever gets notably changed, and is rarely (if ever?) a source
>> of bugs. It might be crufty old assembly, but it's worked well for years.
>>
>
> Well, it hardly gets notably changed because it is a nightmare to get it
> right, and when it is changed, it is likely to be a bug magnet. The
> sheer number of bugs I have found in the process of figuring out what
> the current code is doing is pretty much evidence of that. I'm
> surprised fewer bugs are actually manifest, but I guess that shows how
> little of the code is actually used.

This sounds plausible. Although I don't recall seeing that many bugs.
Even if we don't merge your changes the knowledge of the code gained
should be invaluable for future maintenance purposes. I reserve judgement
on the sanity of the rewrite until I see the patches.

> The "solution" that people have been employing has been to require the
> use of special bootloaders for different environments, which enter at
> code32_start instead. Hardly an improvement.

This part is incorrect. Every example I have seen of entering in at
a different entry point is because the environment does not support
16bit BIOS calls. So the easiest way to skip the kernels BIOS calls
is to skip setup.S.

Not that the x86 BIOS is bad. It is nearly a marvel in it's simplicity
and ubiquitousness, but it isn't everywhere, and it doesn't make
sense for it to be everywhere.

Eric