/linux/drivers/char/tpm/ |
H A D | Kconfig | 3 # 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 …]
|
H A D | Makefile | 3 # 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 …]
|
H A D | tpm_tis_i2c_cr50.c | 5 * 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 …]
|
H A D | tpm1-cmd.c | 12 * 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 …]
|
H A D | tpm_vtpm_proxy.c | 24 #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 …]
|
H A D | tpm_i2c_atmel.c | 3 * ATMEL I2C TPM AT97SC3204T 11 * Teddy Reed determined the basic I2C command flow, unlike other I2C TPM 12 * devices the raw TCG formatted TPM command data is written via I2C and then 13 * raw TCG formatted TPM command data is returned via I2C. 23 #include "tpm.h" 104 dev_err(&chip->dev, "TPM operation cancellation was requested, but is not supported"); in i2c_atmel_cancel() 113 /* The TPM fails the I2C read until it is ready, so we do the entire in i2c_atmel_read_status() 120 /* Once the TPM has completed the command the command remains readable in i2c_atmel_read_status() 175 * information seems to be read via TPM commands. Thus we rely on the in i2c_atmel_probe() 176 * TPM startup process in the common code to detect the device. */ in i2c_atmel_probe() [all …]
|
H A D | tpm_tis_i2c.c | 6 * This device driver implements the TPM interface as defined in the TCG PC 7 * Client Platform TPM Profile (PTP) Specification for TPM 2.0 v1.04 17 /* TPM registers */ 75 * of Register Space for FIFO TPM Access" of the TCG PC Client PTP 78 * Table 51 "I2C-TPM Register Overview". 87 * to the TPM and always uses locality 0. 126 /* retry on TPM NACK */ in tpm_tis_i2c_retry_transfer_until_ack() 175 pr_debug("TPM I2C read of register 0x%02x failed sanity check: 0x%x\n", reg, value); in tpm_tis_i2c_sanity_check_read() 278 * After each I2C operation, the TPM might require the master to wait. 282 * Before the Guard Time is read (or after the TPM failed to send an I2C NACK), [all …]
|
/linux/Documentation/devicetree/bindings/tpm/ |
H A D | tcg,tpm-tis-i2c.yaml | 4 $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 …]
|
H A D | tcg,tpm-tis-mmio.yaml | 4 $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";
|
H A D | google,cr50.yaml | 4 $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 {
|
H A D | tpm-common.yaml | 4 $id: http://devicetree.org/schemas/tpm/tpm-common.yaml# 14 pattern: '^tpm(@[0-9a-f]+)?$' 21 description: human readable string describing the device, e.g. "tpm" 39 present when the TPM is left powered on between suspend and resume 44 description: Reset controller to reset the TPM 48 description: Output GPIO pin to reset the TPM
|
H A D | tcg,tpm_tis-spi.yaml | 4 $id: http://devicetree.org/schemas/tpm/tcg,tpm_tis-spi.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… 30 - $ref: tpm-common.yaml# 54 tpm@0 { 68 tpm@0 {
|
H A D | microsoft,ftpm.yaml | 4 $id: http://devicetree.org/schemas/tpm/microsoft,ftpm.yaml# 20 Microsoft's firmware-based TPM 2.0 (fTPM) leverages ARM TrustZone to overcome 24 https://www.microsoft.com/en-us/research/publication/ftpm-software-implementation-tpm-chip/ 25 https://github.com/Microsoft/ms-tpm-20-ref/tree/main/Samples/ARM32-FirmwareTPM 37 - $ref: tpm-common.yaml# 43 tpm {
|
/linux/drivers/pwm/ |
H A D | pwm-imx-tpm.c | 6 * - 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/Documentation/ABI/stable/ |
H A D | sysfs-class-tpm | 1 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/Documentation/security/tpm/ |
H A D | tpm-security.rst | 3 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 …]
|
H A D | tpm_vtpm_proxy.rst | 2 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 …]
|
H A D | xen-tpmfront.rst | 2 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 …]
|
H A D | tpm_tis.rst | 4 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/drivers/char/tpm/st33zp24/ |
H A D | i2c.c | 3 * 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 …]
|
H A D | spi.c | 3 * 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/Documentation/devicetree/bindings/timer/ |
H A D | nxp,tpm-timer.yaml | 4 $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/include/uapi/linux/ |
H A D | vtpm_proxy.h | 24 * 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
|
/linux/Documentation/security/keys/ |
H A D | trusted-encrypted.rst | 28 (1) TPM (Trusted Platform Module: hardware device) 30 Rooted to Storage Root Key (SRK) which never leaves the TPM that 55 (1) TPM 76 (1) TPM 79 values, and only unsealed by the TPM, if PCRs and blob integrity 103 (1) TPM 139 * TPM: hardware device based RNG 141 Keys are generated within the TPM. Strength of random numbers may vary 182 Trusted Keys usage: TPM 185 TPM 1.2: By default, trusted keys are sealed under the SRK, which has the [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-driver-ppi | 1 What: /sys/class/tpm/tpmX/ppi/ 7 Presence Interface). Only if TPM is supported by BIOS, this 18 What: /sys/class/tpm/tpmX/ppi/version 26 What: /sys/class/tpm/tpmX/ppi/request 36 What: /sys/class/tpm/tpmX/ppi/response 45 What: /sys/class/tpm/tpmX/ppi/transition_action 55 What: /sys/class/tpm/tpmX/ppi/tcg_operations 66 What: /sys/class/tpm/tpmX/ppi/vs_operations
|