6.1. 各種I/O Control レジスタの詳細
Armadillo-300のCPLDにはminiPCIやコンパクトフラッシュ等のI/Oを制御するためのI/Oレジスタがあります。
各種I/O Controlレジスタの詳細は次のとおりです。
表 6.1. I/O Control レジスタのメモリマップ
Hardware Address | Linux Address | Read | Write |
---|
0x6000 0000 | 0xF600 0000 | Interrupt Service Register | Interrupt Clear Register |
0x6000 0001 | 0xF600 0001 | (Reserved) |
0x6000 0002 | 0xF600 0002 | (Reserved) | Interrupt Mask Register |
0x6000 0003 | 0xF600 0003 | (Reserved) |
0x6000 0004 | 0xF600 0004 | IDE Mode Control Register |
0x6000 0005 | 0xF600 0005 | (Reserved) |
0x6000 0006 | 0xF600 0006 | (Reserved) |
0x6000 0007 | 0xF600 0007 | (Reserved) |
0x6000 0008 | 0xF600 0008 | Extension Bus Control Register |
0x6000 0009 | 0xF600 0009 | (Reserved) |
0x6000 000A | 0xF600 000A | (Reserved) |
0x6000 000B | 0xF600 000B | (Reserved) |
0x6000 000C | 0xF600 000C | General Control Register |
0x6000 000D | 0xF600 000D | (Reserved) |
0x6000 000E | 0xF600 000E | (Reserved) |
0x6000 000F | 0xF600 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)の制御をするレジスタです。
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に割り込みが通知されます。