Home
last modified time | relevance | path

Searched full:tpm (Results 1 – 25 of 245) sorted by relevance

12345678910

/linux-6.15/drivers/char/tpm/
DKconfig3 # TPM device configuration
7 tristate "TPM Hardware Support"
13 If you have a TPM security chip in your system, which
21 will be called tpm. If unsure, say N.
23 1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
31 bool "Use HMAC and encrypted transactions on the TPM bus"
39 communicating with the TPM to prevent or detect bus snooping
40 and interposer attacks (see tpm-security.rst). Saying Y
41 here adds some encryption overhead to all kernel to TPM
45 bool "TPM HW Random Number Generator support"
[all …]
DMakefile3 # Makefile for the kernel tpm device drivers.
5 obj-$(CONFIG_TCG_TPM) += tpm.o
6 tpm-y := tpm-chip.o
7 tpm-y += tpm-dev-common.o
8 tpm-y += tpm-dev.o
9 tpm-y += tpm-interface.o
10 tpm-y += tpm1-cmd.o
11 tpm-y += tpm2-cmd.o
12 tpm-y += tpmrm-dev.o
13 tpm-y += tpm2-space.o
[all …]
Dtpm_tis_i2c_cr50.c5 * Based on Infineon TPM driver by Peter Huewe.
33 #define TPM_CR50_TIMEOUT_NOIRQ_MS 20 /* Timeout for TPM ready without IRQ */
65 * @tpm_info: TPM chip information.
85 * tpm_cr50_i2c_wait_tpm_ready() - Wait for tpm to signal ready.
86 * @chip: A TPM chip.
89 * delay for the TPM to be ready.
105 /* Wait for interrupt to indicate TPM is ready to respond */ in tpm_cr50_i2c_wait_tpm_ready()
107 dev_warn(&chip->dev, "Timeout waiting for TPM ready\n"); in tpm_cr50_i2c_wait_tpm_ready()
115 * tpm_cr50_i2c_enable_tpm_irq() - Enable TPM irq.
116 * @chip: A TPM chip.
[all …]
Dtpm1-cmd.c12 * Device driver for TCG/TCPA TPM (trusted platform module).
23 #include "tpm.h"
31 * TCG Specification TPM Main Part 2 TPM Structures Section 17. The
283 * @chip: TPM chip to use.
284 * @ordinal: TPM command ordinal.
315 * tpm1_startup() - turn on the TPM
316 * @chip: TPM chip to use
318 * Normally the firmware should start the TPM. This function is provided as a
320 * example when a TPM emulator is used.
329 dev_info(&chip->dev, "starting up the TPM manually\n"); in tpm1_startup()
[all …]
Dtpm_crb_ffa.c5 * This device driver implements the TPM CRB start method
6 * as defined in the TPM Service Command Response Buffer
15 /* TPM service function status codes */
53 * w4: TPM service function ID, CRB_FFA_GET_INTERFACE_VERSION
58 * w4: TPM service function status
59 * w5: TPM service interface version
71 * Return information on a given feature of the TPM service
74 * w4: TPM service function ID, CRB_FFA_START
78 * 0: Notifies TPM that a command is ready to be processed
79 * 1: Notifies TPM that a locality request is ready to be processed
[all …]
Dtpm-interface.c14 * Device driver for TCG/TCPA TPM (trusted platform module).
17 * Note, the TPM chip is not interrupt driven (only polling)
30 #include "tpm.h"
33 * Bug workaround - some TPM's don't flush the most
44 * @chip: TPM chip to use.
45 * @ordinal: TPM command ordinal.
161 * tpm_transmit - Internal kernel interface to transmit TPM commands.
162 * @chip: a TPM chip to use
163 * @buf: a TPM command buffer
164 * @bufsiz: length of the TPM command buffer
[all …]
Dtpm-chip.c15 * TPM chip management routines.
26 #include "tpm.h"
32 .name = "tpm",
98 * tpm_chip_start() - power on the TPM
99 * @chip: a TPM chip to use
131 * tpm_chip_stop() - power off the TPM
132 * @chip: a TPM chip to use
207 * tpm_default_chip() - find a TPM chip and get a reference to it
234 * tpm_find_get_ops() - find and reserve a TPM chip
237 * Finds a TPM chip and reserves its class device and operations. The chip must
[all …]
Dtpm_vtpm_proxy.c24 #include "tpm.h"
43 size_t req_len; /* length of queued TPM request */
44 size_t resp_len; /* length of queued TPM response */
47 struct work_struct work; /* task that retrieves TPM timeouts */
62 * vtpm_proxy_fops_read - Read TPM commands on 'server side'
117 * vtpm_proxy_fops_write - Write TPM responses on 'server side'
211 *@proxy_dev: tpm proxy device
221 /* no more TPM responses -- wake up anyone waiting for them */ in vtpm_proxy_fops_undo_open()
253 * Functions invoked by the core TPM driver to send TPM commands to
258 * Called when core TPM driver reads TPM responses from 'server side'
[all …]
Dtpm2-cmd.c14 #include "tpm.h"
53 * @ordinal: TPM command ordinal.
124 * @chip: TPM chip to use.
125 * @ordinal: TPM command ordinal.
158 * @chip: TPM chip to use.
226 * @chip: TPM chip to use.
285 * tpm2_get_random() - get random bytes from the TPM RNG
293 * -errno otherwise (positive TPM return codes are masked to -EIO)
372 * @chip: TPM chip to use
411 * -errno or a TPM return code otherwise
[all …]
/linux-6.15/Documentation/devicetree/bindings/tpm/
Dtcg,tpm-tis-i2c.yaml4 $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
14 for accessing a TPM chip. It can be transported over various buses,
16 TCG PC Client Specific TPM Interface Specification (TIS)
17 …https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-s…
21 TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP)
22 https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
24 Recent TPM 2.0 chips conform to this generic interface, others use a
30 - description: Generic TPM 2.0 chips conforming to TCG PTP interface
36 - const: tcg,tpm-tis-i2c
38 - description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface
[all …]
Dtcg,tpm-tis-mmio.yaml4 $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-mmio.yaml#
14 for accessing a TPM chip. It can be transported over various buses,
16 TCG PC Client Specific TPM Interface Specification (TIS)
17 …https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-s…
25 - socionext,synquacer-tpm-mmio
26 - const: tcg,tpm-tis-mmio
34 - $ref: tpm-common.yaml#
44 tpm@90000 {
45 compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
Dgoogle,cr50.yaml4 $id: http://devicetree.org/schemas/tpm/google,cr50.yaml#
17 The chip provides several functions, including TPM 2.0 like functionality.
19 TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP), sec 6:
20 https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
27 - $ref: tpm-common.yaml#
31 - $ref: tcg,tpm-tis-i2c.yaml#/properties/reg
45 tpm@0 {
58 tpm@50 {
/linux-6.15/drivers/pwm/
Dpwm-imx-tpm.c6 * - The TPM counter and period counter are shared between
92 struct imx_tpm_pwm_chip *tpm = to_imx_tpm_pwm_chip(chip); in pwm_imx_tpm_round_state() local
96 rate = clk_get_rate(tpm->clk); in pwm_imx_tpm_round_state()
141 struct imx_tpm_pwm_chip *tpm = to_imx_tpm_pwm_chip(chip); in pwm_imx_tpm_get_state() local
146 state->period = tpm->real_period; in pwm_imx_tpm_get_state()
149 rate = clk_get_rate(tpm->clk); in pwm_imx_tpm_get_state()
150 val = readl(tpm->base + PWM_IMX_TPM_SC); in pwm_imx_tpm_get_state()
152 tmp = readl(tpm->base + PWM_IMX_TPM_CnV(pwm->hwpwm)); in pwm_imx_tpm_get_state()
157 val = readl(tpm->base + PWM_IMX_TPM_CnSC(pwm->hwpwm)); in pwm_imx_tpm_get_state()
179 struct imx_tpm_pwm_chip *tpm = to_imx_tpm_pwm_chip(chip); in pwm_imx_tpm_apply_hw() local
[all …]
/linux-6.15/Documentation/security/tpm/
Dtpm_ffa_crb.rst4 TPM CRB over FF-A Driver
7 The TPM Command Response Buffer (CRB) interface is a standard TPM interface
8 defined in the TCG PC Client Platform TPM Profile (PTP) Specification [1]_.
10 interacting with a TPM as well as a data buffer for storing TPM commands and
13 - hardware registers in a discrete TPM chip
15 - in memory for a TPM running in isolated environment where shared memory
16 allows a client to interact with the TPM
27 A TPM can be implemented as an FF-A secure service. This could be a firmware
28 TPM or could potentially be a TPM service that acts as a proxy to a discrete
29 TPM chip. An FF-A based TPM abstracts hardware details (e.g. bus controller
[all …]
Dtpm-security.rst3 TPM Security
7 use of the TPM reasonably robust in the face of external snooping and
9 in the literature). The current security document is for TPM 2.0.
14 The TPM is usually a discrete chip attached to a PC via some type of
16 PTT, which is a software TPM running inside a software environment
19 hardware TPM, which is the use case discussed here.
24 The current state of the art for snooping the `TPM Genie`_ hardware
27 successfully demonstrated against the `Windows Bitlocker TPM`_ system.
28 Most recently the same `attack against TPM based Linux disk
32 evaporate. However, the goal of this document is to protect TPM
[all …]
Dtpm_vtpm_proxy.rst2 Virtual TPM Proxy Driver for Linux Containers
14 The goal of this work is to provide TPM functionality to each Linux
15 container. This allows programs to interact with a TPM in a container
16 the same way they interact with a TPM on the physical system. Each
17 container gets its own unique, emulated, software TPM.
22 To make an emulated software TPM available to each container, the container
23 management stack needs to create a device pair consisting of a client TPM
27 is passed to the TPM emulator. Software inside the container can then send
28 TPM commands using the character device and the emulator will receive the
31 To support this, the virtual TPM proxy driver provides a device ``/dev/vtpmx``
[all …]
Dxen-tpmfront.rst2 Virtual TPM interface for Xen
9 Linux, and a basic understanding of the TPM and vTPM concepts.
14 The goal of this work is to provide a TPM functionality to a virtual guest
16 a TPM in a virtual system the same way they interact with a TPM on the physical
17 system. Each guest gets its own unique, emulated, software TPM. However, each
19 which seals the secrets to the Physical TPM. If the process of creating each of
21 the chain of trust rooted in the hardware TPM to virtual machines in Xen. Each
66 | Hardware TPM |
74 Linux kernel virtual TPM frontend driver. This driver
78 Mini-os TPM backend driver. The Linux frontend driver
[all …]
Dtpm_tis.rst4 TPM FIFO interface driver
18 tpm_tis comes from the TPM Interface Specification, which is the hardware
19 interface specification for TPM 1.x chips.
21 Communication is based on a 20 KiB buffer shared by the TPM chip through a
24 sets of registers for communication between the CPU and TPM. These
27 When the kernel wants to send commands to the TPM chip, it first reserves
40 in section 3.2 of the TCG PC Client Platform TPM Profile Specification.
45 TCG PC Client Platform TPM Profile (PTP) Specification
46 https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
/linux-6.15/Documentation/ABI/stable/
Dsysfs-class-tpm1 What: /sys/class/tpm/tpmX/device/
5 Description: The device/ directory under a specific TPM instance exposes
6 the properties of that TPM chip
9 What: /sys/class/tpm/tpmX/device/active
13 Description: The "active" property prints a '1' if the TPM chip is accepting
14 commands. An inactive TPM chip still contains all the state of
17 commands. See the TPM Main Specification part 2, Structures,
21 What: /sys/class/tpm/tpmX/device/cancel
26 pending TPM command. Writing any value to cancel will call the
27 TPM vendor specific cancel operation.
[all …]
/linux-6.15/drivers/char/tpm/st33zp24/
Di2c.c3 * STMicroelectronics TPM I2C Linux driver for TPM ST33ZP24
11 #include <linux/tpm.h>
13 #include "../tpm.h"
26 * @param: tpm_register, the tpm tis register where the data should be written
43 * @param: tpm_register, the tpm tis register where the data should be read
44 * @param: tpm_data, the TPM response
45 * @param: tpm_size, tpm TPM response size to read.
65 * @param: tpm_register, the tpm tis register where the data should be written
81 * @param: tpm_register, the tpm tis register where the data should be read
82 * @param: tpm_data, the TPM response
[all …]
Dspi.c3 * STMicroelectronics TPM SPI Linux driver for TPM ST33ZP24
11 #include <linux/tpm.h>
13 #include "../tpm.h"
39 * TPM command can be up to 2048 byte, A TPM response can be up to
46 * 2048 (for the TPM command) + 1024 (for the TPM answer). We need
91 * @param: tpm_register, the tpm tis register where the data should be written
134 * @param: tpm_register, the tpm tis register where the data should be read
135 * @param: tpm_data, the TPM response
136 * @param: tpm_size, tpm TPM response size to read.
175 * @param: tpm_register, the tpm tis register where the data should be read
[all …]
/linux-6.15/Documentation/devicetree/bindings/timer/
Dnxp,tpm-timer.yaml4 $id: http://devicetree.org/schemas/timer/nxp,tpm-timer.yaml#
7 title: NXP Low Power Timer/Pulse Width Modulation Module (TPM)
13 The Timer/PWM Module (TPM) supports input capture, output compare,
17 power modes. TPM can support global counter bus where one TPM drives
23 - const: fsl,imx7ulp-tpm
25 - const: fsl,imx8ulp-tpm
26 - const: fsl,imx7ulp-tpm
36 - description: SoC TPM ipg clock
37 - description: SoC TPM per clock
59 compatible = "fsl,imx7ulp-tpm";
/linux-6.15/Documentation/translations/zh_CN/security/tpm/
Dtpm-security.rst4 :Original: Documentation/security/tpm/tpm-security.rst
27 当前的技术状态允许使用 `TPM Genie`_ 硬件中间人,这是一种简单的外部设备,可以在
28 任何系统或笔记本电脑上几秒钟内安装。最近成功演示了针对 `Windows Bitlocker TPM`_
126 TPM、EK和AK之间的绑定关系成立时,才能恢复秘密。现在,生成的AK可以用于对由
139 现在根据 `TCG TPM v2.0 Provisioning Guidance`_ 中的存储配置生成空EC主密钥;
140 该密钥的名称(即公钥区域的哈希值)被计算出来并与内核在/sys/class/tpm/tpm0/null_name
147 .. _TPM Genie: https://www.nccgroup.trust/globalassets/about-us/us/documents/tpm-genie.pdf
148 .. _Windows Bitlocker TPM: https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-com…
149 .. _基于TPM的Linux磁盘加密: https://www.secura.com/blog/tpm-sniffing-attacks-against-non-bitlocker-targets
150 …l Profile: https://trustedcomputinggroup.org/resource/tcg-ek-credential-profile-for-tpm-family-2-0/
[all …]
/linux-6.15/security/integrity/ima/
Dima_init.c30 * Calculate the boot aggregate, a hash over tpm registers 0-7,
31 * assuming a TPM chip exists, and zeroes if the TPM chip does not
35 * If a tpm chip does not exist, indicate the core root of trust is
63 * With TPM 2.0 hash agility, TPM chips could support multiple TPM in ima_add_boot_aggregate()
67 * Use the same hash algorithm for reading the TPM PCRs as for in ima_add_boot_aggregate()
70 * TCG required banks - SHA256 for TPM 2.0, SHA1 for TPM 1.2. in ima_add_boot_aggregate()
71 * Ultimately select SHA1 also for TPM 2.0 if the SHA256 PCR bank in ima_add_boot_aggregate()
124 pr_info("No TPM chip found, activating TPM-bypass!\n"); in ima_init()
137 /* It can be called before ima_init_digests(), it does not use TPM. */ in ima_init()
/linux-6.15/include/uapi/linux/
Dvtpm_proxy.h24 * enum vtpm_proxy_flags - flags for the proxy TPM
25 * @VTPM_PROXY_FLAG_TPM2: the proxy TPM uses TPM 2.0 protocol
34 * @flags: flags for the proxy TPM
35 * @tpm_num: index of the TPM device
36 * @fd: the file descriptor used by the proxy TPM
37 * @major: the major number of the TPM device
38 * @minor: the minor number of the TPM device

12345678910