On 3/21/23 8:30 PM, Stefan Berger wrote:
On 3/21/23 01:30, Ninad Palsule wrote:
Qemu already supports devices attached to ISA and sysbus. This drop adds
support for the I2C bus attached TPM devices. I2C model only supports
TPM2 protocol.
+
+/* Send data to TPM */
+static inline void tpm_tis_i2c_tpm_send(TPMStateI2C *i2cst)
+{
+ if ((i2cst->operation == OP_SEND) && (i2cst->offset > 1)) {
+ uint16_t tis_reg;
+ uint32_t data;
+ int i;
+
+ tis_reg = tpm_tis_i2c_to_tis_reg(i2cst->data[0], &i2cst->size);
+
+ /* Index 0 is always a register */
+ for (i = 1; i < i2cst->offset; i++) {
+ data = (i2cst->data[i] & 0xff);
+ tpm_tis_write_data(&i2cst->state, tis_reg, data, 1);
+ }
I think there should be tpm_tis_set_data_buffer function that you can
call rather than transferring the data byte-by-byte.
Thanks for the series!
Stefan
I thought about it but the FIFO case performs multiple operations hence
I did not want to change it. Currently there is no function to set data
buffer in the common code.
Thanks for the review!
Ninad Palsule