Commit Graph

19 Commits

Author SHA1 Message Date
onoe d5d707cf1d Add 82801BAM as piix.
Do not initialize global variables 'pciintr_icu_tag' to NULL.
Its type is 'const struct pciintr_icu *' (typedef'ed) and gcc sometimes(!)
put it in Text region.  So force arrrange it to BSS.
2001-12-07 08:07:57 +00:00
lukem 95c969f245 add RCSID 2001-11-15 07:03:28 +00:00
haya 31d98218e8 Add support for ALi M1543 in pcibios. 2001-08-27 08:21:20 +00:00
haya 3d57cec099 Add new entry for intel ICH2 LPC interrupt router. It has
upper compatibility with piix.
2001-08-01 09:11:19 +00:00
mrg ef38b7e874 fix a statementless label that gcc-current picked up. 2001-07-17 13:53:15 +00:00
mcr 07ba5352f1 extra argument to pci_device_foreach(). 2001-07-06 18:03:47 +00:00
kanaoka aa09aa91c7 Search the entire device-space of bus 0 if the router device
address is set to 000:00:0, and the compatible router entry
is undefined.

  Patch PR port-i386/12880 by Dave Sainty <dave@dtsp.co.nz>.
2001-05-16 08:10:36 +00:00
uch 9b730bc368 patch PR port-i386/11114 by MINOURA Makoto. 2001-04-19 17:32:40 +00:00
aymeric 6a808ce8c8 Initialize VIA Technologies' 82C686's ICU as if it were a 82C586.
This fixes interrupt allocation problems on modern Compaq laptops.
2001-01-05 18:39:12 +00:00
soda b63f6b5096 Add another option PCIBIOS_INTR_GUESS for no compatible ICU found case.
Under this option, if only one IRQ is available for the link,
we assumes that the IRQ is already connected, and configure
PCI Interrupt Configuration Register accordingly.
This is what Linux pcmcia-cs-3.1.19 does by default.

This fixes unconfigured pccbb interrupt problem of
Sharp Mebius MN-5500. It's interrupt router is ITExpress Inc. IT8330G.
(http://www.ite.com.tw/, vendor=0x1283, product=0x8330)
Problem reporeted by Kitagawa <sk@kiu.ac.jp> in
http://www.kaynet.or.jp/~kay/ml/netbsd-pcmcia/msg/msg00608.html
2000-08-10 21:18:27 +00:00
soda a86a9c61c4 better message from John Hawkinson <jhawk@MIT.EDU> 2000-07-22 17:43:36 +00:00
soda 87b0dd6e6a make PCIBIOS_IRQS_HINT patchable. 2000-07-18 11:37:56 +00:00
soda 81858d7c01 - Use PCIBIOS_PRINTV().
- Use PCI_INTERRUPT_PIN_MAX and I386_PCI_INTERRUPT_LINE_NO_CONNECTION
   instead of magic number.

the Following changes are
{Modified with,Approved by} UCHIYAMA Yasushi <uch@netbsd.org>:

 - Do not touch a PIRQ router, if the PIRQ is already routed
   by the BIOS, or no appropriate IRQ is found for the PIRQ.
   The latter prevents a panic on the machine of Frank van der Linden.

 - Do not modify a PCI Interrupt Configuration register,
   if it is already set by the BIOS, even if it is inconsistent
   with the PCI IRQ routing table provided by the BIOS.
   (The PCI Interrupt Configuration register seems to be more reliable
    than the PCI IRQ routing table.)
   This is needed to prevent a incorrect header_fixup() caused
   by the incorrect PIR table on a Panasonic Let's Note AL-N2T516J5.

   Provide "options PCIBIOS_INTR_FIXUP_FORCE" to retain
   previous behavior, i.e. believe the PCI IRQ routing table
   and ignore the PCI Interrupt Configuration register.
   Although I'm not sure this is really needed.

 - Do not modify a PCI Interrupt Configuration register,
   if appropriate IRQ is not found for the link.

 - Move a pciintr_icu_getclink() call and a pciintr_icu_get_intr()
   call from pciintr_link_fixup() to pciintr_link_alloc(),
   and only allocate pciintr_link_map if those calls succeeded.
   This reduces number of calls of pciintr_icu_getclink(),
   and also avoid necessity to validate a clink value in
   ICU's {get,set}_{intr,trigger}() functions.
   The sanity checks are not removed yet, though.

 - Fix uninitialized usage of variable `bitmap' on stage 3
   of pciintr_link_fixup().

 - Remove a member variable `old_irq' from struct pciintr_link_map.

 - Always use 0x%02x for printf format of canonical link value.

 - Use DIAGNOSTIC instead of PCIINTR_DEBUG for really weird situation.
2000-07-18 11:22:36 +00:00
mycroft 4087b4e418 Do the interrupt fixup for all busses, not just bus 0.
This is necessary on some machines with multiple onboard PCI busses.
2000-07-09 00:42:47 +00:00
uch e3c3882828 PCIBIOS_IRQS changed to PCIBIOS_IRQS_HINT. PCIBIOS_IRQS_HINT is
used when no IRQ guess. when at least 1 PCI device configured
        correctly, unused.
2000-04-28 17:15:15 +00:00
augustss 0acef2fd69 Allow the set of PCI irqs to be overridden. 2000-01-25 17:20:47 +00:00
uch 46fb1c9fce initialize pciirq. 1999-12-13 15:42:05 +00:00
thorpej 7f28924acc If we see a bogus $PIR table entry, just ignore it. The MPIIX has
entries for the IRQs used by the IDE controller, which aren't really
PCI IRQs (they're ISA compat IRQs), and thus have link values that
don't make a lot of sense.
1999-11-17 18:55:15 +00:00
thorpej 2026e5f71b PCI interrupt routing fixup code, from UCHIYAMA Yasushi's PCI BIOS
patches, cleaned up and heavily reworked by me.  Basic algorithm is
the same, although the code structure is now quite different.

Main differences:
- Initialization path is totally different.
- We use the `compat router' information, if present, to determine which
  PCI ICU driver we should use.
- Fixup configuration headers on devices not on bus 0.
1999-11-17 01:20:38 +00:00