RE: [char-misc-next 2/2] mei: send OS type to the FW

From: Winkler, Tomas
Date: Thu Nov 10 2016 - 07:02:18 EST




> -----Original Message-----
> From: Greg Kroah-Hartman [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> Sent: Thursday, November 10, 2016 09:23
> To: Winkler, Tomas <tomas.winkler@xxxxxxxxx>
> Cc: Usyskin, Alexander <alexander.usyskin@xxxxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
> Subject: Re: [char-misc-next 2/2] mei: send OS type to the FW
>
> On Tue, Nov 08, 2016 at 06:26:09PM +0200, Tomas Winkler wrote:
> > From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
> >
> > Tell the FW that we are running a sane OS and TPM2_ChangeEPS() is
> > supported. This workaround was added to support other broken OS and we
> > need to follow here. The command is sent just once at the boot time.
> >
> > Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
> > Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> > Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
> > ---
> > drivers/misc/mei/bus-fixup.c | 98
> > ++++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 98 insertions(+)
> >
> > diff --git a/drivers/misc/mei/bus-fixup.c
> > b/drivers/misc/mei/bus-fixup.c index 9e10d86e3887..344a0c99ee44 100644
> > --- a/drivers/misc/mei/bus-fixup.c
> > +++ b/drivers/misc/mei/bus-fixup.c
> > @@ -38,6 +38,9 @@ static const uuid_le mei_nfc_info_guid =
> > MEI_UUID_NFC_INFO; #define MEI_UUID_WD UUID_LE(0x05B79A6F,
> 0x4628, 0x4D7F, \
> > 0x89, 0x9D, 0xA9, 0x15, 0x14, 0xCB, 0x32, 0xAB)
> >
> > +#define MEI_UUID_MKHIF_FIX UUID_LE(0x55213584, 0x9a29, 0x4916, \
> > + 0xba, 0xdf, 0xf, 0xb7, 0xed, 0x68, 0x2a, 0xeb)
> > +
> > #define MEI_UUID_ANY NULL_UUID_LE
> >
> > /**
> > @@ -69,6 +72,100 @@ static void blacklist(struct mei_cl_device *cldev)
> > cldev->do_match = 0;
> > }
> >
> > +#define OSTYPE_LINUX 2
> > +struct mei_os_ver {
> > + u16 build;
> > + u16 reserved1;
>
> Don't you need to specify the endian-type of these (well for build), as they get
> written to hardware?

This is really x86 stuff only (depends on X86), the device lives in PCH or SoC, you cannot really plug it into PowerPC. So we are consciously not using endian-types in the HW interface.
Thanks
Tomas