All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Stephen Boyd <swboyd@chromium.org>
Cc: Peter Huewe <peterhuewe@gmx.de>,
	Andrey Pronin <apronin@chromium.org>,
	linux-kernel@vger.kernel.org, linux-integrity@vger.kernel.org,
	Duncan Laurie <dlaurie@chromium.org>,
	Jason Gunthorpe <jgg@ziepe.ca>, Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Guenter Roeck <groeck@chromium.org>,
	Alexander Steffen <Alexander.Steffen@infineon.com>,
	Heiko Stuebner <heiko@sntech.de>
Subject: Re: [PATCH v7 4/6] tpm: tpm_tis_spi: Support cr50 devices
Date: Mon, 7 Oct 2019 01:32:28 +0300	[thread overview]
Message-ID: <20191006223228.GA8860@linux.intel.com> (raw)
In-Reply-To: <20190920183240.181420-5-swboyd@chromium.org>

On Fri, Sep 20, 2019 at 11:32:38AM -0700, Stephen Boyd wrote:
> From: Andrey Pronin <apronin@chromium.org>
> 
> Add TPM2.0 PTP FIFO compatible SPI interface for chips with Cr50
> firmware. The firmware running on the currently supported H1 Secure
> Microcontroller requires a special driver to handle its specifics:
> 
>  - need to ensure a certain delay between SPI transactions, or else
>    the chip may miss some part of the next transaction
>  - if there is no SPI activity for some time, it may go to sleep,
>    and needs to be waken up before sending further commands
>  - access to vendor-specific registers
> 
> Cr50 firmware has a requirement to wait for the TPM to wakeup before
> sending commands over the SPI bus. Otherwise, the firmware could be in
> deep sleep and not respond. The method to wait for the device to wakeup
> is slightly different than the usual flow control mechanism described in
> the TCG SPI spec. Add a completion to tpm_tis_spi_transfer() before we
> start a SPI transfer so we can keep track of the last time the TPM
> driver accessed the SPI bus to support the flow control mechanism.
> 
> Split the cr50 logic off into a different file to keep it out of the
> normal code flow of the existing SPI driver while making it all part of
> the same module when the code is optionally compiled into the same
> module. Export a new function, tpm_tis_spi_init(), and the associated
> read/write/transfer APIs so that we can do this. Make the cr50 code wrap
> the tpm_tis_spi_phy struct with its own struct to override the behavior
> of tpm_tis_spi_transfer() by supplying a custom flow control hook. This
> shares the most code between the core driver and the cr50 support
> without combining everything into the core driver or exporting module
> symbols.
> 
> Signed-off-by: Andrey Pronin <apronin@chromium.org>
> Cc: Andrey Pronin <apronin@chromium.org>
> Cc: Duncan Laurie <dlaurie@chromium.org>
> Cc: Jason Gunthorpe <jgg@ziepe.ca>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Guenter Roeck <groeck@chromium.org>
> Cc: Alexander Steffen <Alexander.Steffen@infineon.com>
> Cc: Heiko Stuebner <heiko@sntech.de>

First, I apologize for such a long latency (two weeks).

I think this looks legit now.

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

/Jarkko

  reply	other threads:[~2019-10-06 22:32 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-20 18:32 [PATCH v7 0/6] tpm: Add driver for cr50 Stephen Boyd
2019-09-20 18:32 ` [PATCH v7 1/6] dt-bindings: tpm: document properties " Stephen Boyd
2019-09-20 18:32 ` [PATCH v7 2/6] tpm: Add a flag to indicate TPM power is managed by firmware Stephen Boyd
2019-09-20 18:32 ` [PATCH v7 3/6] tpm: tpm_tis_spi: Introduce a flow control callback Stephen Boyd
2019-09-20 18:32 ` [PATCH v7 4/6] tpm: tpm_tis_spi: Support cr50 devices Stephen Boyd
2019-10-06 22:32   ` Jarkko Sakkinen [this message]
2020-02-03  9:13   ` Alexander Steffen
2020-02-04  0:37     ` Stephen Boyd
2020-02-04  7:15       ` Alexander Steffen
2020-02-04 12:00         ` Jarkko Sakkinen
2019-09-20 18:32 ` [PATCH v7 5/6] tpm: tpm_tis_spi: Cleanup includes Stephen Boyd
2019-10-06 22:34   ` Jarkko Sakkinen
2019-09-20 18:32 ` [PATCH v7 6/6] tpm: tpm_tis_spi: Drop THIS_MODULE usage from driver struct Stephen Boyd
2019-10-06 22:35   ` Jarkko Sakkinen
2019-10-06 22:39 ` [PATCH v7 0/6] tpm: Add driver for cr50 Jarkko Sakkinen
2019-10-11  7:50   ` Heiko Stübner
2019-10-14 19:56     ` Jarkko Sakkinen
2019-10-15 20:23       ` Heiko Stuebner
2019-10-16 15:27         ` 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=20191006223228.GA8860@linux.intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=Alexander.Steffen@infineon.com \
    --cc=apronin@chromium.org \
    --cc=arnd@arndb.de \
    --cc=dlaurie@chromium.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@chromium.org \
    --cc=heiko@sntech.de \
    --cc=jgg@ziepe.ca \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterhuewe@gmx.de \
    --cc=swboyd@chromium.org \
    /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.