MHI 拓撲結構

本文件提供了關於核心中 MHI 拓撲結構建模和表示的資訊。

MHI 控制器

MHI 控制器驅動程式管理與 MHI 客戶端裝置(如外部調變解調器和 WiFi 晶片組)的互動。 它也是 MHI 匯流排主控,負責管理主機和裝置之間的物理鏈路。 然而,它不參與實際的資料傳輸,因為資料傳輸由物理匯流排(如 PCIe)負責。 每個控制器驅動程式根據客戶端裝置型別公開通道和事件。

以下是 MHI 控制器驅動程式的作用

  • 開啟物理匯流排並建立與裝置的鏈路

  • 配置 IRQ、IOMMU 和 IOMEM

  • 分配 struct mhi_controller 並使用 mhi_register_controller 在 MHI 匯流排框架中註冊通道和事件配置。

  • 啟動電源開啟和關閉序列

  • 啟動裝置的掛起和恢復電源管理操作。

MHI 裝置

MHI 裝置是一個邏輯裝置,它最多繫結到兩個 MHI 通道以進行雙向通訊。 一旦 MHI 處於加電狀態,MHI 核心將根據控制器公開的通道配置建立 MHI 裝置。 每個通道或幾個通道可以有一個 MHI 裝置。

每個支援的裝置都在以下位置列舉:

/sys/bus/mhi/devices/

MHI 驅動程式

MHI 驅動程式是客戶端驅動程式,它繫結到一個或多個 MHI 裝置。 MHI 驅動程式透過 MHI 傳送和接收上層協議資料包,例如 IP 資料包、調變解調器控制訊息和診斷訊息。 MHI 核心會將 MHI 裝置繫結到 MHI 驅動程式。

每個支援的驅動程式都在以下位置列舉:

/sys/bus/mhi/drivers/

以下是 MHI 驅動程式的作用

  • 使用 mhi_driver_register 在 MHI 匯流排框架中註冊驅動程式。

  • 透過呼叫 mhi_prepare_for_transfer 準備裝置進行傳輸。

  • 透過呼叫 mhi_queue_transfer 啟動資料傳輸。

  • 資料傳輸完成後,呼叫 mhi_unprepare_from_transfer 以結束資料傳輸。