Mailbox Client Intel® FPGA IPユーザーガイド

ID 683290
日付 4/01/2024
Public
ドキュメント目次

1.11.1.1. Mailbox ClientドライバーAPI

表 16.  mailbox_client_open
プロトタイプ mailbox_client_open(const char *name)
インクルード <altera_s10_mailbox_client.h>
パラメーター
  • name – HALに登録されているMailbox Client Intel® FPGA IPペリフェラルの名前への文字ポインター
戻り値 成功の場合はNULL以外の値を返し、それ以外の場合は次の値を返します。
  • 無効な引数の場合は -NULL。デバイスが見つからない、もしくは入力名が間違っています。
詳細 メールボックス・クライアント・ブロック・インスタンスへのポインターを取得します。登録されているメールボックス・クライアント・インスタンスのリストで、指定されている名前を検索します。
表 17.  mailbox_client_send_cmd
プロトタイプ mailbox_client_send_cmd (intel_mailbox_client* fd, alt_u8 id, alt_u32 cmd, alt_u32* arg, int arg_length, int cmd_length, alt_u32* input_data, alt_u32* resp_buf, alt_u32 resp_buf_len) 17
インクルード <altera_s10_mailbox_client.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • id - コマンドID
  • cmd - メールボックス・クライアント・コマンド
  • arg - メールボックス・クライアント引数 18
  • arg_length - 引数の数
  • cmd_length - コマンド長 (arg_length + input_dataの長さ)
  • input_data - 入力データ
  • resp_buf - 応答バッファー
  • res_buf_len - 応答バッファー長
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • メールボックス・クライアントのエラーコードに関しては、エラーコード応答を参照してください。
  • -EINVALは、無効な引数
  • -ETIMEは、ポーリングのタイムアウトと5秒後のループのスキップ
  • -EBACK_TOUTは、バックプレッシャー・タイマー割り込み 19
  • -EEOP_TOUTは、end of packetタイマー割り込み 20
  • -ECMD_INVLDは、無効なコマンド割り込み
  • -ENOBUFSは、応答バッファー長が不十分 21
  • -ENOSYSは、SDMから返されたコマンドIDが一致しない
詳細 コマンドとデータをMailbox Clientに送信します。データ有効割り込みが発生したら、応答を読み戻します。
表 18.  mailbox_client_flash_open
プロトタイプ mailbox_client_flash_open(intel_mailbox_client* fd)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
  • -ENODEVは、認識できないフラッシュデバイス
詳細 QSPIを開き、QSPIチップを選択するコマンドをMailbox Clientに送信します。クアッドSPIインターフェイスへの排他的アクセスを提供します。QSPIフラッシュサイズを特定します。
表 19.  mailbox_client_flash_close
プロトタイプ mailbox_client_flash_close(intel_mailbox_client* fd)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
詳細 QSPIを閉じるコマンドをMailbox Clientに送信します。クアッドSPIインターフェイスへの排他的アクセスを停止します。
表 20.  mailbox_client_flash_get_info
プロトタイプ mailbox_client_flash_get_info(intel_mailbox_client* fd, flash_region** info, int* number_of_regions)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • info - フラッシュ領域へのポインター
  • number_of_regions - 領域数へのポインター
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
  • -EIOは、ハードウェアの問題の可能性
詳細 nCSO[0] に対応する情報を提供します。

フラッシュメモリー・オフセット、フラッシュメモリー・サイズ、フラッシュデバイスの数、セクターの数、およびセクターサイズの値を返します。

表 21.  mailbox_client_flash_read
プロトタイプ mailbox_client_flash_read (intel_mailbox_client* fd, int offset, void* dest_addr, int length)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • offset - 読み出しフラッシュアドレス (アライメントされていないアクセス)
  • dest_addr - 目的のバッファー (バイトサイズ)
  • length - 読み出しデータのサイズ (バイトサイズ)
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
詳細 選択されているアドレスから、バイトサイズで指定されている長さのデータを読み出します。長さは0以外の値です。
表 22.  mailbox_client_flash_erase_block
プロトタイプ mailbox_client_flash_erase_block (intel_mailbox_client* fd, int block_offset)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • block_offset - 消去するフラッシュセクターの先頭からのオフセットアドレス
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
  • -EIOは消去の失敗で、セクターが保護されている可能性あり
詳細 単一のフラッシュセクターを消去します。
表 23.  mailbox_client_flash_write_block
プロトタイプ mailbox_client_flash_write_block (intel_mailbox_client* fd, int block_offset, int data_offset, const void* data, int length)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • block_offset - セクターアドレス。書き込み先として指定されているフラッシュセクターから開始します。
  • data_offset - メモリーへの書き込みのバイトオフセット (アライメントされていないアクセス)
  • data - 書き込まれるデータバッファー (バイトサイズ)
  • length - 書き込みデータのサイズ (バイトサイズ)
戻り値 成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
詳細 1つのブロックまたはセクターのデータをフラッシュに書き込みます。書き込みデータの長さを隣接するセクター間で分割することはできません。

この関数は、アドレスが空であることを前提としています。プログラミングの前にアドレスを消去する必要があります。

表 24.  mailbox_client_flash_write
プロトタイプ mailbox_client_flash_write (intel_mailbox_client* fd, int offset, const void* src_addr, int length)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • offset - フラッシュメモリーへの書き込みのフラッシュアドレス (アライメントされていないアクセス)
  • src_addr - ソースバッファー (バイトサイズ)
  • length - 書き込みデータのサイズ (バイトサイズ)
戻り値
成功の場合は0を返し、それ以外の場合は次の値を返します。
  • -EINVALは、無効な引数
詳細 選択されているアドレスでフラッシュにデータをプログラミングします。プログラミングの前に、必要に応じてブロックを自動的に消去します。
表 25.  mailbox_client_flash _erase_block
プロトタイプ mailbox_client_flash_erase_block(intel_mailbox_client* fd, int block_offset, int block_size)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • block_offset – 消去するフラッシュセクターの先頭からのオフセットアドレス
  • block_size - クアッドSPIデバイスのセクター。次の値を入力します。
    • 4KBセクターサイズの場合は4096
    • 32KBセクターサイズの場合は32768
    • 64KBセクターサイズの場合は65536
戻り値
成功の場合は0を返し、それ以外の場合は次の値を返します。
  • EINVALは、無効な引数
詳細 指定されているブロックサイズに応じて単一のフラッシュセクターを消去します。
表 26.  mailbox_client_flash _erase
プロトタイプ mailbox_client_flash_erase(intel_mailbox_client* fd, int offset, int length)
インクルード <altera_s10_mailbox_client_flash.h>
パラメーター
  • fd – フラッシュデバイス構造へのポインター
  • offset – 消去するフラッシュセクターの先頭からのオフセットアドレス
  • length – 消去データのサイズ (4096バイトの倍数)
戻り値
成功の場合は0を返し、それ以外の場合は次の値を返します。
  • EINVALは、無効な引数
詳細 指定されている長さに応じてフラッシュを消去します。
17 Quartus® Primeプロ・エディションの21.3より前のバージョンでは、応答バッファー長 (resp_buf_len) は整数ではなくポインターとして宣言されていました。
18 引数は、メールボックス・クライアントの操作に必要なパラメーターを表します。入力データは含まれません。
19 推奨されるエラーコード回復は、システム全体のリコンフィグレーションです。
20 推奨されるエラーコード回復は、Mailbox Client Intel® FPGA IPのリセットです。
21 応答バッファー長が不十分な場合、HAL APIはMailbox Client Intel® FPGA IPから収集したデータを破棄し、ENOBUFSを返します。