Re: [PATCH v4] tpm: Enable CLKRUN protocol for Braswell systems

From: Jarkko Sakkinen
Date: Mon Jun 12 2017 - 03:50:11 EST


On Sat, Jun 10, 2017 at 04:35:50PM +0000, Shaikh, Azhar wrote:
>
>
> > -----Original Message-----
> > From: Jarkko Sakkinen [mailto:jarkko.sakkinen@xxxxxxxxxxxxxxx]
> > Sent: Saturday, June 10, 2017 4:14 AM
> > To: Shaikh, Azhar <azhar.shaikh@xxxxxxxxx>
> > Cc: jgunthorpe@xxxxxxxxxxxxxxxxxxxx; tpmdd-devel@xxxxxxxxxxxxxxxxxxxxx;
> > linux-kernel@xxxxxxxxxxxxxxx; linux-security-module@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH v4] tpm: Enable CLKRUN protocol for Braswell systems
> >
> > On Thu, Jun 08, 2017 at 04:46:33PM -0700, Azhar Shaikh wrote:
> > > To overcome a hardware limitation on Intel Braswell systems, disable
> > > CLKRUN protocol during TPM transactions and re-enable once the
> > > transaction is completed.
> > >
> > > Signed-off-by: Azhar Shaikh <azhar.shaikh@xxxxxxxxx>
> > > ---
> > > Changes from v1:
> > > - Add CONFIG_X86 around disable_lpc_clk_run () and
> > > enable_lpc_clk_run() to avoid
> > > - build breakage on architectures which do not implement
> > > kmap_atomic_pfn()
> > >
> > > Changes from v2:
> > > - Use ioremap()/iounmap() instead of
> > kmap_atomic_pfn()/kunmap_atomic()
> > > - Move is_bsw() and all macros from tpm.h to tpm_tis.c file.
> > > - Add the is_bsw() check in disable_lpc_clk_run() and
> > > enable_lpc_clk_run()
> > > - instead of adding it in each read/write API.
> > >
> > > Changes from v3:
> > > - Move the code under #ifdef CONFIG_X86 and create stub functions for
> > > everything else
> > > - Rename the functions disable_lpc_clk_run() ->
> > > tpm_platform_begin_xfer() and
> > > - enable_lpc_clk_run() -> tpm_platform_end_xfer()
> > > - Remove wmb()
> >
> > The wrong parameter order in outb() is not worth of mentioning in your
> > opinion?
> >
>
> Oh yes! It is definitely worth mentioning. I forgot to mention that.
> Will definitely mention it in the changelog for the next version if any or will re send v4 with updated changelog for v3.
>
> > Related.
> >
> > I looked again the kmap version of the patch and still cannot figure out what
> > could be wrong. Obviously the wrong outb() cause unexpected behavior.
> >
> > Do you have chances to grab klog from kmap version with correct outb?
> >
>
> I have not tried the kmap version with corrected outb(). Will give that a try.
>
> > /Jarkko

Thank you!

/Jarkko