Hi Christophe, On 24 August 2015 at 14:20, Christophe Ricard <christophe.ric...@gmail.com> wrote: > Hi Simon, > > I like your updates but i have few comments: > - I believe tpm_tis_i2c should be renamed as tpm_tis_infineon to be aligned > with Linux naming. > Also as there is no standard for i2c for tpm, every vendor does have their > own low level transport protocol. > I believe this is confusing.
Yes agreed, but I thought you had a patch for that so I was planning on picking that up. I haven't checked if it will still apply though, so perhaps it needs a new version. > > - I think atmel tpm driver can be easily move to driver model with this new > tpm class. I would cleanup some few > #ifdef and make the code even clearer. May be i can try to send an update > when sending ST33ZP24 TPM driver ? That would be great! > > Other than that, i looks pretty good. > > Thanks a lot. > Christophe Regards, Simon > > > On 23/08/2015 02:31, Simon Glass wrote: >> >> This series adds driver model support for Trusted Platform Modules (TPMs). >> These have a very simple interface and are configured via the device tree. >> >> Two bus types are supported at present: I2C and LPC (Intel Low-Pin-Count). >> >> Most drivers and users are converted over to driver model. The exception >> is >> the Atmel TPM and its users. >> >> The I2C driver has been cleaned up and simplified. It was ported from >> Linux >> and was pretty hard to follow. This series includes patches to unify the >> code, remove duplicated data structures and drop unnecessary indirection. >> >> Also this series enables the TPM on all Chromebooks supported by upstream >> U-Boot (snow, spring, nyan-big, pit, pi, link, panther) since some did not >> have it fully enabled. >> >> As before, the 'tpm' command can be used to implement TPM functionality. >> In >> addition a 'tpmtest' command provides some basic TPM tests taken from >> Chrome OS U-Boot. These are fairly rudimentary but are useful if you know >> what you are doing. >> >> Changes in v2: >> - Add a 'TPM' menu in Kconfig >> - Add new patch with a 'tpmtest' command >> - Add new patch with functions to access flags and permissions >> - Add tpm device tree node for panther also >> - Correct error checking code in tpm_sendrecv_command() >> - Correct error-checking code in report_return_code() >> - Enable 'tpmtest' command for nyan >> - Enhance uclass to support timeouts with new send()/recv() methods >> - Implement the get_desc() method >> - Include tpm.h header file instead of tis.h >> - Move the timeout definitions into a new tpm_internal.h header >> - Update cover letter to mention panther and the tpmtest command. >> - Update driver for the new uclass interface >> - Update driver for v2 TPM uclass which supports timeouts >> - Use tpm_ prefix instead of tis_ for TPM functions >> >> Simon Glass (28): >> tpm: Remove old pre-driver-model I2C code >> tpm: Drop two unused options >> tpm: Add Kconfig options for TPMs >> tpm: Convert board config TPM options to Kconfig >> tpm: Convert drivers to use SPDX >> tpm: Move the I2C TPM code into one file >> tpm: tpm_tis_i2c: Drop unnecessary methods >> tpm: tpm_tis_i2c: Drop struct tpm_vendor_specific >> tpm: tpm_tis_i2c: Merge struct tpm_dev into tpm_chip >> tpm: tpm_tis_i2c: Merge struct tpm into tpm_chip >> tpm: tpm_tis_i2c: Move definitions into the header file >> tpm: tpm_tis_i2c: Simplify init code >> tpm: tpm_tis_i2c: Use a consistent tpm_tis_i2c_ prefix >> tpm: tpm_tis_i2c: Tidy up delays >> dm: tpm: Add a uclass for Trusted Platform Modules >> dm: tpm: Convert the TPM command and library to driver model >> dm: i2c: Add a command to adjust the offset length >> tpm: Report tpm errors on the command line >> dm: tpm: sandbox: Convert TPM driver to driver model >> tpm: Check that parse_byte_string() has data to parse >> exynos: x86: dts: Add tpm nodes to the device tree for Chrome OS >> devices >> dm: tpm: Convert I2C driver to driver model >> dm: tpm: Convert LPC driver to driver model >> tpm: Add a 'tpm info' command >> tpm: Add functions to access flags and permissions >> dm: tpm: Add a 'tpmtest' command >> tpm: Enable 'tpmtest' command for Chrome OS boards with TPMs >> tegra: nyan: Enable TPM command and driver >> >> README | 6 - >> arch/arm/dts/exynos5250-snow.dts | 9 + >> arch/arm/dts/exynos5250-spring.dts | 8 + >> arch/arm/dts/exynos5420-peach-pit.dts | 6 +- >> arch/arm/dts/exynos5800-peach-pi.dts | 6 +- >> arch/sandbox/dts/sandbox.dts | 4 + >> arch/x86/dts/chromebook_link.dts | 5 + >> arch/x86/dts/chromebox_panther.dts | 5 + >> common/Kconfig | 22 + >> common/Makefile | 1 + >> common/cmd_i2c.c | 33 + >> common/cmd_tpm.c | 100 ++- >> common/cmd_tpm_test.c | 565 >> +++++++++++++++++ >> configs/chromebook_link_defconfig | 5 + >> configs/chromebox_panther_defconfig | 5 + >> .../controlcenterd_36BIT_SDCARD_DEVELOP_defconfig | 4 + >> configs/controlcenterd_36BIT_SDCARD_defconfig | 4 + >> .../controlcenterd_TRAILBLAZER_DEVELOP_defconfig | 4 + >> configs/controlcenterd_TRAILBLAZER_defconfig | 4 + >> configs/coreboot-x86_defconfig | 5 + >> configs/nyan-big_defconfig | 5 + >> configs/peach-pi_defconfig | 5 + >> configs/peach-pit_defconfig | 5 + >> configs/sandbox_defconfig | 4 + >> configs/snow_defconfig | 5 + >> configs/spring_defconfig | 5 + >> drivers/tpm/Kconfig | 69 ++ >> drivers/tpm/Makefile | 4 +- >> drivers/tpm/tpm-uclass.c | 133 ++++ >> drivers/tpm/tpm.c | 694 >> --------------------- >> drivers/tpm/tpm_atmel_twi.c | 15 +- >> drivers/tpm/tpm_internal.h | 287 +++++++++ >> drivers/tpm/tpm_tis_i2c.c | 572 >> ++++++++--------- >> drivers/tpm/{tpm_private.h => tpm_tis_i2c.h} | 88 +-- >> drivers/tpm/tpm_tis_lpc.c | 290 ++++----- >> drivers/tpm/tpm_tis_sandbox.c | 57 +- >> include/configs/controlcenterd.h | 7 - >> include/configs/efi-x86.h | 2 - >> include/configs/exynos5-common.h | 7 - >> include/configs/x86-common.h | 2 - >> include/dm/uclass-id.h | 1 + >> include/fdtdec.h | 2 - >> include/tis.h | 3 + >> include/tpm.h | 243 +++++++- >> lib/Kconfig | 10 + >> lib/fdtdec.c | 2 - >> lib/tpm.c | 82 ++- >> 47 files changed, 2102 insertions(+), 1298 deletions(-) >> create mode 100644 common/cmd_tpm_test.c >> create mode 100644 drivers/tpm/tpm-uclass.c >> delete mode 100644 drivers/tpm/tpm.c >> create mode 100644 drivers/tpm/tpm_internal.h >> rename drivers/tpm/{tpm_private.h => tpm_tis_i2c.h} (54%) >> > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot