TI1510 again

Pavel Roskin proski at gnu.org
Thu May 13 21:56:27 EDT 2004


On Wed, 12 May 2004, Warren Melnick wrote:

> I grabbed a fresh 2.4.26 and applied the pcmcia-ti-routing-9_v24.patch
> to it.  I compiled everything into the kernel itself.

You may want to try Linux 2.6.6.  At least you'll be "on the same page"
with the developers.

> This is in the dmesg:
> Linux Kernel Card Services 3.1.22
>   options:  [pci] [cardbus] [pm]
> PCI: Found IRQ 5 for device 00:0b.0

That must be a single-socket card.

> PCI: Sharing IRQ 5 with 00:10.3

That's the onboard USB 2.0 controller.  Try disabling it in BIOS.

> Yenta TI: socket 00:0b.0, mfunc 0x00c01002, devctl 0x66

OK, let's see.  The documentation is here:
http://www-s.ti.com/sc/ds/pci1510.pdf

mfunc:
MFUNC6 - not connected
MFUNC5 - LED_SKT
MFUNC4 - GPI3
MFUNC3 - IRQSER
MFUNC2 - GPI2
MFUNC1 - GPI1
MFUNC0 - INTA

devctl:
3V capable
IRQ and PCI serialized interrupts (IRQ means ISA interrupts in the TI
documentation).

> Yenta TI: socket 00:0b.0 probing PCI interrupt failed, trying to fix
> Yenta TI: socket 00:0b.0 falling back to parallel PCI interrupts
> Yenta TI: socket 00:0b.0 no PCI interrupts. Fish. Please report.

It would be interesting to see what the kernel writes to devctl and mfunc.
Let's go through ti12xx_irqroute_func0().

mfunc is 0x00c01002, devctl is 0x66.
yenta_probe_cb_irq() fails.
IRQSER is already on MFUNC3, not trying to enable it.
devctl becomes 0x64 (serialized IRQ, parallel PCI).
INTA already on MFUNC0, not changing mfunc.
yenta_probe_cb_irq() fails again.
The driver prints "Fish".

To sum up, the driver only changes devctl to 0x64.  There are several
other things to try:

Unset PCI_BRIDGE_CTL_NO_ISA in PCI_BRIDGE_CONTROL if needed.
Set TI1250_DIAG_PCI_CSC in TI1250_DIAGNOSTIC if needed (the variable names
are wrong sine the diagnostic register is not TI1250-specific).
Disable all ISA IRQs by setting devctl to 0x60.

> and when I insert a wireless card the system freezes.

That's not good, but it's hard to expect graceful behavior if interrupt
probing failed and the driver didn't even try to restore the registers.

> Again the chip is a TI 1510.  Any help here would be appreciated,
> including anything that I might be able to send back to the company that
> designed the motherboard to tell them why this is happening and how they
> can rewire things to fix it.

If you can load Windows on that machine and PCMCIA works, try dumping the
PCI configuration space of the card under Windows using PCItree
(http://www.pcitree.de/).  Then compare it with what you get on Linux
("lspci -xxx").

-- 
Regards,
Pavel Roskin



More information about the linux-pcmcia mailing list