world leader in high performance signal processing
Trace: » bfin_cf_pcmcia

Blackfin PCMCIA Driver

PCMCIA is named after the Personal Computer Memory Card International Association.

http://www.pcmcia.org/

This driver as well as the cf-ide-nand only implements 16-bit PCMCIA. 32-bit CardBus is not supported.

Board Configuration

  1. Connect the CF/IDE/NAND daughter board to the U connector on the back of BF537-stamp
  2. Turn off PIN 3 and 4 of SW6
  3. Turn off All PINs of SW5

Kernel Configuration

Driver Options

In the kernel configuration menu, turn on these options:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  <*> PCCard (PCMCIA/CardBus) support  --->
    --- PCCard (PCMCIA/CardBus) support
    [ ]   Enable PCCARD debugging
    <*>   16-bit PCMCIA support
    [*]     Load CIS updates from userspace (EXPERIMENTAL)
    [*]     PCMCIA control ioctl (obsolete)
    ---   PC-card bridges
    <*>   Blackfin CompactFlash PCMCIA Driver

EBIU Configuration

You should then tweak your External Bus Interface Unit (EBIU) timings:

Blackfin Processor Options  --->
  EBIU_AMBCTL Control  --->
    (0x7BB0) Bank 0
    (0x7BB0) Bank 1
    (0xFFC3) Bank 2
    (0xFFC3) Bank 3

Enable maximum wait states (0xFFC3) for the memory bank the interface is connected to (/AMS3).

Adjusting System Clock Speed

This part is optional. Tweak according to your needs.

Depending on the inserted cards, System Clock SCLK must not exceed maximum timing requirements.

User Space PCMCIA Utilities

Please see the pcmciautils page for details.

Driver Examples

CompactFlash IDE Cards

Config

During kernel configuration enable following options

Device Drivers  --->
    SCSI device support  --->
      <*> SCSI disk support
    <*> Serial ATA (prod) and Parallel ATA (experimental) drivers  --->
      --- Serial ATA (prod) and Parallel ATA (experimental) drivers
      <*>   PCMCIA PATA support

Insert and mount

root:/> modprobe pata_pcmcia
pccard: PCMCIA card inserted into slot 0
pcmcia: registering new device pcmcia0.0
scsi0 : pata_pcmcia
ata1: PATA max PIO0 cmd 0x20310000 ctl 0x2031000e irq 54
ata1.00: CFA: SanDisk SDCFH2-002G, HDX 4.32, max PIO4
ata1.00: 4001760 sectors, multi 0: LBA
ata1.00: Drive reports diagnostics failure. This may indicate a drive
ata1.00: fault or invalid emulation. Contact drive vendor for information.
ata1.00: configured for PIO0
ata1.00: configured for PIO0
ata1: EH complete
scsi 0:0:0:0: Direct-Access     ATA      SanDisk SDCFH2-0 HDX  PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 4001760 512-byte hardware sectors (2049 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 4001760 512-byte hardware sectors (2049 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk

root:/> mount /dev/sda1 /mnt/
root:/> ls /mnt/
busybox       dcim          nikon001.dsc  test

802.11 CompactFlash Cards

Config

During kernel configuration enable following options

[*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
---   Obsolete Wireless cards support (pre-802.11)
< >   STRIP (Metricom starmode radio IP)
< >   AT&T/Lucent old WaveLAN Pcmcia wireless support
< >   Xircom Netwave AirSurfer Pcmcia wireless support
---   Wireless 802.11 Frequency Hopping cards support
< >   Aviator/Raytheon 2.4MHz wireless support
---   Wireless 802.11b ISA/PCI cards support
<M>   Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)
< >   Atmel at76c50x chipset  802.11b support
---   Wireless 802.11b Pcmcia/Cardbus cards support
<M>   Hermes PCMCIA card support
< >   Symbol Spectrum24 Trilogy PCMCIA card support
< >   Blackfin WLAN card support
< >   Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards
< >   Planet WL3501 PCMCIA cards
< >   IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)

Load the Module

root:~> modprobe orinoco_cs
Using /lib/modules//2.6.16.11-ADI-2006R1blackfin/kernel/drivers/net/wireless/hermes.ko
Using /lib/modules//2.6.16.11-ADI-2006R1blackfin/kernel/drivers/net/wireless/orinoco.ko
Using /lib/modules//2.6.16.11-ADI-2006R1blackfin/kernel/drivers/net/wireless/orinoco_cs.ko
root:~>

Your dmesg should contain following lines :

root:~> dmesg

pccard: PCMCIA card inserted into slot 0
pcmcia: registering new device pcmcia0.0
orinoco 0.15rc3 (David Gibson hermes@gibson.dropbear.id.au, Pavel Roskin proski@gnu.org, et al)
orinoco_cs 0.15rc3 (David Gibson hermes@gibson.dropbear.id.au, Pavel Roskin proski@gnu.org, et al)
eth1: Hardware identity 801b:0000:0001:0000
eth1: Station identity 001f:0002:0001:0004
eth1: Firmware determined as Intersil 1.4.2
eth1: Ad-hoc demo mode supported
eth1: IEEE standard IBSS ad-hoc mode supported
eth1: WEP supported, 104-bit key
eth1: MAC address 00:0F:66:10:C7:11
eth1: Station name “Prism I”
eth1: ready
eth1: index 0x01: Vcc 3.3, irq 34, io 0x20310000-0x2031003f
root:~>