Eric W. Biederman ebiederman at lnxi.com
Tue Mar 9 01:09:00 CET 2004

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.  

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.

I don't know if gcc using 32bit overrides in 16bit mode would be
better than a pure 16bit C compiler.  

Just looking at rombios.c earlier today the worst of it appears to be
that rombios.c is a nasty mess, and that rombios.c does not support
pci.  So most of it to me does not appear to be a compiler issue at
all, just that rombios.c needs to be rewritten in a more maintainable

I need to look a little more closely but I suspect getting bcc to
accept a fairly complete gcc syntax including inline asm support would
not be hard.  Nor do I think getting bcc to output to gas assembly
instead of it's own assembler would be to bad.  Except possibly
that gas 16bit support is quite limited.  

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.  


More information about the coreboot mailing list