From: Oshri Alkobi <firstname.lastname@example.org> To: Alexander Steffen <Alexander.Steffen@infineon.com> Cc: Eyal.Cohen@nuvoton.com, Jarkko Sakkinen <email@example.com>, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, Dan.Morav@nuvoton.com, firstname.lastname@example.org, email@example.com Subject: Re: [PATCH v2 0/2] char: tpm: add new driver for tpm i2c ptp Date: Thu, 15 Aug 2019 20:03:56 +0300 Message-ID: <CAM9mBwL=5+pGTYUKbSdw5F6soR=tW-cqfbEQ9_NmCQTO=fSVZQ@mail.gmail.com> (raw) In-Reply-To: <firstname.lastname@example.org> On Thu, Jul 18, 2019 at 8:10 PM Alexander Steffen <Alexander.Steffen@infineon.com> wrote: > > On 18.07.2019 14:51, Eyal.Cohen@nuvoton.com wrote: > > Hi Jarkko and Alexander, > > > > We have made an additional code review on the TPM TIS core driver, it looks quite good and we can connect our new I2C driver to this layer. > > Great :) In the meantime, I've done some experiments creating an I2C > driver based on tpm_tis_core, see > https://patchwork.kernel.org/patch/11049363/ Please have a look at that > and provide your feedback (and/or use it as a basis for further > implementations). > Sorry for the late response. Thanks Alexander, indeed it looks much simpler. I've checked it with Nuvoton's TPM - basic TPM commands work, I only had to remove the first msg from the read/write I2C transmitting (from/to TPM_LOC_SEL), the TPM couldn't handle two register writes in a sequence. Actually it is more efficient to set TPM_LOC_SEL only before locality check/request/relinquish - it is sticky. I still didn't manage to work with interrupts, will debug it. We weren't aware to the implementation of Christophe/ST which looks good and can be complement to yours. If no one is currently working on that, we can prepare a new patch that is based on both. Please let us know. > > However, there are several differences between the SPI interface and the I2C interface that will require changes to the TIS core. > > At a minimum we thought of: > > 1. Handling TPM Localities in I2C is different > > It turned out not to be that different in the end, see the code > mentioned above and my comment here: > https://patchwork.kernel.org/cover/11049365/ > > > 2. Handling I2C CRC - relevant only to I2C bus hence not supported today by TIS core > > That is completely optional, so there is no need to implement it in the > beginning. Also, do you expect a huge benefit from that functionality? > Are bit flips that much more likely on I2C compared to SPI, which has no > CRC at all, but still works fine? > I2C is noisy bus with potentially more devices with larger variety than SPI. I2C may have more than one master and may have collisions and/or arbitration. Still we can start w/o CRC for the first stage and add it later. BTW, Christophe already did most of the work (https://patchwork.kernel.org/patch/8628661/) > > 3. Handling Chip specific issues, since I2C implementation might be slightly different across the various TPM vendors > > Right, that seems similar to the cr50 issues > (https://lkml.org/lkml/2019/7/17/677), so there should probably be a > similar way to do it. Got it. We hope things will work for us without having another driver, but it's an option. > > > 4. Modify tpm_tis_send_data and tpm_tis_recv_data to work according the TCG Device Driver Guide (optimization on TPM_STS access and send/recv retry) > > Optimizations are always welcome, but I'd expect basic communication to > work already with the current code (though maybe not as efficiently as > possible). > > > Besides this, during development we might encounter additional differences between SPI and I2C. > > > > We currently target to allocate an eng. to work on this on the second half of August with a goal to have the driver ready for the next kernel merge window. > > > > Regards, > > Eyal.
next prev parent reply index Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-28 15:13 Oshri Alkoby 2019-06-28 15:13 ` [PATCH v2 1/2] dt-bindings: tpm: add the TPM I2C PTP device tree binding documentation Oshri Alkoby 2019-06-28 15:13 ` [PATCH v2 2/2] char: tpm: add new driver for tpm i2c ptp Oshri Alkoby 2019-07-04 8:43 ` [PATCH v2 0/2] " Jarkko Sakkinen 2019-07-04 11:29 ` Alexander Steffen 2019-07-05 11:15 ` Jarkko Sakkinen [not found] ` <CAM9mBwJC2QD5-gV1eJUDzC2Fnnugr-oCZCoaH2sT_7ktFDkS-Q@mail.gmail.com> 2019-07-05 11:28 ` Jarkko Sakkinen [not found] ` <6e7ff1b958d84f6e8e585fd3273ef295@NTILML02.nuvoton.com> [not found] ` <CAP6Zq1hPo9dG71YFyr7z9rjmi-DvoUZJOme4+2uqsfO+7nH+HQ@mail.gmail.com> 2019-07-15 9:45 ` Jarkko Sakkinen 2019-07-18 12:51 ` Eyal.Cohen 2019-07-18 17:10 ` Alexander Steffen 2019-07-30 8:39 ` Benoit HOUYERE 2019-07-30 17:42 ` Alexander Steffen 2019-08-15 17:03 ` Oshri Alkobi [this message] 2019-08-16 16:12 ` Alexander Steffen 2019-07-17 7:48 ` Alexander Steffen
Reply instructions: You may reply publically 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='CAM9mBwL=5+pGTYUKbSdw5F6soR=tW-cqfbEQ9_NmCQTO=fSVZQ@mail.gmail.com' \ --email@example.com \ --cc=Alexander.Steffen@infineon.com \ --cc=Dan.Morav@nuvoton.com \ --cc=Eyal.Cohen@nuvoton.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.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
Linux-Integrity Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-integrity/0 linux-integrity/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-integrity linux-integrity/ https://lore.kernel.org/linux-integrity \ email@example.com firstname.lastname@example.org public-inbox-index linux-integrity Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-integrity AGPL code for this site: git clone https://public-inbox.org/ public-inbox