Re: [RFC v2 1/5] tpm_crb: Add register definitions of TPM CRB chunking fields

From: Jarkko Sakkinen

Date: Sat May 09 2026 - 10:41:42 EST


On Tue, Mar 24, 2026 at 11:42:40PM +0530, Arun Menon wrote:
> 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@xxxxxxxxxx>
> ---
> 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 6c25305c256ef..67c0061d4cab7 100644
> --- a/drivers/char/tpm/tpm_crb.c
> +++ b/drivers/char/tpm/tpm_crb.c
> @@ -56,12 +56,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.53.0
>

Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

BR, Jarkko