[PATCH 2/2] tpm2: Add a TPMv2 MMIO TIS driver

Simon Glass sjg at chromium.org
Wed Jul 14 04:49:21 CEST 2021


Hi Ilias,

On Tue, 13 Jul 2021 at 14:11, Ilias Apalodimas
<ilias.apalodimas at linaro.org> wrote:
>
>
> [...]
> > > > Should be a uclass interface.
> > > >
> > >
> > > Why? A uclass is supposed to describe and abstract hardware.  This is just
> > > a specific implementation of a TPM, not all TPMs are TIS compliant. We already
> > > have a uclass for those.
> >
> > Who told you that a uclass is supposed to describe and abstract hardware? :-)
> >
>
> That's what I've mostly seen it used for, maybe i got the idea wrong.

A uclass is basically a software construct. It is an interface between
clients and the driver, typically. Quite often the uclass is an
interface on top of the hardware (actually the driver). But quite
often it is not. For example, we use an GPIO uclass to access a pmic's
GPIOs, we use an I2C uclass to access the cros_ec I2C tunnel. Anywhere
where it makes sense to have an abstraction, we use a uclass.

>
> > The uclass is how driver model does APIs, so normally a uclass would
> > be used for any API. There are exceptions, but this one actually looks
> > like a useful interface we should have.
> >
>
> the point is we already have a uclass for tpm devices.  So why should the
> we add another one that just describes the TIS interface?

You have already added another API, right? All we are discussing is
whether it should be a uclass or not. Unless there is a very good
reason, we should avoid creating custom interfaces that don't use
driver model. I actually think the interface you've created (MMIO)
will be very useful as a uclass.

[..]

Regards,
Simon


More information about the U-Boot mailing list