次の図に、サスペンド/レジュームのユース ケースにおける各種プロセッサ間の相互通信の詳細を示します。
図 1. APU のサスペンド/レジューム フロー
この例では、ペリフェラルをウェークアップ ソースとして設定しています。次に、フローの各ステップについて説明します。
サスペンド フロー
- APU が CPU コンテキストを DDRMC に保存します。
- ペリフェラルをウェークアップ ソースとして使用するように設定します。
- APU が TF-A または XilPM クライアント (APU ベアメタル アプリケーションを実行している場合) を使用して PMC にサスペンドの意図を通知します。PLM が WFI 割り込みを有効にします。
- PLM にウェークアップ ソースを通知します。
- APU が WFI ステートに移行して、PSM に割り込みを送信します。APU がベアメタル アプリケーションを実行している場合、
XPm_SuspendFinalize
API を使用して PSM に割り込みを送信できます。 - 割り込みを受信すると、PSM と PLM が IPI を利用してハンドシェイクを実行します。PSM は、パワー ゲーティングを実行し、APU へのリセットをアサートし、APU をクロック ゲーティングしてパワーダウンします。
ウェークアップ フロー
- APU がウェークアップ ソースに指定したペリフェラルが PSM に割り込みを送信します。
- PSM と PLM が APU のパワーアップ開始のためのハンドシェイクを実行します。
- ハンドシェイクの後、PSM が APU をパワーアップします。APU に対するパワー ゲーティングを無効にし、リセットをディアサートし、クロック ゲーティングを無効にします。
- APU が DDRMC に保存されたコンテキストを復元します。