前言:
由於部分客戶,想要以治具方式檢測 TPM 的SPI bus,以確認打件是否正常。
由於TPM power up 過程,與 SPI potocol 許多細節須合規 PC Client Specific。
因此,列出重點於下方各說明章節與規範的索引。若需詳細了解,請自行參考相關規範。
此指引,僅止於從 SPI Bus 確認到 TPM IC 的功能。並非檢測 TPM 的功能與軟體開發。若須檢測更多功能,可研讀 TCG 相關規範來開發。
說明:
一、符合 AC/DC 特性
注意治具的 SPI 必須符合參考資料 SLB9670VQ2.0 datasheet (參考資料[1]), 章節5.3 DC Characteristics,章節5.4 AC Characteristics。
或是參考 PTP Spec (參考資料[2] 章節7.4.2 Electrical Specification).
有關 Reset Timing ,請參考(參考資料[2] 章節7.6 或參考資料[1]章節5.4)
Power on sequence (Reset Timing)
治具注意的四個步驟:
- Vdd 送電,
- 80us以後,
- RST# low->High,
- 60ms 才開始送訊號。
二、利用讀取 VID 來確認 SPI Bus 是否正常?
定義 VID 暫存器的存放位置為 0xF00~0xF03 (參考資料[2] 章節6.4.1.1 DID/VID Register)。
Infineon vendor ID : 0x15D1 (參考資料[3])。
使用 memory mapping locality 0 為讀取對象,組合成位址 D4 0F 00(參考資料[2] 章節6.2 Locality)。
三、透過 SPI Bus 讀取 TPM VID,須根據 SPI Hardware Protocol (參考資料[2] 章節 7.4)
根據 Table 48 - SPI Bit Protocol,Figure 7,讀取 VID command(no wait) 如下:
治具注意的9個步驟:
- SPI Bus 設定為 mode 0
- CS# => low
- MOSI => 81 (讀 2 byte)
- MOSI => D4 (以下 3byte 為 DID_VID 位址)
- MOSI => 0F
- MOSI => 00, MISO <= 00/01,00 表示 wait,就再等8個 clock。
- MOSI <= 01/00, 01 下個 byte 為 data,00 表示超過 wait 次數,TPM 檢測失敗。
- MISO <= 讀取 VID 共 2 Byte。
- 判斷 VID 為 15D1(big-endan format)。則為成功。
參考資料:
- SPI TPM2.0 SLB9670 FW7.85 Datasheet
- TCG PC Client Platform TPM Profile (PTP) Specification
https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
3.TCG Vender ID(VID)
評論