インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

16.4.2.4. 割り込みコントローラー・ユニット

割り込みコントローラー・ユニットでは、rintstsレジスター、Interrupt Mask (intmask) レジスター、およびControl (ctrl) レジスターのInterrupt Enable (int_enable) ビットに依存する割り込みを生成します。割り込み条件が検出されると、コントローラーは、rintstsレジスターの対応する割り込みビットを設定します。rintstsレジスターのビットは、ソフトウェアでその割り込みビットに1を書き込みビットをクリアするまで、セットされた状態で保たれます。0の書き込みでは、ビットは変更されません。

割り込みコントローラー・ユニットは、アクティブHighでレベル・センシティブな割り込みを生成します。これらの割り込みは、rintstsレジスターの少なくとも1つのビットが1に設定され、対応するintmaskレジスターのビットが1であり、ctrlレジスターのint_enableビットが1の場合にのみアサートされます。

ctrlレジスターのint_enableビットは、パワーオンリセット時にクリアされます。intmaskレジスターのビットは0x0000000に設定され、割り込みはすべてマスクされます。

表 128.  割り込みステータスレジスターのビット
ビット 割り込み 説明
16 SDIO Interrupts SDIOカードからの割り込みです。
15 End Bit Error (read)/Write no CRC (EBE)

読み出し動作時のエンドビットにおけるエラー、もしくは書き込み動作時にデータCRCを受信していません。

注: MMC CMD19の場合、カードからCRCステータスが返されないことがあります。そのため、EBEがCMD19に設定されます。アプリケーションではこれをエラーとして扱わないでください。
14 Auto Command Done (ACD)

カードユニットから自動的に送信される停止/中断コマンドです。ホストが開始するものではありません。Command Done (CD) 割り込みに類似しています。

推奨事項: ソフトウェアでは通常、CE-ATA以外のアクセスに対してこのビットを有効にする必要はありません。この割り込みの後に続くData Transfer Over (DTO) 割り込みにより、データ転送が正常に完了したかを特定します。CE-ATAアクセスでは、ソフトウェアでコントロール・レジスターのsend_auto_stop_ccsdビットを設定している場合に、ソフトウェアでこのビットを有効にする必要があります。

13 Start Bit Error (SBE)

カードからデータが読み出される際のデータ・スタート・ビットのエラーです。4ビット・モードでは、データビットすべてにスタートビットがない場合、このエラーが設定されます。

12 Hardware Locked write Error (HLE) ハードウェアのロック期間中に、ロックされているレジスターの1つに書き込みが試行されました。
11 FIFO Underrun/Overrun Error (FRUN)

FIFOがフルの際にホストがデータのプッシュを試みました。もしくは、FIFOが空の際にホストがデータの読み出しを試みました。これは通常、ソフトウェアのエラーによる場合を除き発生しません。

カードユニットは、FIFOがフルの際にデータをFIFOにプッシュしません。また、FIFOが空の際はデータをポップしません。

IDMAC (内部ダイレクト・メモリー・アクセス・コントローラー) が有効になっている場合、FIFOTHレジスターのMSIZEとウォーターマークの値のプログラミング・エラーによって、FIFOのアンダーランまたはオーバーランが発生することがあります。詳細は、「Synopsys DesignWare Cores Mobile Storage Host Databook」のInternal Direct Memory Access Controller (IDMAC) のセクションを参照してください。

10 Data Starvation by Host Timeout (HTO)

カードへの書き込み時にFIFOが空の場合、またはカードからの読み出し時にFIFOがフルの場合は、データの損失を回避するためにカードクロックの出力 (cclk_out) が停止します。データ損失の回避にカードのクロックを停止すると、データのスタベーション・タイムアウト・カウンターがデータのタイムアウト値で開始します。この割り込みは、タイムアウトの期間前に、カードへの書き込みではホストがFIFOにデータを入れない場合、もしくは、カードからの読み出しではホストがFIFOから読み出さない場合に設定されます。

タイムアウト後も、カードのクロックは停止状態で保持され、CIUのステートマシンは待機状態です。割り込み発生時に、データをFIFOにプッシュまたはポップするのはホストの責任です。これにより、cclk_outおよびカードのステートマシンが自動的に再開します。

