TI yenta-alikes

Tim Small 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
>>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.




More information about the linux-pcmcia mailing list