WiFi - IOマップ


DS Wifi I/O マップ

  • ARM7 I/O の Wifi 領域
4800000h-4807FFFh Wifi WS0 領域 (32K)
4808000h-4808000h Wifi WS1 領域 (32K)
4810000h-4FFFFFFh 未使用 (00h-filled)

Wifi Registers appear more stable in WS1 region?
Wifi RAM appears more stable in WS0 region?
Wifi Registers & RAM cannot be written to by STRB opcodes (ignored).

  • 32K Wifi 領域の構造 (WS0 ・ WS1)
4800000h-4800FFFh レジスタ
4801000h-4801FFFh レジスタ (ミラー)
4802000h-4803FFFh 未使用 (FFh-filled)
4804000h-4805FFFh Wifi RAM (8K)
4806000h-4806FFFh レジスタ (ミラー)
4807000h-4807FFFh レジスタ (ミラー)

  • レジスタ

アドレス アクセス 名前 r/w [Init] 説明
0000h R W_ID ---- [1440] チップ ID
0004h R/W W_MODE_RST 9fff [0000] Mode/Reset
0006h R/W W_MODE_WEP --7f [0000] Mode/Wep モード
0008h R/W x ? ffff [0000] 常に 0 にセット ?
000Ah R/W x ? ffff [0000] [bit7 - RX 重複無視]
0010h R/W W_IF ackk [0000] Wifi 割り込み要求フラグ
0012h R/W W_IE ffff [0000] Wifi 割り込み有効
0018h R/W W_MACADDR_0 ffff [0000] ハードウェア MAC アドレス (最初の 2 バイト)
001Ah R/W W_MACADDR_1 ffff [0000] ハードウェア MAC アドレス (次の 2 バイト)
001Ch R/W W_MACADDR_2 ffff [0000] ハードウェア MAC アドレス (最後の 2 バイト)
0020h R/W W_BSSID_0 ffff [0000] BSSID (最初の 2 バイト)
0022h R/W W_BSSID_1 ffff [0000] BSSID (次の 2 バイト)
0024h R/W W_BSSID_2 ffff [0000] BSSID (最後の 2 バイト)
0028h R/W x W_AID ---f [0000] BSSに割り当てられたAIDの値
002Ah R/W x ? -7ff [0000] W_AID に対して常に同じ値をセットする
002Ch R/W x W_RETRLIMIT ffff [0707] Tx リトライ制限 (0x00 ~ 0xFF)
002Eh R/W x ? ---1 [0000]
0030h R/W W_RXCNT ff0e [0000] 受信制御
0032h R/W W_WEP_CNT ffff [0000] WEP エンジン有効
0034h ?/? x ? 0000 [0000]

  • パワーダウンレジスタ (と、乱数ジェネレータ)
0036h R/W W_POWER_US ---3 [0001]
0038h R/W W_POWER_TX ---7 [0003]
003Ch R/W W_POWERSTATE -r-2 [0200]
0040h R/W W_POWERFORCE 8--1 [0000]
0044h R W_RANDOM 0xxx [0xxx]
0048h R/W W_POWER_? ---3 [0000]

  • WLAN メモリポート
0050h R/W W_BUF_RD_BEGIN ffff [4000]
0052h R/W W_BUF_RD_END ffff [4800]
0054h R W_RXHWWRITECSR 0rrr [0000]
0056h R/W W_WRITECSRLATCH -fff [0000]
0058h R/W W_BUF_RD_ADDR 1ffe [0000]
005Ah R/W W_RXREADCSR -fff [0000]
005Ch R/W x -fff [0000] カウントダウン; WiFi 割り込み 9 が 0 になった時に動く
0060h R W_BUF_RD_DATA rrrr [xxxx]
0062h R/W x 1ffe [0000] 初期化フローチャート参照
0064h R/W x -fff [0000]
0068h R/W W_BUF_WR_ADDR 1ffe [0000]
006Ch R/W x -fff [0000]
0070h W W_BUF_WR_DATA xxxx [xxxx]
0074h R/W W_BUF_WR_END 1ffe [0000]
0076h R/W W_BUF_WR_SKIP 0fff [0000]

  • xxx
