From: Arun Menon <armenon@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Jarkko Sakkinen <jarkko@kernel.org>,
linux-integrity@vger.kernel.org, Jason Gunthorpe <jgg@ziepe.ca>,
Peter Huewe <peterhuewe@gmx.de>, Arun Menon <armenon@redhat.com>
Subject: [PATCH v3 1/6] tpm_crb: Add register definitions of TPM CRB chunking fields
Date: Mon, 18 May 2026 20:47:19 +0530 [thread overview]
Message-ID: <20260518151724.730443-2-armenon@redhat.com> (raw)
In-Reply-To: <20260518151724.730443-1-armenon@redhat.com>
From: Arun Menon <armenon@redhat.com>
Post-quantum cryptographic (PQC) algorithms can require buffer sizes that
exceed the physical capacity of the TPM's Command/Response Buffer (CRB).
To support these larger payloads, the TPM 2.0 CRB specification [1]
allows for data chunking when the physical MMIO window is smaller than
the required buffer size.
To support this protocol, the TPM driver must be able to detect the
chunking capability, and signal the backend using specific start
method flags, also known as the control area start register bits.
As per sections 6.4.2.2 and 6.5.3.9 of the specification document [1]
Add 2 new bit flags to the existing enum crb_start and add the
capability bit.
- CRB_INTF_CAP_CRB_CHUNK: A capability bit used to detect if the backend
supports chunking.
- CRB_START_NEXT_CHUNK: A control bit to signal the TPM to consume the
current command buffer, or to get the next chunk from the response
buffer.
- CRB_START_RESP_RETRY: A control bit to signal retransmission of a
response buffer.
[1] https://trustedcomputinggroup.org/wp-content/uploads/PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p07_rc1_121225.pdf
Signed-off-by: Arun Menon <armenon@redhat.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
---
drivers/char/tpm/tpm_crb.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c
index ceb4100ba400..d76f9e30f036 100644
--- a/drivers/char/tpm/tpm_crb.c
+++ b/drivers/char/tpm/tpm_crb.c
@@ -57,12 +57,18 @@ enum crb_ctrl_sts {
enum crb_start {
CRB_START_INVOKE = BIT(0),
+ CRB_START_RESP_RETRY = BIT(1),
+ CRB_START_NEXT_CHUNK = BIT(2),
};
enum crb_cancel {
CRB_CANCEL_INVOKE = BIT(0),
};
+enum crb_intf {
+ CRB_INTF_CAP_CRB_CHUNK = BIT(10),
+};
+
struct crb_regs_head {
u32 loc_state;
u32 reserved1;
--
2.54.0
next prev parent reply other threads:[~2026-05-18 15:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-18 15:17 [PATCH v3 0/6] tpm_crb: Add command and response buffer chunking support Arun Menon
2026-05-18 15:17 ` Arun Menon [this message]
2026-05-18 15:17 ` [PATCH v3 2/6] tpm_crb: Split start method into a separate header Arun Menon
2026-05-21 23:17 ` Jarkko Sakkinen
2026-05-18 15:17 ` [PATCH v3 3/6] tpm_crb: Add start_cmd parameter to tpm_crb_start wrapper Arun Menon
2026-05-21 22:43 ` Jarkko Sakkinen
2026-05-18 15:17 ` [PATCH v3 4/6] tpm: tis_i2c: Use local 4KB buffer to limit memory usage Arun Menon
2026-05-21 23:23 ` Jarkko Sakkinen
2026-05-18 15:17 ` [PATCH v3 5/6] tpm: Increase TPM_BUFSIZE to 8kB for chunking support Arun Menon
2026-05-18 15:17 ` [PATCH v3 6/6] tpm_crb: Implement command and response chunking logic Arun Menon
2026-05-21 23:28 ` Jarkko Sakkinen
2026-05-21 21:53 ` [PATCH v3 0/6] tpm_crb: Add command and response buffer chunking support Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260518151724.730443-2-armenon@redhat.com \
--to=armenon@redhat.com \
--cc=jarkko@kernel.org \
--cc=jgg@ziepe.ca \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterhuewe@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome