is there a way not to believe the bios' IRQ prog and use the $PIR?

othermark atkin901 at yahoo.com
Mon Jul 11 16:19:38 GMT 2005


Hi,

I believe since the following commit, I have had serious problems with
interrupts on one class of machines (TYAN S1867 - thunder 2500):

http://article.gmane.org/gmane.os.freebsd.devel.cvs.src/46247/

jhb         2005-04-14 18:25:09 UTC

  FreeBSD src repository

  Modified files:
    sys/i386/pci         pci_pir.c 
  Log:
  Trust the settings programmed by the BIOS over what the $PIR says.
  Specifically, if the BIOS has programmed an IRQ for a device that doesn't
  match the list of valid IRQs for the link, use it anyway as some BIOSes
  don't correctly list the valid IRQs in the $PIR.  Also, allow the user
  to specify an IRQ that $PIR claims is invalid as an override, but emit a
  warning in that case.

  Revision  Changes    Path
  1.117     +48 -18    src/sys/i386/pci/pci_pir.c

Unfortunately, I'm quite sure that no more fixes for this older 
mboard will be forthcoming from the vendor.   Under high to moderate
load, the layer will simply 'miss' interrupts, leading to file/network
traffic corruption and dropped characters on serial consoles.

Here's the non -v boot showing the warning entries.

pcib2: <ServerWorks host to PCI bridge> pcibus 2 on motherboard
pir0: <PCI Interrupt Routing Table: 12 Entries> on motherboard
$PIR: Using invalid BIOS IRQ 17 from 1.0.INTA is for link 0x12
$PIR: Using invalid BIOS IRQ 23 from 0.7.INTA is for link 0x18
$PIR: Using invalid BIOS IRQ 16 from 0.3.INTA is for link 0x11
$PIR: Using invalid BIOS IRQ 18 from 0.4.INTA is for link 0x13
$PIR: Using invalid BIOS IRQ 20 from 0.5.INTA is for link 0x15
$PIR: Using invalid BIOS IRQ 22 from 0.6.INTA is for link 0x17

Is there a tunable I'm not aware of that I could revert back to
not believing the BIOS and use the $PIR entries?  

-- 
othermark
atkin901 at nospam dot yahoo dot com
(!wired)?(coffee++):(wired);



More information about the freebsd-current mailing list