HDCP:

ME FW 作為安全引擎,提供在 Intel 圖形裝置和 HDC2.2 接收器之間設定 HDCP2.2 協議協商的能力。

ME FW 準備 HDCP2.2 協商引數,並根據 HDCP 2.2 規範對其進行簽名和加密。 Intel 圖形將建立的 blob 傳送到 HDCP2.2 接收器。

類似地,HDCP2.2 接收器的響應被傳輸到 ME FW 進行解密和驗證。

一旦完成 HDCP2.2 協商的所有步驟,ME FW 將根據請求將埠配置為已驗證,並將 HDCP 加密金鑰提供給 Intel 圖形硬體。

mei_hdcp 驅動程式

mei_hdcp 驅動程式充當 HDCP 2.2 協議實現者 (I915) 和 ME FW 之間的翻譯層,透過將 HDCP2.2 協商訊息轉換為 ME FW 命令有效負載,反之亦然。

mei_hdcp api

int mei_hdcp_initiate_session(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_init *ake_data)

在 ME FW 中啟動有線 HDCP2.2 Tx 會話

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_ake_init *ake_data

AKE_Init 訊息輸出。

返回

成功時為 0,失敗時 <0。

int mei_hdcp_verify_receiver_cert_prepare_km(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_cert *rx_cert, bool *km_stored, struct hdcp2_ake_no_stored_km *ek_pub_km, size_t *msg_sz)

驗證接收器證書 AKE_Send_Cert 並準備 AKE_Stored_Km/AKE_No_Stored_Km

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_ake_send_cert *rx_cert

用於驗證的 AKE_Send_Cert

bool *km_stored

配對狀態標誌輸出

struct hdcp2_ake_no_stored_km *ek_pub_km

AKE_Stored_Km/AKE_No_Stored_Km 輸出訊息

size_t *msg_sz

AKE_XXXXX_Km 輸出訊息的大小

返回

成功時為 0,失敗時 <0

int mei_hdcp_verify_hprime(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_hprime *rx_hprime)

在 ME FW 處驗證 AKE_Send_H_prime。

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_ake_send_hprime *rx_hprime

用於 ME FW 驗證的 AKE_Send_H_prime 訊息

返回

成功時為 0,失敗時 <0

int mei_hdcp_store_pairing_info(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_pairing_info *pairing_info)

儲存在 ME FW 處收到的配對資訊

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_ake_send_pairing_info *pairing_info

AKE_Send_Pairing_Info 訊息輸入到 ME FW

返回

成功時為 0,失敗時 <0

int mei_hdcp_initiate_locality_check(struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_init *lc_init_data)

準備 LC_Init

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_lc_init *lc_init_data

LC_Init 訊息輸出

返回

成功時為 0,失敗時 <0

int mei_hdcp_verify_lprime(struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_send_lprime *rx_lprime)

驗證 lprime。

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_lc_send_lprime *rx_lprime

用於 ME FW 驗證的 LC_Send_L_prime 訊息

返回

成功時為 0,失敗時 <0

int mei_hdcp_get_session_key(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ske_send_eks *ske_data)

準備 SKE_Send_Eks。

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_ske_send_eks *ske_data

從 ME FW 輸出的 SKE_Send_Eks 訊息。

返回

成功時為 0,失敗時 <0

int mei_hdcp_repeater_check_flow_prepare_ack(struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_send_receiverid_list *rep_topology, struct hdcp2_rep_send_ack *rep_send_ack)

驗證下游拓撲並準備 rep_ack。

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_rep_send_receiverid_list *rep_topology

要驗證的接收器 ID 列表

struct hdcp2_rep_send_ack *rep_send_ack

來自 ME FW 的中繼器確認。

返回

成功時為 0,失敗時 <0

int mei_hdcp_verify_mprime(struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_stream_ready *stream_ready)

驗證 mprime。

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

struct hdcp2_rep_stream_ready *stream_ready

用於 ME FW 驗證的 RepeaterAuth_Stream_Ready 訊息。

返回

成功時為 0,失敗時 <0

int mei_hdcp_enable_authentication(struct device *dev, struct hdcp_port_data *data)

透過 ME FW 將埠標記為已驗證

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

返回

成功時為 0,失敗時 <0

int mei_hdcp_close_session(struct device *dev, struct hdcp_port_data *data)

關閉每個埠的 ME FW 的有線 HDCP Tx 會話。 這也會停用埠的已驗證狀態。

引數

struct device *dev

對應於 mei_cl_device 的裝置

struct hdcp_port_data *data

Intel HW 特定的 hdcp 資料

返回

成功時為 0,失敗時 <0

int mei_hdcp_component_match(struct device *dev, int subcomponent, void *data)

用於匹配 mei hdcp 的比較函式。

引數

struct device *dev

主裝置

int subcomponent

要匹配的子元件 (I915_COMPONENT_HDCP)

void *data

比較資料(mei hdcp 裝置)

描述

該函式檢查驅動程式是否為 i915,子元件是否為 HDCP,以及 hdcp 的祖父節點和 i915 的父節點是否為同一個 PCH 裝置。

返回

  • 1 - 如果元件匹配

  • 0 - 否則