All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: amirmizi6@gmail.com
Cc: Eyal.Cohen@nuvoton.com, oshrialkoby85@gmail.com,
	alexander.steffen@infineon.com, robh+dt@kernel.org,
	peterhuewe@gmx.de, christophe-h.richard@st.com, jgg@ziepe.ca,
	arnd@arndb.de, gregkh@linuxfoundation.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-integrity@vger.kernel.org, oshri.alkoby@nuvoton.com,
	tmaimon77@gmail.com, gcwilson@us.ibm.com, kgoldman@us.ibm.com,
	Dan.Morav@nuvoton.com, oren.tanami@nuvoton.com,
	shmulik.hager@nuvoton.com, amir.mizinski@nuvoton.com,
	Benoit Houyere <benoit.houyere@st.com>
Subject: Re: [PATCH v11 2/8] tpm: tpm_tis: Fix expected bit handling and send all bytes in one shot without last byte in exception
Date: Tue, 23 Jun 2020 00:54:53 +0300	[thread overview]
Message-ID: <20200622215453.GD22727@linux.intel.com> (raw)
In-Reply-To: <20200618134344.243537-3-amirmizi6@gmail.com>

On Thu, Jun 18, 2020 at 04:43:37PM +0300, amirmizi6@gmail.com wrote:
> From: Amir Mizinski <amirmizi6@gmail.com>
> 
> Detected the following incorrect implementation of the send command:
> polling on the TPM_STS.stsValid field followed by checking the
> TPM_STS.expect field only once. Since TPM_STS.stsValid represents the
> TPM_STS.expect validity, both fields should be polled at the same time.
> 
> This fix modifies the signature of wait_for_tpm_stat(), adding an
> additional "mask_result" parameter to its call. wait_for_tpm_stat() is now
> polling the TPM_STS with a mask and waits for the value in mask_result.
> The fix adds the ability to check if certain TPM_STS bits have been
> cleared.
> 
> This change is also aligned to verifying the CRC on I2C TPM. The CRC
> verification should be done after the TPM_STS.expect field is cleared
> (TPM received all expected command bytes and set the calculated CRC value
> in the register).
> 
> In addition, the send command was changed to comply with
> TCG_DesignPrinciples_TPM2p0Driver_vp24_pubrev.pdf as follows:
> - send all command bytes in one loop
> - remove special handling of the last byte
> 
> Suggested-by: Benoit Houyere <benoit.houyere@st.com>
> Signed-off-by: Amir Mizinski <amirmizi6@gmail.com>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

If this patch set needs a further update, you could rename the function
as 'tpm_tis_wait_for_stat()' (can be part of this patch). It's better
aligned with other naming and gives better picture of the scope of this
function.

/Jarkko

  reply	other threads:[~2020-06-22 21:55 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-18 13:43 [PATCH v11 0/8] Add tpm i2c ptp driver amirmizi6
2020-06-18 13:43 ` [PATCH v11 1/8] tpm: Make read{16, 32}() and write32() in tpm_tis_phy_ops optional amirmizi6
2020-06-18 13:43 ` [PATCH v11 2/8] tpm: tpm_tis: Fix expected bit handling and send all bytes in one shot without last byte in exception amirmizi6
2020-06-22 21:54   ` Jarkko Sakkinen [this message]
2020-06-18 13:43 ` [PATCH v11 3/8] tpm: tpm_tis: Add retry in case of protocol failure or data integrity (on I2C only) failure amirmizi6
2020-06-22 21:59   ` Jarkko Sakkinen
2020-06-22 22:02     ` Jarkko Sakkinen
2020-06-18 13:43 ` [PATCH v11 4/8] tpm: tpm_tis: Rewrite "tpm_tis_req_canceled()" amirmizi6
2020-06-18 13:43 ` [PATCH v11 5/8] tpm: Handle an exception for TPM Firmware Update mode amirmizi6
2020-06-18 13:43 ` [PATCH v11 6/8] tpm: tpm_tis: verify TPM_STS register is valid after locality request amirmizi6
2020-06-18 13:43 ` [PATCH v11 7/8] tpm: Add YAML schema for TPM TIS I2C options amirmizi6
2020-06-18 13:43 ` [PATCH v11 8/8] tpm: tpm_tis: add tpm_tis_i2c driver amirmizi6
2020-06-22 21:49 ` [PATCH v11 0/8] Add tpm i2c ptp driver 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=20200622215453.GD22727@linux.intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=Dan.Morav@nuvoton.com \
    --cc=Eyal.Cohen@nuvoton.com \
    --cc=alexander.steffen@infineon.com \
    --cc=amir.mizinski@nuvoton.com \
    --cc=amirmizi6@gmail.com \
    --cc=arnd@arndb.de \
    --cc=benoit.houyere@st.com \
    --cc=christophe-h.richard@st.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gcwilson@us.ibm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jgg@ziepe.ca \
    --cc=kgoldman@us.ibm.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oren.tanami@nuvoton.com \
    --cc=oshri.alkoby@nuvoton.com \
    --cc=oshrialkoby85@gmail.com \
    --cc=peterhuewe@gmx.de \
    --cc=robh+dt@kernel.org \
    --cc=shmulik.hager@nuvoton.com \
    --cc=tmaimon77@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.