PCMCIA

#navi(contents-page-name): No such page: Linux

CONTENTS


REFERENCES


はじめに

PCMCIAは、Personal Computer Memory Card International Association の略。現在は規格として、「PC Card Standard」となったので、"16-bit PC Card" というほうが正しい表現。

Beta 04 Release !! (2005-05-26)

ks2101-linux power-save 開発メモ

Beta 03 Release !! (2005-05-23)

Beta 02 Release !! (2005-05-17)

Beta 01 Release !! (2005-05-13)

KS2970 (CF card) CIS 情報

manfid が前とちがっているじゃないか!ks29xx.confに追加しなければ…

# dump_cis
Socket 0:
  no CIS present
 
Socket 1:
  dev_info
    NULL 0ns, 512b
  vers_1 5.0, "KeyStream Corp.", "KS2970", "", ""
  manfid 0x005b, 0xf002
  funcid network_adapter
  lan_technology wireless
  lan_speed 1 mb/sec
  lan_speed 2 mb/sec
  lan_speed 5 mb/sec
  lan_speed 11 mb/sec
  lan_media 2.4_GHz
  config base 0x0200 mask 0x027f last_index 0x05
  cftable_entry 0x05 [default]
    Vcc Vmin 3130mV Vmax 3470mV Iavg 300mA Ipeak 300mA
    Idown 10mA
    io 0x0000-0x003f [lines=6] [16bit]
    irq mask 0xffff [level] [pulse]

追加したら、うごいた :)

+card "KeyStream KS2970 Wireless LAN PC Card"
+  manfid 0x005b, 0xf002
+  bind "ks29xx_cs"
cardmgr[1902]: socket 1: KeyStream KS2970 Wireless LAN PC Card
kernel: cs: memory probe 0xa0000000-0xa0ffffff: clean.
cardmgr[1902]: executing: 'modprobe ks29xx_cs'
kernel: eth1: KeyStream KS2101 wireless.
kernel: eth1: index 0x05: Vcc 3.3, irq 11, io 0x0100-0x013f
cardmgr[1902]: executing: './network start eth1'
kernel: ks29xx: MAC ADDRESS = 12:34:56:29:70:01
kernel: ks29xx: firmware ver. = 2970-PCMCIA-0.26 [Feb 09 2005  14:35:09]
/etc/hotplug/net.agent: invoke ifup eth1

Beta 00 Release !! (2005-04-12)

一応できた?cheekyのkernel2.6だとOopsが出てるが…。他のマシン&kernel2.4は大丈夫みたい。

まーとりあえず<Kernel panic>ってのは出てないので、いきなり止まることはない。普通に操作できる。これがでても、ドライバは動く。

なんか出なくなった?みたい…。spinlock初期化してない奴があったので、初期化するようにした(当たり前!)。NULL pointer渡してるじゃん… XD

Firmware Debug Command

KS2970 11b MAC
2970-PCMCIA-0.26 [Feb 09 2005  14:35:09]
2970PC>?
        ?                                       help
        D(B/W/D) (start), (end)                 memory dump
        W(B/W/D) addr, data                     memory write
        R(B/W/D) addr                           memory read
        BB[R/W/D/I]                             Baseband access
        CH (number)                             RF ch(1..14)
        E[R/W/D/CL]  (addr), (data)             eeprom access
        HOST                                    Host i/f
        MAC                                     MAC inf
        MACADDR                                 mac address
        MPL                                     pool
        PHY                                     PHY inf
        RATE (1/2/5/11)                         Tx rate
        SM                                      staion inf
        TIM                                     timer
        TX                                      frame tx debug
        VER                                     version

Linux Network Device

Linux Driver 設計

せっかく新規で書くので、きちんと設計したい。(時間ないけど…) やっぱ設計は大事ですよ。アホな設計のクサレcodeは、読みにくいし修正もしにくい。後々の自分自身の為にもキチンと設計したいね。KSCのドライバの場合、モジュールとして分けるなら、デバイス依存部分(MAC CHIPのI/F)、MAC-HOST I/F Protocol 部分、あと、network_device I/F 部分ってとこかな。愚痴なんですけど、いつもWindowsのNDISドライバとか提供してもらってるのだが、もうちょっと他のOSにポーティングすること、考えて書いてほしいよな…。あんまり参考になんないんだよね。そういう俺も思いっきりCPU依存なCODEを書いていますけど…。少なくともBigEndianなCPUじゃ絶対動かない…。

Linux Driver Loading

PC card service(cardmgr) にドライバをロードしてもらいたい場合、PCMCIA Card Configuration DataBase file の "/etc/pcmcia/config"に記述しておく。このファイルはadd-on driver用に"/etc/pcmcia/*.conf"も読み込むようになっているので、"/etc/pcmcia/hoge.conf"を作成し設定を記述しておいてもOK。DataBase fileを読み込ませるには、PC card serviceの再起動が必要。

Linux Driver 検討項目

  1. "Hotplug firmware loading support (EXPERIMRNTAL)"のカーネルオプションでMAC firmwareのロードはできる?
    Hotplugは、USB,1394,PCI(CardBus)関係の機能なので、PCMCIAじゃ無理?
    このオプションがカーネルのコードに入ったのは、2.4.23以降。
    include/linux/firmware.h
    lib/firmware_class.c
  2. wireless-toolsについて
    wireless-toolsは、現在一部の機能しかサポートしていない。(iwconfig)
    iwconfig
    iwevent
    iwgetid
    iwlist
    iwpriv
    iwspy
  3. WPA(Wi-Fi Protected Access)について
    なんか仕様書読むと、この機能がはいっているみたいだなー。
    やっぱサポートしなきゃいけない?よね〜。
  4. サポートするカーネルバージョンについて
    CardBusのときは、CardBusデバイスのサポートが2.4以降だったから、
    あまり考えなかったが、PCMCIAの場合どうなのでしょ?
    PCカードのサポートが入ったのはいつ?
    2.4からだっけ?じゃ、2.4系と2.6系ってことでいいのかな?
    いまどき2.2系使ってますとかいう奴は、いないだろ…

KS2916

KS2101


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS