匯流排交易發起人

NAME

bus_transaction_initiator - 指定行銷區域設定能力

概要

匯流交易啟動器 (BTI) 代表裝置的匯流排/指定行銷區域能力,可用於授予裝置記憶體存取權。

說明

針對每部裝置可用的各公車交易 ID,裝置驅動程式都會提供一個 BTI。在此情況下,公車交易 ID 是 IOMMU 使用的硬體交易 ID (例如 Intel 的 IOMMU 上的 PCI 位址,以及 ARM SMMU 上的 StreamID)。

BTI 可用於固定虛擬記憶體物件 (VMO) 中使用的記憶體。如果呼叫端將 VMO 中的記憶體固定,則會提供裝置實體位址,可用來向 VMO 發出記憶體交易 (前提是交易具有正確的匯流交易 ID)。如果影響這些地址的交易使用了不同的交易 ID,則交易可能會失敗,且核發裝置可能需要重設才能繼續運作。

BTI 會管理隔離的固定記憶體權杖 (PMT) 清單。如果使用 zx_bti_pin() 從 BTI 建立 PMT,且在未呼叫 zx_pmt_unpin() 的情況下釋出 PMT 的控制代碼,則該 PMT 將遭到隔離。隔離的 PMT 會防止系統將基礎實體記憶體釋放給系統重複使用,以防止 DMA 進入後置放的記憶體。您可以叫用 zx_bti_release_quarantine() 來清除隔離區。

TODO(teisenbe):新增交易失敗通知的詳細資料。

另查看

  • pmt - 釘選的記憶體權杖
  • vm_object - 虛擬記憶體物件

音效