PCMCIA Bluetooth Card (AnyCom CF - 300) on ARM

Itzhak Ben-Akiva itzhak.benakiva at guardit-tech.com
Tue Sep 27 12:36:58 EDT 2005


On Tue, 2005-09-27 at 18:09 +0200, Dominik Brodowski wrote:
> On Tue, Sep 27, 2005 at 07:17:23AM +0300, Itzhak Ben-Akiva wrote:
> > Hi Dominik,
> > 
> > In my ARM documentation I found the following information for
> > Integrator/AP
> > 
> > -----------------------------------------------------------------------------
> > Window  PCI space  Size    PCI address           System bus addr
> > -----------------------------------------------------------------------------
> >  0      Memory     256MB   0x40000000-0x4FFFFFFF 0x40000000-0x4FFFFFFF
> > -----------------------------------------------------------------------------
> >  1      Memory     256MB   0x50000000-0x5FFFFFFF 0x50000000-0x5FFFFFFF
> > -----------------------------------------------------------------------------
> >  2      I/O        16MB    0x000000-0xFFFFFF     0x60000000-0x60FFFFFF
> > -----------------------------------------------------------------------------
> > Registers -         64KB        -                0x62000000-0x6200FFFF
> > -----------------------------------------------------------------------------
> > 
> > Based on this information, I tried to set up the i/o ports for pcmcia in
> > the file /etc/pcmcia/config.opts as follows:
> > 
> > include port 0x600-0x60f
> > include memory 0x40000000-0x4fffffff, memory 0x50000000-0x5fffffff
> 
> No, you need the system-centric view in /etc/pcmica/config.opts:
> 
> include port 0x60000000-0x60ffffff

If I use include port as you mentioned above I get the following error
from cardmgr:

cardmgr[841]: error in file './config.opts' line 20: invalid port range
0x60000000-0x60ffffff
cardmgr[841]: no pcmcia driver in /proc/devices

include port 0x600-0x60f, though, went ok.

> 
> 
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x300 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x340 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x380 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x3c0 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x200 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x240 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x280 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x2c0 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x100 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x140 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x180 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x1c0 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x40 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0x80 align 0x40
> > pcmcia_resource: pcmcia_socket0: odd IO request: base 0xc0 align 0x40

bluecard_config calls pcmcia_request_io as follows:

link->conf.ConfigIndex = 0x20;
        link->io.NumPorts1 = 64;
        link->io.IOAddrLines = 6;

        for (n = 0; n < 0x400; n += 0x40) {
                link->io.BasePort1 = n ^ 0x300;
                i = pcmcia_request_io(link->handle, &link->io);
                if (i == CS_SUCCESS)
                        break;
        }

        if (i != CS_SUCCESS) {
                cs_error(link->handle, RequestIO, i);
                goto failed;
        }

pcmcia_request_io fails to allocate io region. I thought that using the
address I mentioned in the table above would solve the problem.

Any ideas?

Thanks,
Itzhak
> 
> This I do not understand, but it shouldn't do any harm.
> 
> 	Dominik
> 
> _______________________________________________
> Linux PCMCIA reimplementation list
> http://lists.infradead.org/mailman/listinfo/linux-pcmcia




More information about the linux-pcmcia mailing list