0078h W? x mirr [mirr] 読み込み: 068h のミラー
0080h R/W W_BEACONTRANS ffff [0000] ビーコン送信場所
0084h R/W x --ff [0000]
0088h R/W x W_LISTENCOUNT --ff [0000] デクリメント; when it reaches zero, it's reloaded with W_LISTENINT
008Ch R/W x W_BEACONPERIOD -3ff [0064] ミリ秒ビーコン送信の周期
008Eh R/W x W_LISTENINT --ff [0000] Listen インターバル; W_LISTENCOUNT関連
0090h R/W x ffff [0000]
0094h R/W x ffff [0000] ?
0098h ?/W x 0000 [0000]
009Ch R/W x ffff [0050]
00A0h R/W W_TXLOC1 ffff [0000]
00A4h R/W W_TXLOC2 ffff [0000]
00A8h R/W W_TXLOC3 ffff [0000]
00ACh W W_TXOPT fixx [0050]
00AEh W W_TXCNT fixx [0050]
00B0h R/W W_TXINFO --1f [0010]
00B4h W x 0000 [0000] ...FFFFh に初期化
00B6h R/? x 0000 [0000]
00B8h R/? W_TXSTAT 0000 [0000]
00BAh R/? x 0000 [0000]
00BCh R/W x ---3 [0001] [ |=6: short preamble, &=~6: long preamble ]
00C0h R/W x ffff [0000]
00C4h R/W x ffff [0000]
00C8h R/? x 0000 [0000]
00D0h R/W x W_RXFILTER 1fff [0401] どのパケットを許可するか指定, 組み合わせは不明
00D4h R/W x ---3 [0001]
00D8h R/W x -fff [0004]
00DAh R/W x ffff [0602]
00E0h R/W x ---f [0008]

  • Wifi タイマー
00E8h R/W W_US_COUNTCNT ---1 [0000] マイクロ秒 カウンタ有効
00EAh R/W W_US_COMPARECNT ---1 [0000] マイクロ秒 比較有効
00ECh R/W x ? 3f1f [3F03]
00EEh R/W x ? ---1 [0001]
00F0h R/W W_US_COMPARE0 fc-- [FC00] マイクロ秒 比較, bits 0-15
00F2h R/W W_US_COMPARE1 ffff [FFFF] マイクロ秒 比較, bits 16-31
00F4h R/W W_US_COMPARE2 ffff [FFFF] マイクロ秒 比較, bits 32-47
00F6h R/W W_US_COMPARE3 ffff [FFFF] マイクロ秒 比較, bits 48-63
00F8h R/W W_US_COUNT0 ffff [0000] マイクロ秒 カウンタ, bits 0-15
00FAh R/W W_US_COUNT1 ffff [0000] マイクロ秒 カウンタ, bits 16-31
00FCh R/W W_US_COUNT2 ffff [0000] マイクロ秒 カウンタ, bits 32-47
00FEh R/W W_US_COUNT3 ffff [0000] マイクロ秒 カウンタ, bits 48-63
0100h ?/W x 0000 [0000]
0102h ?/W x 0000 [0000]
0104h ?/W x 0000 [0000]
0106h ?/W x 0000 [0000]
010Ch R/W x ffff [0000] [Set to the remaining duration of contention-free period when receiving beacons - only *really* necessary for powersaving mode]
0110h R/W x ffff [0000]
0118h R/W x ffff [0000]
011Ch R/W x ffff [0000] (Decreases, when reaches 0 is reloaded with W_BEACONPERIOD)

  • コンフィグポート (と、その他のレジスタ)