ホストが停止/中断コマンドを送信する場合でも、FIFOをプッシュまたはポップする必要があります。それによりクロックを開始し、データラインで送信または受信されるデータとともに、停止/中断コマンドがcmd信号で送信されるようにします。

9 Data Read Timeout (DRTO)/Boot Data Start (BDS)
  • 通常の動作モードの場合: Data Read Timeout (DRTO) であり、データのタイムアウトが発生しています。データのタイムアウトが発生した場合は、Data Transfer Over (DTO) も設定されます。
  • ブートモードの場合: Boot Data Start (BDS) であり、設定されている場合は、SD/MMCコントローラーがカードからブートデータの受信を開始したことを示します。このレジスターに1の値を書き込むと、この割り込みはクリアされます。
8 Response Timeout (RTO)/ Boot Ack Received (BAR)
  • 通常の動作モードの場合: Response Timeout (RTO) であり、応答のタイムアウトが発生しています。応答のタイムアウトが発生した場合は、Command Done (CD) も設定されます。コマンドがデータの転送をともなう場合に、応答がタイムアウトした場合は、SD/MMCコントローラーによるデータの転送は行われません。
  • ブートモードの場合: Boot Ack Received (BAR) です。expect_boot_ackが設定されている場合は、ブート肯定応答パターン (0-1-0) を受信すると、この割り込みがアサートされます。このレジスターに1の値を書き込むと、この割り込みはクリアされます。
7 Data CRC Error (DCRC)

受信したデータのCRCが、ローカルに生成されたCIUのCRCと一致しません。負のCRCを受信した場合に想定されます。

6 Response CRC Error (RCRC)

応答のCRCが、ローカルに生成されたCIUのCRCと一致しません。

5 Receive FIFO Data Request (RXDR)

カードからの読み出し動作時に、FIFOのレベルが受信しきい値のレベルより大きい場合に設定される割り込みです。

推奨事項: DMAモードではこの割り込みを有効にしないでください。

DMA以外のモードにおけるISR
pop RX_WMark + 1 data from FIFO
4 Transmit FIFO Data Request (TXDR)

カードへの書き込み動作時に、FIFOのレベルが送信しきい値のレベル以下に達した場合に設定される割り込みです。

推奨事項: DMAモードではこの割り込みを有効にしないでください。

DMA以外のモードにおけるISR

if (pending_bytes > \ (FIFO_DEPTH - TX_WMark)) push (FIFO_DEPTH - \ TX_WMark) data into FIFO else push pending_bytes data \ into FIFO
3 Data Transfer (DTO)

データ転送が完了しています (Start Bit ErrorまたはCRCエラーがあった場合でも)。このビットは、「読み出しデータのタイムアウト」が発生した場合、もしくはCE-ATAデバイスからCCSがサンプリングされた場合にも設定されます。

推奨事項: DMA以外のモードでは、カードからデータが読み出される際に割り込みが発生した場合、ホストは保留中のデータをFIFOから読み出す必要があります。DMAモードの場合、DMAコントローラーは、割り込みの前にFIFOがフラッシュされることを保証します。

注: 最後のデータブロックの後にデバイスがMMCビジーをアサートした場合でも、DTOビットは最後のデータブロックの終わりに設定されます。
2 Command Done (CD)

コマンドがカードに送信され、カードから応答を受信しています (Response ErrorまたはCRCエラーが発生している場合でも)。また、応答のタイムアウトが発生した場合、もしくは、CCSDがCE-ATAデバイスに送信された場合にも設定されます。

1 Response Error (RE)

次のいずれかが発生した場合に設定される、受信した応答のエラーです。

  • Transmission bit != 0
  • コマンド・インデックスの不一致
  • End-bit != 1
0 Card-Detect (CDT)

1つ以上のカードが挿入または取り外された場合に、この割り込みが発生します。ソフトウェアでは、カード検出レジスター (CDETECT、0x50) を読み出し、現在のカードステータスを特定する必要があります。

推奨事項: 電源投入後、割り込みを有効にする前に、ソフトウェアでカード検出レジスターを読み出し、それをメモリーに格納する必要があります。割り込みが発生すると、カード検出レジスターを読み出し、メモリーに格納されている値と比較して、取り外された、もしくは挿入されたカードを特定する必要があります。ISRを終了する前に、ソフトウェアは新しいカード検出値でメモリーを更新する必要があります。