|
From: | Stefan Berger |
Subject: | Re: [PATCH] tpm: fixed be_buffer_size size in in tpm_crb |
Date: | Sun, 26 Dec 2021 21:24:45 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 |
On 12/25/21 07:38, Yuri Konotopov wrote:
Trying to boot VM with TPM 2.0 CRB in passthrough mode without this change I got "Requested buffer size of 3968 is smaller than host TPM's fixed buffer size of 4096".
I suppose the host has a TIS interface.The reason it gives this message is that the response this TPM may send back could be 4096 bytes in size but the CRB of the VM can only catch 3968 bytes, so there's a mismatch. You may not be able to use the CRB in passthrough mode. I would try to have the VM use the TIS.
Stefan
Looks like it can not be less than backend buffer size nor less than CRB_CTRL_CMD_SIZE. Signed-off-by: Yuri Konotopov <ykonotopov@gnome.org> --- hw/tpm/tpm_crb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index 58ebd1469c..8243645453 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -270,7 +270,7 @@ static void tpm_crb_reset(void *dev) s->regs[R_CRB_CTRL_RSP_SIZE] = CRB_CTRL_CMD_SIZE; s->regs[R_CRB_CTRL_RSP_ADDR] = TPM_CRB_ADDR_BASE + A_CRB_DATA_BUFFER;- s->be_buffer_size = MIN(tpm_backend_get_buffer_size(s->tpmbe),+ s->be_buffer_size = MAX(tpm_backend_get_buffer_size(s->tpmbe), CRB_CTRL_CMD_SIZE);if (tpm_backend_startup_tpm(s->tpmbe, s->be_buffer_size) < 0) {
[Prev in Thread] | Current Thread | [Next in Thread] |