第6章 その他の機能

6.1. 各種I/O Control レジスタの詳細

Armadillo-300のCPLDにはminiPCIやコンパクトフラッシュ等のI/Oを制御するためのI/Oレジスタがあります。

各種I/O Controlレジスタの詳細は次のとおりです。

表6.1 I/O Control レジスタのメモリマップ

Hardware AddressLinux AddressReadWrite
0x6000 00000xF600 0000Interrupt Service RegisterInterrupt Clear Register
0x6000 00010xF600 0001(Reserved)
0x6000 00020xF600 0002(Reserved)Interrupt Mask Register
0x6000 00030xF600 0003(Reserved)
0x6000 00040xF600 0004IDE Mode Control Register
0x6000 00050xF600 0005(Reserved)
0x6000 00060xF600 0006(Reserved)
0x6000 00070xF600 0007(Reserved)
0x6000 00080xF600 0008Extension Bus Control Register
0x6000 00090xF600 0009(Reserved)
0x6000 000A0xF600 000A(Reserved)
0x6000 000B0xF600 000B(Reserved)
0x6000 000C0xF600 000CGeneral Control Register
0x6000 000D0xF600 000D(Reserved)
0x6000 000E0xF600 000E(Reserved)
0x6000 000F0xF600 000F(Reserved)

Interrupt Service Register(割り込みサービスレジスタ)

入ってきた割り込みの要因を見るレジスタです。

Interrupt Clear Register(割り込み要因クリアレジスタ)

割り込みサービスレジスタに入ってきた割り込み要因をクリアするレジスタです。

Interrupt Mask Register(割り込みマスクレジスタ)

各種割り込みの入力を禁止(マスク)するレジスタです。

IDE Mode Control Register

コンパクトフラッシュ(IDE)の挿入状態を取得、転送モードを設定するレジスタです。

Extension Bus Control Register

拡張バスの有効/無効を設定するレジスタです。

General Control Register

LED(D2)の制御をするレジスタです。

Register NameBitAccessResetDescription
Interrupt Service /Clear Register7-1--(Reserved)
0R-IDE割り込みサービス (0:発生していない 1:発生している)
W0IDE割り込み要因クリア (0:クリアしない 1:クリアする)
Register NameBitAccessResetDescription
Interrupt Mask Register7-1--(Reserved)
0W1IDE割り込みマスク (0:マスクしない 1:マスクする)
Register NameBitAccessResetDescription
IDE Mode Control Register7-2--(Reserved)
1R-コンパクトフラッシュ挿入状態(0:未挿入状態 1:挿入状態)
0W00:PIO Mode0 1:PIO Mode3
Register NameBitAccessResetDescription
General Control Register7-4--(Reserved)
3R/W00:LED(D2)消灯 1:LED(D2)点灯
2-0--(Reserved)
Register NameBitAccessResetDescription
Extension Bus Control Register7-4--(Reserved)
3R/W10:拡張バス無効[a] 1:拡張バス有効
2-0--(Reserved)

[a] 拡張バス無効時には、「EXT_RESET、EXT_CS*、EXT_OE*、EXT_WE*、EXTA0~20、EXTD0~15」の各ピンがハイインピーダンスとなります。

6.2. CPLD内の割り込みコントローラの仕組み

割り込みコントローラがCPLD(XCR3064XL)に組み込まれています。この割り込みコントローラに接続されている割り込みの種類はIDE_INTRQとRTC_INTです。

割り込みはIMR(Interrupt Mask Register)によりマスク処理されます。マスクビットが"0"の場合、割り込み入力はそのまま通過し、"1"の場合割り込み入力はマスクされます。

マスク処理を通過した割り込み入力信号は次段のISR(Interrupt Service Register)を構成しているFF(フリップフロップ)で値を保持されます。

ISRに保持されている値は、ICR(Interrupt Clear Register)の対応するビットに"1"が入力されるまで値が保持されます。

ISRに保持されているすべての値のORをとって、CPUに割り込みが通知されます。