11 Feb, 2020

1 commit


07 Feb, 2020

1 commit

  • H1 is a Google security chip present in recent Chromebooks, Pixel phones
    and other devices. Cr50 is the name of the software that runs on H1 in
    Chromebooks.

    This chip is used to handle TPM-like functionality and also has quite a
    few additional features.

    Add a driver for this.

    Signed-off-by: Simon Glass

    Simon Glass
     

06 Feb, 2020

1 commit


09 Oct, 2018

1 commit


26 May, 2018

2 commits


07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

29 Jan, 2016

2 commits


23 Oct, 2015

2 commits


31 Aug, 2015

2 commits

  • Add a new uclass for TPMs which uses almost the same TIS (TPM Interface
    Specification) as is currently implemented. Since init() is handled by the
    normal driver model probe() method, we don't need to implement that. Also
    rename the transfer method to xfer() which is a less clumbsy name.

    Once all drivers and users are converted to driver model we can remove the
    old code.

    Signed-off-by: Simon Glass
    Acked-by: Christophe Ricard
    Reviewed-by: Heiko Schocher

    Simon Glass
     
  • The current Infineon I2C TPM driver is written in two parts, intended to
    support use with other I2C devices. However we don't have any users and the
    Atmel I2C TPM device does not use this file.

    We should simplify this and remove the unused abstration. As a first step,
    move the code into one file.

    Also the name tpm_private.h suggests that the header file is generic to all
    TPMs but it is not. Rename it indicate that it relates only to this driver

    Signed-off-by: Simon Glass
    Reviewed-by: Heiko Schocher

    Simon Glass
     

09 Jan, 2014

1 commit

  • Add a simple TPM emulator for sandbox. It only supports a small subset of
    TPM operations. However, these are enough to perform common tasks.

    Note this is an initial commit to get this working, but it could use
    cleaning up (for example constants instead of open-coded values).

    Signed-off-by: Simon Glass

    Signed-off-by: Simon Glass
    Reviewed-by: Simon Glass

    Simon Glass
     

18 Nov, 2013

1 commit


01 Nov, 2013

1 commit


24 Jul, 2013

1 commit


17 Jul, 2013

1 commit

  • Add support for Atmel TPM devices with two wire interface.

    Signed-off-by: Dirk Eibach
    Signed-off-by: Reinhard Pfau
    Reviewed-by: Simon Glass
    Signed-off-by: Andy Fleming

    Dirk Eibach
     

03 Jun, 2013

2 commits

  • This patch does a similar code reogranzation from
    http://patchwork.ozlabs.org/patch/132179/
    which is based on an old version of code (fdt support and bus selection
    still not in). It merges this tidy-up on top of the recent code. It does
    not make any logical change.

    tpm.c implements the interface defined in tpm.h based on underlying
    LPC or I2C TPM driver. tpm.c and the underlying driver communicate
    throught tpm_private.h.

    Note: Merging the LPC driver with tpm.c is left to future patches.

    Change-Id: Ie1384f5f9e3935d3bc9a44adf8de80c5a70a5f2b
    Signed-off-by: Tom Wai-Hong Tam
    Signed-off-by: Simon Glass
    Reviewed-by: Simon Glass

    Tom Wai-Hong Tam
     
  • The new name is more aligned with Linux kernel's naming of TPM driver.

    Signed-off-by: Peter Huewe
    Signed-off-by: Che-Liang Chiou
    Signed-off-by: Simon Glass
    Acked-by: Mike Frysinger
    Reviewed-by: Simon Glass
    Tested-by: Tom Wai-Hong Tam

    Che-liang Chiou
     

13 Apr, 2013

1 commit


07 Dec, 2011

1 commit

  • TPM (Trusted Platform Module) is an integrated circuit and
    software platform that provides computer manufacturers with the
    core components of a subsystem used to assure authenticity,
    integrity and confidentiality.

    This driver supports version 1.2 of the TCG (Trusted Computing
    Group) specifications.

    The TCG specification defines several so called localities in a
    TPM chip, to be controlled by different software layers. When
    used on a typical x86 platform during the firmware phase, only
    locality 0 can be accessed by the CPU, so this driver even while
    supporting the locality concept presumes that only locality zero
    is used.

    This implementation is loosely based on the article "Writing a
    TPM Device Driver" published on http://ptgmedia.pearsoncmg.com

    Compiling this driver with DEBUG defined will generate trace of
    all accesses to TMP registers.

    This driver has been tested and is being used in three different
    functional ChromeOS machines (Pinetrail and Sandy Bridge Intel
    chipsets) all using the same Infineon SLB 9635 TT 1.2 device.

    A u-boot cli command allowing access to the TPM was also
    implemented and is being submitted as a second patch.

    Change-Id: I22a33c3e5b2e20eec9557a7621bd463b30389d73
    Signed-off-by: Vadim Bendebury
    CC: Wolfgang Denk

    Vadim Bendebury