0120h R/W W_CONFIG_120h 81ff [0048] ...init from firmware[04Ch]
0122h R/W W_CONFIG_122h ffff [4840] ...init from firmware[04Eh]
0124h R/W W_CONFIG_124h ffff [0000] ...init from firmware[05Eh]
0126h ?/? x ? fixx [0080]
0128h R/W W_CONFIG_128h ffff [0000] ...init from firmware[060h]
012Ah ?/? x ? fixx [1000]
0130h R/W W_CONFIG_130h -fff [0142] ...init from firmware[054h]
0132h R/W W_CONFIG_132h 8fff [8064] ...init from firmware[056h]
0134h R/W x W_BEACONCOUNT ffff [FFFF] (I think) This is the millisecond counter that tracks when beacons are expected to be transmitted. ["Active zone time" - it tracks some aspect of the Contention-free period]
0140h R/W W_CONFIG_140h ffff [0000] ...init from firmware[058h]
0142h R/W W_CONFIG_142h ffff [2443] ...init from firmware[05Ah]
0144h R/W W_CONFIG_144h --ff [0042] ...init from firmware[052h]
0146h R/W W_CONFIG_146h --ff [0016] ...init from firmware[044h]
0148h R/W W_CONFIG_148h --ff [0016] ...init from firmware[046h]
014Ah R/W W_CONFIG_14Ah --ff [0016] ...init from firmware[048h]
014Ch R/W W_CONFIG_14Ch ffff [162C] ...init from firmware[04Ah]
0150h R/W W_CONFIG_150h ff3f [0204] ...init from firmware[062h]
0154h R/W W_CONFIG_154h 7a7f [0058] ...init from firmware[050h]

  • ベースバンドチップポート
0158h W W_BBSIOCNT mirr [00B5] BB アクセス 開始/方向/インデックス
015Ah W W_BBSIOWRITE ???? [0000] BB アクセス データバイト書き込み
015Ch R W_BBSIOREAD 00rr [00B5] BB アクセス データバイト読み込み
015Eh R W_BBSIOBUSY 000r [0000] BB アクセス ビジーフラグ
0160h R/W W_BBSIOMODE 41-- [0100] BB アクセス モード
0168h R/W W_BBSIOPOWER 8--f [800D] BB アクセス パワーダウン

  • xxx
016Ah ?/W x 0000 [0001] (or 0000h?)
0170h ?/W x 0000 [0000]
0172h ?/W x 0000 [0000]
0174h ?/W x 0000 [0000]
0176h ?/W x 0000 [0000]
0178h W? x fixx [0800] 読み込み: mirror of 17Ch

  • RF チップポート
017Ch R/W W_RFSIODATA2 ffff [0800]
017Eh R/W W_RFSIODATA1 ffff [C008]
0180h R W_RFSIOBUSY 000r [0000]
0184h R/W W_RFSIOCNT 413f [0018]

  • xxx
0190h R/W x ffff [0000]
0194h R/W x ---7 [0000]
0198h R/W x ---f [0000]
019Ch ?/W x fixx [0004] Bit 0 = carrier sense?
01A0h R/W x -933 [0000]
01A2h R/W x ---3 [0001]
01A4h R/W x ffff [0000] Rate used when signal test is enabled (0x0A or 0x14 for 1 or 2 mbit)

  • Wifi 統計情報
01A8h R W_STAT_INC rrrr [0000] 統計情報 増加フラグ
01AAh R/W W_STAT_INC_IE ffff [0000] 統計情報 増加割り込み有効
01ACh R W_STAT_OVF rrrr [0000] 統計情報 オーバーフローフラグ
01AEh R/W W_STAT_OVF_IE ffff [0000] 統計情報 オーバーフロー割り込み有効

W_STAT is a collection of byte-granular statistics entries.
These entries reset to 0 when read.

