[OpenBIOS] PCI setup code

Ronald G Minnich rminnich at lanl.gov
Wed Apr 26 09:40:53 CEST 2000


On Wed, 12 Apr 2000, Maciej W. Rozycki wrote:

>  Linux starts UP then and uses 8259A interrupt controllers which have to
> work due to the DOS compatibility. 

strange and interesting datapoint: I had not yet put in the "8259a" code
from Linux startup into freebios. We did have it in the openbios code, and
I thought I would need it, but decided to see what happen if I did not put
it in. This code is not run by linux when it is started up from linuxbios
because it is done in boot/setup.S and we don't run ANY of that code -- we
go right to the linux startup at 0x10:0x100000 in protected mode. In other
words, the "steenking bios" code is not run at all. The only interrupt
setup I initially did for linuxbios is as follows:

void
intel_interrupts_on()
{
  unsigned long low, high;

  /* this is so interrupts work. This is very limited scope -- 
   * linux will do better later, we hope ...
   */
  rdmsr(0x1b, low, high);
  low &= ~0x800;
  wrmsr(0x1b, low, high);

}

(note how we can do things in C in freebios-based linuxbios, yee ha). 

Clock interrupts work just fine. I'm not sure about other interrupts. 

So what's going on? Well, turns out the code in boot/setup.S is there
because the BIOS misprograms the interrupts (at least as I read the
comments). Since we have no BIOS, we don't have misprogrammed
interrupts. We don't need that code in boot/setup.S to undo the damage
done by the PC BIOS. 

ron

-
To unsubscribe: send mail to majordomo at freiburg.linux.de
with 'unsubscribe openbios' in the body of the message



More information about the openbios mailing list