1*98526e69SShuo Zhao.. SPDX-License-Identifier: GPL-2.0 2*98526e69SShuo Zhao.. include:: ../../disclaimer-zh_CN.rst 3*98526e69SShuo Zhao 4*98526e69SShuo Zhao:Original: Documentation/security/tpm/tpm_tis.rst 5*98526e69SShuo Zhao 6*98526e69SShuo Zhao:翻译: 7*98526e69SShuo Zhao 赵硕 Shuo Zhao <zhaoshuo@cqsoftware.com.cn> 8*98526e69SShuo Zhao 9*98526e69SShuo ZhaoTPM FIFO接口驱动 10*98526e69SShuo Zhao================ 11*98526e69SShuo Zhao 12*98526e69SShuo ZhaoTCG PTP规范定义了两种接口类型:FIFO和CRB。前者基于顺序的读写操作, 13*98526e69SShuo Zhao后者基于包含完整命令或响应的缓冲区。 14*98526e69SShuo Zhao 15*98526e69SShuo ZhaoFIFO(先进先出)接口被tpm_tis_core依赖的驱动程序使用。最初,Linux只 16*98526e69SShuo Zhao有一个名为tpm_tis的驱动,覆盖了内存映射(即 MMIO)接口,但后来它被 17*98526e69SShuo Zhao扩展以支持TCG标准所支持的其他物理接口。 18*98526e69SShuo Zhao 19*98526e69SShuo Zhao由于历史原因,最初的MMIO驱动被称为tpm_tis,而FIFO驱动的框架被命名为 20*98526e69SShuo Zhaotpm_tis_core。在tpm_tis中的“tis”后缀来自TPM接口规范,这是针对TPM1.x 21*98526e69SShuo Zhao芯片的硬件接口规范。 22*98526e69SShuo Zhao 23*98526e69SShuo Zhao通信基于一个由TPM芯片通过硬件总线或内存映射共享的20KiB 缓冲区,具体 24*98526e69SShuo Zhao取决于物理接线。该缓冲区进一步分为五个相等大小的4KiB缓冲区,为CPU和 25*98526e69SShuo ZhaoTPM之间的通信提供等效的寄存器集。这些通信端点在TCG术语中称为localities。 26*98526e69SShuo Zhao 27*98526e69SShuo Zhao当内核想要向TPM芯片发送命令时,它首先通过在TPM_ACCESS寄存器中设置 28*98526e69SShuo ZhaorequestUse位来保留locality0。当访问被授予时,该位由芯片清除。一旦完成 29*98526e69SShuo Zhao通信,内核会写入TPM_ACCESS.activeLocality位。这告诉芯片该本地性已被 30*98526e69SShuo Zhao释放。 31*98526e69SShuo Zhao 32*98526e69SShuo Zhao待处理的本地性由芯片按优先级降序逐个服务,一次一个: 33*98526e69SShuo Zhao 34*98526e69SShuo Zhao- Locality0优先级最低。 35*98526e69SShuo Zhao- Locality5优先级最高。 36*98526e69SShuo Zhao 37*98526e69SShuo Zhao关于localities的更多信息和含义,请参阅TCG PC客户端平台TPM 配置文件规范的第3.2节。 38*98526e69SShuo Zhao 39*98526e69SShuo Zhao参考文献 40*98526e69SShuo Zhao======== 41*98526e69SShuo Zhao 42*98526e69SShuo ZhaoTCG PC客户端平台TPM配置文件(PTP)规范 43*98526e69SShuo Zhaohttps://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ 44