[PATCH v2 06/10] configs: chromebook_coral: Build TPMV1 library routines

Simon Glass sjg at chromium.org
Wed Mar 2 16:32:24 CET 2022


Hi Sughosh,

On Tue, 1 Mar 2022 at 21:50, Sughosh Ganu <sughosh.ganu at linaro.org> wrote:
>
> hi Simon,
>
> On Tue, 1 Mar 2022 at 20:29, Simon Glass <sjg at chromium.org> wrote:
> >
> > Hi Sughosh,
> >
> > On Mon, 28 Feb 2022 at 05:07, Sughosh Ganu <sughosh.ganu at linaro.org> wrote:
> > >
> > > The TPM code currently does a runtime detection of the TPM version and
> > > calls appropriate functions. Chromebook Coral is one of the platforms
> > > where the TPMV1 code is disabled at build time. With this, calling TPM
> > > api's from the TPM uclass driver results in link errors. Enable TPMV1
> > > library routines and determine the TPM version at runtime like other
> > > platforms.
> > >
> > > Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
> > > ---
> > >
> > > Changes since V1: None
> > >
> > >  configs/chromebook_coral_defconfig | 1 -
> > >  1 file changed, 1 deletion(-)
> > >
> > > diff --git a/configs/chromebook_coral_defconfig b/configs/chromebook_coral_defconfig
> > > index 0cd8f39aa3..4704ce25c8 100644
> > > --- a/configs/chromebook_coral_defconfig
> > > +++ b/configs/chromebook_coral_defconfig
> > > @@ -104,7 +104,6 @@ CONFIG_SPI=y
> > >  CONFIG_ICH_SPI=y
> > >  # CONFIG_SYSINFO_SMBIOS is not set
> > >  CONFIG_TPL_SYSRESET=y
> > > -# CONFIG_TPM_V1 is not set
> > >  CONFIG_TPM2_CR50_I2C=y
> > >  CONFIG_USB_XHCI_HCD=y
> > >  CONFIG_USB_STORAGE=y
> > > --
> > > 2.25.1
> >
> > This board does not have a v1 TPM so we don't want to waste code space
> > adding it.
>
> Yes, but because the version detection is happening at runtime, we
> need both the files to be compiled if we call any of the tpm api from
> outside lib/tpm. When I call the tpm_startup function from the
> child_pre_probe callback in tpm-uclass.c, I get link errors for the
> TPM v2 functions. Similarly for Gazerbeam board.
>
> >
> > The current code works fine and supports both a build-time and
> > run-time check. What has gone wrong?
>
> Does not work when an api is called from the tpm uclass driver.

OK, I see, then the tpm_is_v1() functions need to stay in the header
file, to fix that.

Regards,
Simon


More information about the U-Boot mailing list