Re: Problems with PCMCIA on AMD dbau1100

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Josh Green wrote:
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




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux