I'm having trouble getting PCMCIA to work properly on my dbau1100 MIPS board with latest CVS (2.6.10rc3). Any help would be very appreciated. Here is lsmod output:
# lsmod Module Size Used by Not tainted au1x00_ss 12160 0 - Live 0xc0005000 pcmcia_core 60848 1 au1x00_ss, Live 0xc0015000
I get this output when modprobing au1x00_ss:
Linux Kernel Card Services options: none
At this point 'pcmcia' is not listed in /proc/devices though, so I'm assuming another module needs to be inserted? On my x86 laptop I see there is a ds module. This appears to have been compiled into an object for my MIPS build, but there is no stand alone ds module. If I insert the 'pcmcia' module I get pcmcia support (I'm assuming this is the 16 bit PCMCIA module, it doesn't appear dependent on au1x00_ss), but no cards are detected:
# cardctl ident Socket 0: no product info available Socket 1: no product info available
# cardctl status Socket 0: no card Socket 1: no card
If all the config files are setup properly, you should start pcmcia with /etc/rc.d/init.d/pcmcia start. That will also run the cardmgr. Without the cardmgr, nothing will happen. If you're loading the modules manuall, modprobe au1x00_ss, then ds.o, the execute cardmgr and at that point the card should be detected.
One thing to note is that I get a few warnings during the PCMCIA build:
CC [M] drivers/pcmcia/au1000_generic.o drivers/pcmcia/au1000_generic.c: In function `au1x00_pcmcia_socket_probe': drivers/pcmcia/au1000_generic.c:425: warning: integer constant is too large for "long" type drivers/pcmcia/au1000_generic.c:433: warning: integer constant is too large for "long" type
The first warning is related to the following code (second is similar but for socket 1):
skt->virt_io = (void *) ((u32)ioremap((ioaddr_t)AU1X_SOCK0_IO, 0x1000) - (u32)mips_io_port_base);
AU1X_SOCK0_IO is defined as 0xF00000000 which is a 36 bit number, not
sure if that will cause a problem or not (since ioremap is using phys_t
which is 32 bit).
phys_t is 64 bit if 64BIT is enabled. Make sure you have the 36bit I/O support enabled. CONFIG_64BIT_PHYS_ADDR has to be defined.
Perhaps this truncation is intentional though.
Thanks in advance for any helpful pointers. Best regards, Josh Green
I tested pcmcia a couple of months ago when I updated the driver. I'll retest it in the next few days and send you additional instructions.
Pete