/openbmc/u-boot/drivers/tpm/ |
H A D | Kconfig | 2 # TPM subsystem configuration 5 menu "TPM support" 9 depends on TPM 12 Major TPM versions are not compatible at all, choose either 18 bool "Enable sandbox TPM driver" 23 such as reading and writing TPM private data. This is enough to 28 bool "Enable Atmel TWI TPM device driver" 31 This driver supports an Atmel TPM device connected on the I2C bus. 32 The usual tpm operations and the 'tpm' command can be used to talk 33 to the device using the standard TPM Interface Specification (TIS) [all …]
|
H A D | tpm2_tis_sandbox.c | 9 #include <tpm-v2.h> 44 /* TPM internal states */ 48 /* TPM password per hierarchy */ 51 /* TPM properties */ 53 /* TPM PCRs */ 55 /* TPM PCR extensions */ 68 struct sandbox_tpm2 *tpm = dev_get_priv(dev); in sandbox_tpm2_check_session() local 161 if (!pw_sz && !tpm->pw_sz[*hierarchy]) in sandbox_tpm2_check_session() 175 if (pw_sz != tpm->pw_sz[*hierarchy] || in sandbox_tpm2_check_session() 176 strncmp(pw, tpm->pw[*hierarchy], tpm->pw_sz[*hierarchy])) { in sandbox_tpm2_check_session() [all …]
|
H A D | tpm_tis_st33zp24_i2c.c | 3 * STMicroelectronics TPM ST33ZP24 I2C UBOOT driver 8 * Description: Device driver for ST33ZP24 I2C TPM TCG. 10 * This device driver implements the TPM interface as defined in 11 * the TCG TPM Interface Spec version 1.21, revision 1.0 and the 19 #include <tpm-v1.h> 41 * @param: tpm_register, the tpm tis register where the data should be written 60 * @param: tpm_register, the tpm tis register where the data should be read 61 * @param: tpm_data, the TPM response 62 * @param: tpm_size, tpm TPM response size to read. 83 * @param: tpm_register, the tpm tis register where the data should be written [all …]
|
/openbmc/qemu/qapi/ |
H A D | tpm.json | 6 # = TPM (trusted platform module) devices 12 # An enumeration of TPM models 14 # @tpm-tis: TPM TIS model 16 # @tpm-crb: TPM CRB model (since 2.12) 18 # @tpm-spapr: TPM SPAPR model (since 5.0) 22 { 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ], 26 # @query-tpm-models: 28 # Return a list of supported TPM models 36 # -> { "execute": "query-tpm-models" } 37 # <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] } [all …]
|
/openbmc/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 "TPM HW Random Number Generator support" 35 This setting exposes the TPM's Random Number Generator as a hwrng 36 device. This allows the kernel to collect randomness from the TPM at 37 boot, and provides the TPM randomines in /dev/hwrng. 44 TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks [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. 32 #define TPM_CR50_TIMEOUT_NOIRQ_MS 20 /* Timeout for TPM ready without IRQ */ 62 * @tpm_info: TPM chip information. 82 * tpm_cr50_i2c_wait_tpm_ready() - Wait for tpm to signal ready. 83 * @chip: A TPM chip. 86 * delay for the TPM to be ready. 102 /* Wait for interrupt to indicate TPM is ready to respond */ in tpm_cr50_i2c_wait_tpm_ready() 104 dev_warn(&chip->dev, "Timeout waiting for TPM ready\n"); in tpm_cr50_i2c_wait_tpm_ready() 112 * tpm_cr50_i2c_enable_tpm_irq() - Enable TPM irq. 113 * @chip: A TPM chip. [all …]
|
/openbmc/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 …]
|
/openbmc/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 …]
|
/openbmc/qemu/docs/specs/ |
H A D | tpm.rst | 4 QEMU TPM Device 13 The QEMU TPM emulation implements a TPM TIS hardware interface 15 Specific TPM Interface Specification (TIS)", Specification Version 22 QEMU files related to TPM TIS interface: 23 - ``hw/tpm/tpm_tis_common.c`` 24 - ``hw/tpm/tpm_tis_isa.c`` 25 - ``hw/tpm/tpm_tis_sysbus.c`` 26 - ``hw/tpm/tpm_tis_i2c.c`` 27 - ``hw/tpm/tpm_tis.h`` 34 based emulation machines. This device only supports the TPM 2 protocol. [all …]
|
/openbmc/u-boot/include/ |
H A D | tpm_api.h | 10 #include <tpm-common.h> 11 #include <tpm-v1.h> 12 #include <tpm-v2.h> 17 * @param dev TPM device 18 * @param mode TPM startup mode 26 * @param dev TPM device 34 * @param dev TPM device 44 * @param dev TPM device 57 * @param dev TPM device 70 * @param dev TPM device [all …]
|
H A D | tpm-common.h | 24 * Here is a partial implementation of TPM commands. Please consult TCG Main 25 * Specification for definitions of TPM commands. 30 /* Max buffer size supported by our tpm */ 36 * enum tpm_version - The version of the TPM stack to be used 37 * @TPM_V1: Use TPM v1.x stack 38 * @TPM_V2: Use TPM v2.x stack 46 * struct tpm_chip_priv - Information about a TPM, stored by the uclass 52 * @version: TPM stack to be used 58 * @plat_hier_disabled: Platform hierarchy has been disabled (TPM is locked 68 /* TPM v2 specific data */ [all …]
|
H A D | tpm-v1.h | 10 #include <tpm-common.h> 114 * TPM return codes as defined in the TCG Main specification 115 * (TPM Main Part 2 Structures; Specification version 1.2) 121 /* TPM-defined fatal error codes */ 220 /* TPM-defined non-fatal errors */ 288 * @param dev TPM device 289 * @param mode TPM startup mode 297 * @param dev TPM device 305 * @param dev TPM device 315 * @param dev TPM device [all …]
|
/openbmc/qemu/backends/tpm/ |
H A D | tpm_emulator.c | 2 * Emulator TPM driver 44 #include "qapi/qapi-visit-tpm.h" 49 #define TYPE_TPM_EMULATOR "tpm-emulator" 56 /* blobs from the TPM; part of VM state when migrating */ 75 uint32_t caps; /* capabilities of the TPM */ 96 /* TPM 1.2 error codes */ 107 /* TPM 2 error codes */ 125 static int tpm_emulator_ctrlcmd(TPMEmulator *tpm, unsigned long cmd, void *msg, in tpm_emulator_ctrlcmd() argument 129 CharBackend *dev = &tpm->ctrl_chr; in tpm_emulator_ctrlcmd() 135 WITH_QEMU_LOCK_GUARD(&tpm->mutex) { in tpm_emulator_ctrlcmd() [all …]
|
/openbmc/openbmc/meta-security/meta-tpm/recipes-core/packagegroup/ |
H A D | packagegroup-security-tpm.bb | 8 PACKAGES = "packagegroup-security-tpm" 10 SUMMARY:packagegroup-security-tpm = "Security TPM support" 11 RDEPENDS:packagegroup-security-tpm = " \ 12 tpm-tools \ 15 tpm-quote-tools \ 18 openssl-tpm-engine \ 25 kernel-module-tpm-atmel \ 26 kernel-module-tpm-infineon \ 27 kernel-module-tpm-nsc \ 31 kernel-module-tpm-atmel \ [all …]
|
H A D | packagegroup-security-tpm-i2c.bb | 1 DESCRIPTION = "Security packagegroup for TPM i2c support" 8 PACKAGES = "packagegroup-security-tpm-i2c" 10 SUMMARY:packagegroup-security-tpm-i2c = "Security TPM i2c support" 11 RDEPENDS:packagegroup-security-tpm-i2c = " \ 12 ${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'packagegroup-security-tpm', '', d)} \ 14 kernel-module-tpm-i2c-atmel \ 15 kernel-module-tpm-i2c-infineon \ 16 kernel-module-tpm-i2c-nuvoton \ 17 kernel-module-tpm-st33zp24 \ 18 kernel-module-tpm-st33zp24-i2c \
|
/openbmc/linux/Documentation/security/tpm/ |
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 …]
|
/openbmc/docs/designs/oem/google/ |
H A D | root_of_trust.md | 79 Considered adding the new APIs as an OEM extension to the TPM resource. However, 81 to use TPM for Google's RoT: 84 - Somewhat closely fixed to the design of TPM. TPM 1.2 had 32-bit firmware 85 version and TPM 2.0 extended it clumsily by just tacking on another firmware 87 - TPM "Firmware 1" and "Firmware 2" together refer to the 64-bit firmware 91 numbers than the rest of the TPM vendors, reserving some bits and expressing 95 is (not) within the TPM ecosystem. 97 - Currently closely fixed to the ecosystem of TPM variants. 98 - Which flavor of TPM interface is implemented. TCM is the "China version" of 99 TPM 1.2. The Chinese TPM switched over to TPM 2.0 after that version of the [all …]
|
/openbmc/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 …]
|
/openbmc/linux/Documentation/devicetree/bindings/security/tpm/ |
H A D | tpm-tis-i2c.yaml | 4 $id: http://devicetree.org/schemas/security/tpm/tpm-tis-i2c.yaml# 7 title: I2C PTP based TPM Devices 13 Device Tree Bindings for I2C based Trusted Platform Module (TPM). 17 pattern: "^tpm(@[0-9a-f]+)?$" 21 - description: Infineon's Trusted Platform Module (TPM) (SLB9673). 24 - const: tcg,tpm-tis-i2c 25 - description: Nuvoton's Trusted Platform Module (TPM) (NPCT75x). 28 - const: tcg,tpm-tis-i2c 29 - const: tcg,tpm-tis-i2c 45 tpm@2e { [all …]
|
/openbmc/u-boot/board/gdsys/a38x/ |
H A D | hre.c | 12 #include <tpm-v1.h> 95 * @brief get the size of a given (TPM) NV area 96 * @param tpm TPM device 101 static int get_tpm_nv_size(struct udevice *tpm, uint32_t index, uint32_t *size) in get_tpm_nv_size() argument 108 err = tpm_get_capability(tpm, TPM_CAP_NV_INDEX, index, in get_tpm_nv_size() 132 * @param tpm TPM device 136 * @return 0 if key was found in TPM; != 0 if not. 138 static int find_key(struct udevice *tpm, const uint8_t auth[20], in find_key() argument 150 /* fetch list of already loaded keys in the TPM */ in find_key() 151 err = tpm_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf, in find_key() [all …]
|
/openbmc/openbmc/meta-security/meta-tpm/recipes-tpm1/tpm-quote-tools/ |
H A D | tpm-quote-tools_1.0.4.bb | 1 SUMMARY = "The TPM Quote Tools is a collection of programs that provide support \ 2 for TPM based attestation using the TPM quote mechanism. \ 4 DESCRIPTION = "The TPM Quote Tools is a collection of programs that provide support \ 5 for TPM based attestation using the TPM quote mechanism. The manual \ 8 TPM Quote Tools has been tested with TrouSerS on Linux and NTRU on \ 12 SECTION = "security/tpm" 16 DEPENDS = "libtspi tpm-tools" 18 SRC_URI = "git://git.code.sf.net/p/tpmquotetools/tpm-quote-tools;branch=master"
|
/openbmc/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";
|