Re: TI yenta-alikes

From: Tim Small (tim@buttersideup.com)
Date: Thu Aug 07 2003 - 08:02:22 EST


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
>>Linux kernel.
>>
>>
>
>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...

Tim.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:38 EST