Memory resource problems with CardBus

Pavel Roskin proski at
Sat May 15 13:23:09 EDT 2004


Here's another system I cannot get a Prism54 based card to work on.
That's what I see in the kernel log:

PCI: Failed to allocate mem resource #0:2000 at ef010000 for 0000:0a:00.0
Loaded prism54 driver, version 1.2
PCI: Enabling device 0000:0a:00.0 (0000 -> 0002)
prism54: PCI device memory region not configured; fix your BIOS or CardBus
prism54: probe of 0000:0a:00.0 failed with error -5

The first message appears even when the prism54 module is missing.  It has
nothing to do with the driver.  The message comes from
pci_assign_resource(), drivers/pci/setup-res.c in Linux source.

As I understand, pci_assign_resource() requires size-aligned windows for
everything except bridge resources.  The problem seems to be that a
non-bridge resource should be allocated inside a bridge resource that is
not size-aligned.  Here's the relevant portion of /proc/iomem:

ef00c000-ef00cfff : 0000:00:0b.0
  ef00c000-ef00cfff : yenta_socket
ef00d000-ef00efff : PCI CardBus #0a
ef00f000-ef010fff : PCI CardBus #0a

I don't see how an 8k (0x2000) size-aligned window can be allocated in
this configuration.  It's interesting that lspci shows 4k long windows:

        Memory window 0: ef00d000-ef00e000 (prefetchable)
        Memory window 1: ef00f000-ef010000

Maybe 8k windows are too long and should be shortened to 4k?  I don't see
where the window size comes from.

I put all additional information here:

The two-slot TI PCI1221 adapter doesn't work with CardBus cards, so I can
only use TI PCI1410.  The motherboard is AOpen AK77 with VIA chipset.
Linux 2.6.6-bk2.  prism54 from CVS.

Pavel Roskin

More information about the linux-pcmcia mailing list