01B0h R/W W_STAT --ff [0000]
01B2h R/W W_STAT ffff [0000] RX_LengthErrorCount RX_RateErrorCount
01B4h R/W W_STAT --ff [0000]
01B6h R/W W_STAT ffff [0000]
01B8h R/W W_STAT --ff [0000]
01BAh R/W W_STAT --ff [0000]
01BCh R/W W_STAT ffff [0000]
01BEh R/W W_STAT ffff [0000]
01C0h R/W W_STAT --ff [0000]
01C4h R W_STAT 0000 [0000]

  • [1D0 ~ 1DE の15個のエントリは、マルチプレーヤーのエラー応答に関連したものです]
01D0h R/W W_STAT ff-- [0000]
01D2h R/W W_STAT ffff [0000]
01D4h R/W W_STAT ffff [0000]
01D6h R/W W_STAT ffff [0000]
01D8h R/W W_STAT ffff [0000]
01DAh R/W W_STAT ffff [0000]
01DCh R/W W_STAT ffff [0000]
01DEh R/W W_STAT ffff [0000]

  • 内部診断レジスタ (通常使うことはない)
01F0h R/W x ---3 [0000]
0204h ?/W x fixx [0000]
0208h ?/W x fixx [0000]
020Ch ?/W x fixx [0050]
0210h ?/W x fixx [0000]
0214h ?/W x XXXX [0009]
021Ch R/W x fbff [0000] "割り込み強制" - writing a value here will enable the flags in W_IF
0220h R/W x ffff [0000] has something to do with whether the packet is ignored or allowed by the packet filtering system
0224h R/W x ---3 [0003]
0228h ?/W x fixx [0000]
0230h R/W x --ff [0047]
0234h R/W x -eff [0EFF]
0238h R/W x ffff [0000]
023Ch ?/W x fixx [0000]
0244h R/W x ffff [0000]
0248h R/W x ffff [0000]
024Ch ?/W x fixx [0000]
024Eh ?/W x fixx [0000]
0250h ?/W x fixx [0000]
0258h ?/W x fixx [0000]
025Ch ?/W x fixx [0000]
0260h ?/W x fixx [0FEF]
0264h ?/W x fixx [0000]
0268h ?/? x W_RXUNITS fixx [0005] Contains the number of HWORDs written to MAC mem since the start of the packet (this + W_RXHWWRITECSR = next empty word in MAC mem)
0270h ?/W x fixx [0000]
0274h ?/W x fixx [0001]
0278h R/W x ffff [000F]
027Ch ?/W x fixx [000A]
0290h ?/W x fixx [FFFF] bit 0 = ? (もしくは未使用?)
0298h ?/W x fixx [0000]
02A0h R/W x ffff [0000]
02A2h ?/W x XXXX [7FFF]
02A4h ?/W x fixx [0000]
02A8h ?/W x fixx [0000]
02ACh ?/W x fixx [0038]
02B0h ?/W x fixx [0000]
02B4h R/W x -1-3 [0000]
02B8h ?/W x fixx [0000]
02C0h R/W x ---1 [0000]
02C4h ?/W x fixx [000A]
02C8h ?/W x fixx [0000]
02CCh ?/W x fixx [0000]
02F0h R/W x ffff [0000]
02F2h R/W x ffff [0000]
02F4h R/W x ffff [0000]
02F6h R/W x ffff [0000]

0x000 ~ 0xFFF の、他のポートは使われません。
POWCNT2 と WIFIWAITCNT は、電源管理とウエイトステートの管理をします。


4000h R/W W_MACMEM MAC メモリ(0x2000 bytes)
5F60h 何かに使う。RX リングバッファは含まれない。(ssid に使われる?)
5F80h W_WEPKEY1 (32 bytes)
5FA0h W_WEPKEY2 (32 bytes)
5FC0h W_WEPKEY3 (32 bytes)
5FE0h W_WEPKEY4 (32 bytes)

DSの他のメモリと違って、WiFi RAMはブート後初期化されません。

  • 5F80h - W_WEPKEY1 ~ W_WEPKEY4 - Wifi WEP キー (R/W)
802.11の暗号化キー ID 0~3として使われます。



ヘルプ / FAQ もご覧ください。