linux-mips
[Top] [All Lists]

Re: PCMCIA on AU1200

To: linux-mips@linux-mips.org
Subject: Re: PCMCIA on AU1200
From: Ulrich Eckhardt <eckhardt@satorlaser.com>
Date: Tue, 31 Jan 2006 15:03:52 +0100
In-reply-to: <1138703953.7932.36.camel@localhost.localdomain>
Organization: Sator Laser GmbH
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1138703953.7932.36.camel@localhost.localdomain>
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.8.3
On Tuesday 31 January 2006 11:39, Matej Kupljen wrote:
> I am trying to use PCMCIA on a DBAU1200 with 16bit card.
>
> From the docs for the board, I see that the PCMCIA interface
> is on CE[3], but the value of the mem_staddr3 is
> 0x1000000.
>
> Looking at the Linux source code, I see that the PCMCIA is
> ioremap-ed to 0xf00000000 (36 bit). It also uses PSEUDO
> addresses for the skt->phys_attr and skt->phys_mem.
>
> At what (physical) address can I find the card's I/O space,
> so I can use tools like devmem2 to see the cards CIS?
> Should I configure mem_stadd3 to same other value?
> To 0xf0000000?

I'm not exactly sure what your problems are, but maybe this helps you achieve 
what you want.

Firstly, 0xf 0000 0000 is the 36 bit physical address. This address is mapped 
by the driver via ioremap() into a 32 bit virtual address. Now, I think there 
are three macros for the PCMCIA memory regions (at least there were for the 
Au1100), which you can ioremap() separately.

Now, what gave me most trouble where two other things that needed to be done 
for my board (they might be different for you):
1. configure the static bus controller
This mainly means selecting the right timing parameters and switching the 
right bits on and off. You definitely need to read the programmer's handbook 
from AMD/Alchemy.
2. turn on power
In my case, power on and card detect were wired to some GPIO pins, so I had to 
switch them to the right level. This might require additional configuration 
in advance, too, but you can check the results using a simple voltmeter.

However: The DB boards are generally supported by Linux, so I wonder why you 
need to do anything at all.

Uli



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