tim at buttersideup.com
Thu Aug 7 15:02:22 BST 2003
Alan Cox wrote:
>On Iau, 2003-08-07 at 10:02, Russell King wrote:
>>doing is *wrong*. The only people who know whether the pin has been
>>wired for INTA or IRQ3 are the _designers_ of the hardware, not the
>That assumes the yenta controller isnt hotplugged.
Some (all?) PCI add-in cards leave this up to the OS/driver as well.
The card I have has no firmware on board, and from a quick look at the
PCI1031 datasheet, I can't see any easy way of adding one. The default
power-on state (at least for the PCI1031) is to disable all interrupts.
>>Currently, the Linux kernel assumes a "greater than designers" approach
>>to fiddling with the registers which control the function of these pins,
>>and so far I've seen:
>>- changing the mode from serial PCI interrupts to parallel PCI interrupts
>> causes the machine to lock hard (since some cardbus controllers use the
>> same physical pins for both functions.)
>Basically we got burned by changing the IRQMUX register rather than just
>using it as an information source.
I think it should be possible to use the IRQMUX, and other registers to
work out whether the bridge has been setup or not.. e.g.
"device control register bits2,1: R/W, Interrupt mode.
Bits 2 1 select the interrupt mode used by the PCI1031. Bits 2 1 are
encoded as: 00 = No interrupts enabled (default) 01 = ISA 10 =
Serialized IRQ type interrupt scheme 11 = Reserved"
If these bits are non-zero, I suppose we should probably leave the IRQ
routing registers alone, as it would seem to be a good indicator that
the BIOS has programmed these for us. This is just on the 1031,
however, I haven't checked any of the other datasheets...
More information about the linux-pcmcia