Linux 2.6.x / EnE CB1410 cardbus - No Interrupts

Pavel Roskin proski at gnu.org
Sun Mar 21 17:37:23 GMT 2004


On Sun, 21 Mar 2004, Jeff Noxon wrote:

> Ok, since I have had success in two desktop systems, I am back to my
> "target" low-profile-pci system.  It contains an Intel D845GLLYL board.
> I have applied the latest BIOS (P17).  Notes below apply to kernel 2.6.4.
>
> With the "pcmcia-ti-routing-9" patch, as well as the PCI ID (TI_1250)
> patch, I get this:
>
> Linux Kernel Card Services
>   options:  [pci] [cardbus]
> PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
> Yenta: CardBus bridge found at 0000:01:00.0 [0000:0000]
> Yenta: Enabling burst memory read transactions
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:01:00.0, mfunc 0x00000000, devctl 0x46
> Yenta TI: socket 0000:01:00.0 probing PCI interrupt failed, trying to fix
> Yenta TI: socket 0000:01:00.0 falling back to parallel PCI interrupts
> Yenta TI: socket 0000:01:00.0 no PCI interrupts. Fish. Please report.
> Yenta: ISA IRQ mask 0x0000, PCI irq 0
> Socket status: 00000000

You definitely need the pcmcia-ti-routing-9 patch because the mfunc
register is 0 on startup.  It actually fixed the interrupts on the other
board.

The D845GLLYL has an additional problem.  Socket status is clearly wrong.
It should have CB_3VSOCKET and CB_5VSOCKET bits set, i.e. it should begin
with 3.

Note that devctl is the same as on the other board.  This probably means
that the device configuration space is correct, but the memory resource 0
is not.

This was also recently discussed, and the suggestion was to turn off an
bug-feature in GNU GRUB that tells the kernel how much memory it has.
See this message:
http://lists.infradead.org/pipermail/linux-pcmcia/2004-March/000614.html

Try replacing "kernel" with "kernel --no-mem-option" in
/boot/grub/menu.lst

Full output of dmesg may be useful to see it that's the case.

> Without any kernel options (acpi enabled) I get the following with lspci:
>
> 01:00.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 168, Cache Line Size: 0x20 (128 bytes)
>         Interrupt: pin A routed to IRQ 21
>         Region 0: Memory at 3ff01000 (32-bit, non-prefetchable) [size=4K]

This reminds me this message (see CardBus bridge resources):
http://lists.infradead.org/pipermail/linux-pcmcia/2004-March/000611.html

In that case, the memory region 0 was also close to the 1G boundary.

> /proc/interrupts, without the TI IRQ routing patch (with the patch,
> yenta has no IRQ):

The IRQ problem is solved for your card.  You have a separate problem on
that board with memory region 0.  Once you fix it, the IRQ probing will
succeed and you will get an interrupt.

> When you say "Daniel's patches" are you referring specifically to the
> TI IRQ routing patch above, or are there others?

I'm quite sure it was the TI IRQ routing patch.

-- 
Regards,
Pavel Roskin



More information about the linux-pcmcia mailing list