linux-mips
[Top] [All Lists]

Re: need help with CompactFlash/PCMCIA

To: Ulrich Eckhardt <eckhardt@satorlaser.com>
Subject: Re: need help with CompactFlash/PCMCIA
From: Pete Popov <ppopov@embeddedalley.com>
Date: Tue, 15 Mar 2005 09:31:49 -0800
Cc: linux-mips@linux-mips.org
In-reply-to: <200503151245.15920.eckhardt@satorlaser.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <200503151245.15920.eckhardt@satorlaser.com>
Reply-to: ppopov@embeddedalley.com
Sender: linux-mips-bounce@linux-mips.org
Ulrich Eckhardt wrote:
Hi!

I have a board here which roughly resembles a DB1100, AFAICT. My problem is that I can't get the CompactFlash card to be recognized, and I don't even know where exactly it fails.
So, a few questions up front:
1. CompactFlash is accessed via PCMCIA, it does not use the MTD infrastructure, right?

Correct.

I also read that the CF then appears as a normal(?) ATA device. So, what should be the right drivers for it?

The au1x00_ss socket driver, the pcmcia stack modules or statically compiled, and ide-cs.o, which is the pcmcia ide client driver.

2. How can I find out if it's looking at the right addresses? I just need some kind of register which I can probe to find out if the device is where I think it should be.

Hmm, in fact I'd be happy about _any_ hint the would get me further. I'm slightly desparate...

Start with the low level routines that detect the card and set the voltage levels. When you plug in the card, is it detected? Are you setting the correct voltages? What happens next -- is the card at least recognized by the cardmgr, which means that the attribute memory is read correctly?

Appended is a patch that removes an unused variable, something I found while trying to understand what's going on there.

Well, there is another patch for a custom board that uses those unused variables. Perhaps those variables should just be part of that external patch...

Pete

thanks

Uli

---

Index: au1000_generic.c
===================================================================
RCS file: /home/cvs/linux/drivers/pcmcia/au1000_generic.c,v
retrieving revision 1.18
diff -u -r1.18 au1000_generic.c
--- au1000_generic.c 25 Jan 2005 04:28:38 -0000 1.18
+++ au1000_generic.c 15 Mar 2005 11:40:26 -0000
@@ -66,10 +66,6 @@
 #define PCMCIA_SOCKET(x) (au1000_pcmcia_socket + (x))
#define to_au1000_socket(x) container_of(x, struct au1000_pcmcia_socket, socket) -/* Some boards like to support CF cards as IDE root devices, so they
- * grab pcmcia sockets directly.
- */
-u32 *pcmcia_base_vaddrs[2];
 extern const unsigned long mips_io_port_base;
DECLARE_MUTEX(pcmcia_sockets_lock);
@@ -437,7 +433,6 @@
    skt->phys_mem = AU1X_SOCK1_PSEUDO_PHYS_MEM;
   }
 #endif
-  pcmcia_base_vaddrs[i] = (u32 *)skt->virt_io;
   ret = ops->hw_init(skt);
skt->socket.features = SS_CAP_STATIC_MAP|SS_CAP_PCCARD;




<Prev in Thread] Current Thread [Next in Thread>