Subject: Re: pcmcia0: card appears to have bogus cis for PCI1420 PC Card Controller
To: Radu-Cristian FOTESCU <beranger5ca@yahoo.ca>
From: Greg Troxel <gdt@ir.bbn.com>
List: netbsd-help
Date: 04/23/2007 15:10:16
Radu-Cristian FOTESCU <beranger5ca@yahoo.ca> writes:

> --- Greg Troxel <gdt@ir.bbn.com> wrote:
> Yeah, but it's *only* NetBSD who *thinks* it's broken. Do you want me to list
> again the long row of OSes who have no problem with that?

That wouldn't be helpful, assuming the goal is to get your hardware
working with NetBSD.  If you have a different goal please let me know -
I'm guessing at your goals from your posts.

> cbb0 at pci0 dev 4 function 0: Texas Instruments PCI1420 PCI-CardBus Bridge
> (rev. 0x00)
> cbb0: NOT USED because of unconfigured interrupt
> cbb0 at pci0 dev 4 function 1: Texas Instruments PCI1420 PCI-CardBus Bridge
> (rev. 0x00)
> cbb0: NOT USED because of unconfigured interrupt

OK, so PCI interrupt configuration is in fact the problem (or at least
one of the problems; we can't be sure there aren't more).  Are you using
GENERIC_LAPTOP, or GENERIC?  The option you may need is:

options 	PCI_INTR_FIXUP		# fixup PCI interrupt routing

> pcmcia0 at pcic0 controller 0 socket 0
> pcmcia1 at pcic0 controller 0 socket 1
> ---
>
> And what is PCMCIA doing here once you say pcmcia != cardbus ?!
> I thought that CardBus is _over_ PCMCIA, but the detection order is
> reverded?!

Normally this is suppressed and pcmcia is at cardslot, using the pcmcia
support in the cardbus bridge.  But when the cardbus bridge attachment
fails, the old-style pcmcia (16-bit only) controller is found instead of
being suppressed.

On my Thinkpad T60:

  cbb0 at pci6 dev 0 function 0: Texas Instruments PCI1510 PCI-CardBus Bridge (rev. 0x00)
  cbb0: can't map socket base address 0xe4300000
  pci_io_find: expected type i/o, found mem
  cbb0: can't map socket base address 0xc0b99694: io mode
  cbb0: interrupting at ioapic0 pin 16 (irq 11)
  cardslot0 at cbb0 slot 0 flags 0
  cardbus0 at cardslot0: bus 22
  pcmcia0 at cardslot0

(On my machine, cardbus cards work fine, and pcmcia cards don't,
probably because of the problem that caused the io/mem type error, and I
haven't spent the time to fix things yet).

> And again, the NetBSD-4 line is seeing the same CardBus
> correctly... so please, don't tell me that _my_ hardware is wrong,
> when only NetBSD 3.1 can't see it :-((

I think your hardware is wrong; the BIOS should have configured the
interrupt.  NetBSD has pointed that out and made it quite clear what is
happening.  The other systems and NetBSD 4.0_BETA2 are working around
the problem.  A large amount of notebook hardware has problems in this
area.

NetBSD 4 GENERIC has ACPI by default, and it may be that your hardware
configures things correctly with ACPI but not with PCIBIOS.

Again, which kernel are you running?  GENERIC doesn't have the
workarounds for incorrect hardware, and GENERIC_LAPTOP has more of them.

Also, if you're starting fresh, I'd go with 4.0_BETA2 instead of 3.1
It's not actually released, but I'd say it's likely to work better
overall.