arm-trusted-firmware/include/drivers/tpm/tpm2_interface.h
Abhi.Singh 36e3d877cd feat(tpm): add tpm drivers and framework
Add tpm2 drivers to tf-a with adequate framework
-implement a fifo spi interface that works
 with discrete tpm chip.
-implement tpm command layer interfaces that are used
 to initialize, start and make measurements and
 close the interface.
-tpm drivers are built using their own make file
 to allow for ease in porting across platforms,
 and across different interfaces.

Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com>
Signed-off-by: Abhi Singh <abhi.singh@arm.com>
Change-Id: Ie1a189f45c80f26f4dea16c3bd71b1503709e0ea
2025-03-18 19:57:22 +01:00

28 lines
898 B
C

/*
* Copyright (c) 2025, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef TPM2_INTERFACE_H
#define TPM2_INTERFACE_H
#include "tpm2_chip.h"
typedef struct interface_ops {
int (*get_info)(struct tpm_chip_data *chip_data, uint8_t locality);
int (*send)(struct tpm_chip_data *chip_data, const tpm_cmd *buf);
int (*receive)(struct tpm_chip_data *chip_data, tpm_cmd *buf);
int (*request_access)(struct tpm_chip_data *chip_data, uint8_t locality);
int (*release_locality)(struct tpm_chip_data *chip_data, uint8_t locality);
} interface_ops_t;
struct interface_ops *tpm_interface_getops(struct tpm_chip_data *chip_data, uint8_t locality);
int tpm2_fifo_write_byte(uint16_t tpm_reg, uint8_t val);
int tpm2_fifo_read_byte(uint16_t tpm_reg, uint8_t *val);
int tpm2_fifo_read_chunk(uint16_t tpm_reg, uint8_t len, void *val);
#endif /* TPM2_INTERFACE_H */