Eric W. Biederman
ebiederman at lnxi.com
Tue Mar 9 01:31:01 CET 2004
ron minnich <rminnich at lanl.gov> writes:
> On 8 Mar 2004, Eric W. Biederman wrote:
> > The PCBIOS compatibility code in rombios.c has quite a few warts.
> > Primary among them is that it written in a nasty mix of asm and 16bit C
> > code. With the biggest problem seeming to be that bcc is a limited
> > 16bit compiler.
> I don't much like this code.
> > In real mode there is 256K that we can place a real mode BIOS in. If
> > all we do is stick to what a PCBIOS can do now, and don't attempt to
> > extend it, but just be a good implementation 256K should be enough to do
> > whatever is needed.
> we're back to square one. Why do this when we can do emulation? I think I
> don't see what you're planning here.
Not for video support. This is for actually running freedos, freebsd,
and netbsd and windows etc. All of those unconverted operating
> > I don't know if gcc using 32bit overrides in 16bit mode would be
> > better than a pure 16bit C compiler.
> one less compiler is always good to me.
Maybe. It certainly simplifies the tool chain if you can do it.
> > So if the issues keeping us from using 16bit C compiler are primarily
> > cosmetic I don't see why they can't be fixed. Long term I don't even
> > want to touch a compatibility layer. I want to use something much
> > simpler and much more powerful.
> I don't see the reason long term for rombios.c or 16bit C compilers. I
> guess I'm missing something.
rombios.c or whatever the PCBIOS compatibility layer winds up being
must be 16bit code, (even if it has 32bit extensions all over the
place). I'm not certain gcc can be convinced to do a reasonable job
of 16bit C code.
So I guess the first attempt at cleaning up rombios.c should do it
with gcc. 32bit code with 16bit prefixes. If that does not work we
can get bcc out of the closet and make it usable.
COTS hardware is there and is valued because it does not impose
conversion time tables on software. This needs to apply to the
firmware as well. So for the short term we need it.
In the long term we can simply drop that compatibility layer. But
at the same time we need to spec an interface that distribution makes
can use to make bootable media. Something we can be certain of
providing on all ports that aim to support general purpose software.
More information about the coreboot