linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] acpi: update struct acpi_table_tpm2
@ 2015-06-08 13:38 Jarkko Sakkinen
  2015-06-08 20:52 ` Moore, Robert
  0 siblings, 1 reply; 10+ messages in thread
From: Jarkko Sakkinen @ 2015-06-08 13:38 UTC (permalink / raw)
  To: robert.moore
  Cc: Jarkko Sakkinen, Lv Zheng, Rafael J. Wysocki, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

Updated struct acpi_table_tpm2 to conform to the official TCG ACPI
spec.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 include/acpi/actbl3.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h
index 440ca81..33df1dd 100644
--- a/include/acpi/actbl3.h
+++ b/include/acpi/actbl3.h
@@ -688,13 +688,14 @@ enum acpi_rasf_status {
  * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
  *        Version 3
  *
- * Conforms to "TPM 2.0 Hardware Interface Table (TPM2)" 29 November 2011
+ * Conforms to "TCG ACPI Specification for Family 1.2 and 2.0" 19 December 2014
  *
  ******************************************************************************/
 
 struct acpi_table_tpm2 {
 	struct acpi_table_header header;	/* Common ACPI table header */
-	u32 flags;
+	u16 platform_class;
+	u16 reserved;
 	u64 control_address;
 	u32 start_method;
 };
-- 
2.1.4


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* RE: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-08 13:38 [PATCH] acpi: update struct acpi_table_tpm2 Jarkko Sakkinen
@ 2015-06-08 20:52 ` Moore, Robert
  2015-06-09  9:17   ` Jarkko Sakkinen
  0 siblings, 1 reply; 10+ messages in thread
From: Moore, Robert @ 2015-06-08 20:52 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

It looks like there is a change to the TCPA table also.


> -----Original Message-----
> From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> Sent: Monday, June 08, 2015 6:38 AM
> To: Moore, Robert
> Cc: Jarkko Sakkinen; Zheng, Lv; Wysocki, Rafael J; Len Brown; open
> list:ACPI COMPONENT AR...; open list:ACPI COMPONENT AR...; open list
> Subject: [PATCH] acpi: update struct acpi_table_tpm2
> 
> Updated struct acpi_table_tpm2 to conform to the official TCG ACPI spec.
> 
> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> ---
>  include/acpi/actbl3.h | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h index
> 440ca81..33df1dd 100644
> --- a/include/acpi/actbl3.h
> +++ b/include/acpi/actbl3.h
> @@ -688,13 +688,14 @@ enum acpi_rasf_status {
>   * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
>   *        Version 3
>   *
> - * Conforms to "TPM 2.0 Hardware Interface Table (TPM2)" 29 November 2011
> + * Conforms to "TCG ACPI Specification for Family 1.2 and 2.0" 19
> + December 2014
>   *
> 
> **************************************************************************
> ****/
> 
>  struct acpi_table_tpm2 {
>  	struct acpi_table_header header;	/* Common ACPI table header */
> -	u32 flags;
> +	u16 platform_class;
> +	u16 reserved;
>  	u64 control_address;
>  	u32 start_method;
>  };
> --
> 2.1.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-08 20:52 ` Moore, Robert
@ 2015-06-09  9:17   ` Jarkko Sakkinen
  2015-06-09 14:21     ` Moore, Robert
  0 siblings, 1 reply; 10+ messages in thread
From: Jarkko Sakkinen @ 2015-06-09  9:17 UTC (permalink / raw)
  To: Moore, Robert
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

On Mon, Jun 08, 2015 at 08:52:02PM +0000, Moore, Robert wrote:
> It looks like there is a change to the TCPA table also.

Right. I'll update that too.

I strongly think that the struct acpi_tpm2_control should not be in
actbl3.h. It is not defined in the TCG ACPI specification. It is
defined in

http://www.trustedcomputinggroup.org/resources/pc_client_platform_tpm_profile_ptp_specification

FIFO control structures are internal for to the TPM subsystem and so
should be CRB control structures (and we have already inside tpm_crb.c).

The structure ended up there probably because it was combined with the
TPM2 table in that Microsoft specification.

/Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09  9:17   ` Jarkko Sakkinen
@ 2015-06-09 14:21     ` Moore, Robert
  2015-06-09 15:19       ` Jarkko Sakkinen
  0 siblings, 1 reply; 10+ messages in thread
From: Moore, Robert @ 2015-06-09 14:21 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

ACPICA usually defines any "related" data structures, just for user convenience.

> -----Original Message-----
> From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> Sent: Tuesday, June 09, 2015 2:18 AM
> To: Moore, Robert
> Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI COMPONENT
> AR...; open list:ACPI COMPONENT AR...; open list
> Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> 
> On Mon, Jun 08, 2015 at 08:52:02PM +0000, Moore, Robert wrote:
> > It looks like there is a change to the TCPA table also.
> 
> Right. I'll update that too.
> 
> I strongly think that the struct acpi_tpm2_control should not be in
> actbl3.h. It is not defined in the TCG ACPI specification. It is defined
> in
> 
> http://www.trustedcomputinggroup.org/resources/pc_client_platform_tpm_prof
> ile_ptp_specification
> 
> FIFO control structures are internal for to the TPM subsystem and so
> should be CRB control structures (and we have already inside tpm_crb.c).
> 
> The structure ended up there probably because it was combined with the
> TPM2 table in that Microsoft specification.
> 
> /Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09 14:21     ` Moore, Robert
@ 2015-06-09 15:19       ` Jarkko Sakkinen
  2015-06-09 15:42         ` Jarkko Sakkinen
  2015-06-09 16:16         ` Moore, Robert
  0 siblings, 2 replies; 10+ messages in thread
From: Jarkko Sakkinen @ 2015-06-09 15:19 UTC (permalink / raw)
  To: Moore, Robert
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

On Tue, Jun 09, 2015 at 02:21:12PM +0000, Moore, Robert wrote:
> ACPICA usually defines any "related" data structures, just for user
> convenience.

If you want to keep it, it's fine for me but we still probably use the
internal structure for it in tpm_crb driver (as tpm_tis uses internal
structure for CRB).

Do other updates look fine? I'm looking into migrating to tpm_crb driver
to use actbl3.h.

/Jarkko

> 
> > -----Original Message-----
> > From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> > Sent: Tuesday, June 09, 2015 2:18 AM
> > To: Moore, Robert
> > Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI COMPONENT
> > AR...; open list:ACPI COMPONENT AR...; open list
> > Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> > 
> > On Mon, Jun 08, 2015 at 08:52:02PM +0000, Moore, Robert wrote:
> > > It looks like there is a change to the TCPA table also.
> > 
> > Right. I'll update that too.
> > 
> > I strongly think that the struct acpi_tpm2_control should not be in
> > actbl3.h. It is not defined in the TCG ACPI specification. It is defined
> > in
> > 
> > http://www.trustedcomputinggroup.org/resources/pc_client_platform_tpm_prof
> > ile_ptp_specification
> > 
> > FIFO control structures are internal for to the TPM subsystem and so
> > should be CRB control structures (and we have already inside tpm_crb.c).
> > 
> > The structure ended up there probably because it was combined with the
> > TPM2 table in that Microsoft specification.
> > 
> > /Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09 15:19       ` Jarkko Sakkinen
@ 2015-06-09 15:42         ` Jarkko Sakkinen
  2015-06-09 16:12           ` Moore, Robert
  2015-06-09 16:16         ` Moore, Robert
  1 sibling, 1 reply; 10+ messages in thread
From: Jarkko Sakkinen @ 2015-06-09 15:42 UTC (permalink / raw)
  To: Moore, Robert
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

On Tue, Jun 09, 2015 at 06:19:19PM +0300, Jarkko Sakkinen wrote:
> On Tue, Jun 09, 2015 at 02:21:12PM +0000, Moore, Robert wrote:
> > ACPICA usually defines any "related" data structures, just for user
> > convenience.
> 
> If you want to keep it, it's fine for me but we still probably use the
> internal structure for it in tpm_crb driver (as tpm_tis uses internal
> structure for CRB).

Let me open this a little bit. Everytime we want to do some small change to
control area (lets say TCG adds some flag) we would have to cycle them
through you.

And the changes are not coupled with ACPI in any possible way. This is
only adds more maintenance burden to you and also to us. This structure
is the main control structure for the CRB driver and will be refined
many times in the future. There is no any kind of use to its fields
outside of the CRB driver.

/Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09 15:42         ` Jarkko Sakkinen
@ 2015-06-09 16:12           ` Moore, Robert
  2015-06-09 16:13             ` Jarkko Sakkinen
  0 siblings, 1 reply; 10+ messages in thread
From: Moore, Robert @ 2015-06-09 16:12 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

Well, you don't have to use it. ACPICA has done this in several other places. Anyway, I'm hesitant to just remove it at this point.


> -----Original Message-----
> From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> Sent: Tuesday, June 09, 2015 8:43 AM
> To: Moore, Robert
> Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI COMPONENT
> AR...; open list:ACPI COMPONENT AR...; open list
> Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> 
> On Tue, Jun 09, 2015 at 06:19:19PM +0300, Jarkko Sakkinen wrote:
> > On Tue, Jun 09, 2015 at 02:21:12PM +0000, Moore, Robert wrote:
> > > ACPICA usually defines any "related" data structures, just for user
> > > convenience.
> >
> > If you want to keep it, it's fine for me but we still probably use the
> > internal structure for it in tpm_crb driver (as tpm_tis uses internal
> > structure for CRB).
> 
> Let me open this a little bit. Everytime we want to do some small change
> to control area (lets say TCG adds some flag) we would have to cycle them
> through you.
> 
> And the changes are not coupled with ACPI in any possible way. This is
> only adds more maintenance burden to you and also to us. This structure is
> the main control structure for the CRB driver and will be refined many
> times in the future. There is no any kind of use to its fields outside of
> the CRB driver.
> 
> /Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09 16:12           ` Moore, Robert
@ 2015-06-09 16:13             ` Jarkko Sakkinen
  0 siblings, 0 replies; 10+ messages in thread
From: Jarkko Sakkinen @ 2015-06-09 16:13 UTC (permalink / raw)
  To: Moore, Robert
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

On Tue, Jun 09, 2015 at 04:12:52PM +0000, Moore, Robert wrote:
> Well, you don't have to use it. ACPICA has done this in several other
> places. Anyway, I'm hesitant to just remove it at this point.

OK, understood. I'll send you an updated patch without the removal.

/Jarkko

> > -----Original Message-----
> > From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> > Sent: Tuesday, June 09, 2015 8:43 AM
> > To: Moore, Robert
> > Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI COMPONENT
> > AR...; open list:ACPI COMPONENT AR...; open list
> > Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> > 
> > On Tue, Jun 09, 2015 at 06:19:19PM +0300, Jarkko Sakkinen wrote:
> > > On Tue, Jun 09, 2015 at 02:21:12PM +0000, Moore, Robert wrote:
> > > > ACPICA usually defines any "related" data structures, just for user
> > > > convenience.
> > >
> > > If you want to keep it, it's fine for me but we still probably use the
> > > internal structure for it in tpm_crb driver (as tpm_tis uses internal
> > > structure for CRB).
> > 
> > Let me open this a little bit. Everytime we want to do some small change
> > to control area (lets say TCG adds some flag) we would have to cycle them
> > through you.
> > 
> > And the changes are not coupled with ACPI in any possible way. This is
> > only adds more maintenance burden to you and also to us. This structure is
> > the main control structure for the CRB driver and will be refined many
> > times in the future. There is no any kind of use to its fields outside of
> > the CRB driver.
> > 
> > /Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09 15:19       ` Jarkko Sakkinen
  2015-06-09 15:42         ` Jarkko Sakkinen
@ 2015-06-09 16:16         ` Moore, Robert
  2015-06-09 16:33           ` Jarkko Sakkinen
  1 sibling, 1 reply; 10+ messages in thread
From: Moore, Robert @ 2015-06-09 16:16 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

Looking at the TCG ACPI Specification today, it looks like there are major changes to the TCPA table. There is a whole bunch of new stuff after the Log Area Start Address.

Perhaps I missed or didn't get part of your proposed change.


> -----Original Message-----
> From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> Sent: Tuesday, June 09, 2015 8:19 AM
> To: Moore, Robert
> Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI COMPONENT
> AR...; open list:ACPI COMPONENT AR...; open list
> Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> 
> On Tue, Jun 09, 2015 at 02:21:12PM +0000, Moore, Robert wrote:
> > ACPICA usually defines any "related" data structures, just for user
> > convenience.
> 
> If you want to keep it, it's fine for me but we still probably use the
> internal structure for it in tpm_crb driver (as tpm_tis uses internal
> structure for CRB).
> 
> Do other updates look fine? I'm looking into migrating to tpm_crb driver
> to use actbl3.h.
> 
> /Jarkko
> 
> >
> > > -----Original Message-----
> > > From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> > > Sent: Tuesday, June 09, 2015 2:18 AM
> > > To: Moore, Robert
> > > Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI
> > > COMPONENT AR...; open list:ACPI COMPONENT AR...; open list
> > > Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> > >
> > > On Mon, Jun 08, 2015 at 08:52:02PM +0000, Moore, Robert wrote:
> > > > It looks like there is a change to the TCPA table also.
> > >
> > > Right. I'll update that too.
> > >
> > > I strongly think that the struct acpi_tpm2_control should not be in
> > > actbl3.h. It is not defined in the TCG ACPI specification. It is
> > > defined in
> > >
> > > http://www.trustedcomputinggroup.org/resources/pc_client_platform_tp
> > > m_prof
> > > ile_ptp_specification
> > >
> > > FIFO control structures are internal for to the TPM subsystem and so
> > > should be CRB control structures (and we have already inside
> tpm_crb.c).
> > >
> > > The structure ended up there probably because it was combined with
> > > the
> > > TPM2 table in that Microsoft specification.
> > >
> > > /Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] acpi: update struct acpi_table_tpm2
  2015-06-09 16:16         ` Moore, Robert
@ 2015-06-09 16:33           ` Jarkko Sakkinen
  0 siblings, 0 replies; 10+ messages in thread
From: Jarkko Sakkinen @ 2015-06-09 16:33 UTC (permalink / raw)
  To: Moore, Robert
  Cc: Zheng, Lv, Wysocki, Rafael J, Len Brown,
	open list:ACPI COMPONENT AR..., open list:ACPI COMPONENT AR...,
	open list

On Tue, Jun 09, 2015 at 04:16:14PM +0000, Moore, Robert wrote:
> Looking at the TCG ACPI Specification today, it looks like there are
> major changes to the TCPA table. There is a whole bunch of new stuff
> after the Log Area Start Address.
> 
> Perhaps I missed or didn't get part of your proposed change.

I was looking only at the client TCPA table so it was my bad. The client
table has only the change that I did in the patch. I'm myself focused
towards TPM 2.0 work.

If you look at very old specification version:

https://www.trustedcomputinggroup.org/files/temp/6453AF78-1D09-3519-AD74028427486A3B/Server%20TCG_ACPIGeneralSpecification.pdf

You see that there is also a server TCPA with a lot more fields that we
have. If the need hasn't rised for those fields since 2005, I would not
add them unless there is a real use case.

If you seriously want those fields to be part of the patch, I can do a
struct for server TCPA but I don't think there will be value for it.


/Jarkko

> > -----Original Message-----
> > From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> > Sent: Tuesday, June 09, 2015 8:19 AM
> > To: Moore, Robert
> > Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI COMPONENT
> > AR...; open list:ACPI COMPONENT AR...; open list
> > Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> > 
> > On Tue, Jun 09, 2015 at 02:21:12PM +0000, Moore, Robert wrote:
> > > ACPICA usually defines any "related" data structures, just for user
> > > convenience.
> > 
> > If you want to keep it, it's fine for me but we still probably use the
> > internal structure for it in tpm_crb driver (as tpm_tis uses internal
> > structure for CRB).
> > 
> > Do other updates look fine? I'm looking into migrating to tpm_crb driver
> > to use actbl3.h.
> > 
> > /Jarkko
> > 
> > >
> > > > -----Original Message-----
> > > > From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
> > > > Sent: Tuesday, June 09, 2015 2:18 AM
> > > > To: Moore, Robert
> > > > Cc: Zheng, Lv; Wysocki, Rafael J; Len Brown; open list:ACPI
> > > > COMPONENT AR...; open list:ACPI COMPONENT AR...; open list
> > > > Subject: Re: [PATCH] acpi: update struct acpi_table_tpm2
> > > >
> > > > On Mon, Jun 08, 2015 at 08:52:02PM +0000, Moore, Robert wrote:
> > > > > It looks like there is a change to the TCPA table also.
> > > >
> > > > Right. I'll update that too.
> > > >
> > > > I strongly think that the struct acpi_tpm2_control should not be in
> > > > actbl3.h. It is not defined in the TCG ACPI specification. It is
> > > > defined in
> > > >
> > > > http://www.trustedcomputinggroup.org/resources/pc_client_platform_tp
> > > > m_prof
> > > > ile_ptp_specification
> > > >
> > > > FIFO control structures are internal for to the TPM subsystem and so
> > > > should be CRB control structures (and we have already inside
> > tpm_crb.c).
> > > >
> > > > The structure ended up there probably because it was combined with
> > > > the
> > > > TPM2 table in that Microsoft specification.
> > > >
> > > > /Jarkko

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-06-09 16:33 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-08 13:38 [PATCH] acpi: update struct acpi_table_tpm2 Jarkko Sakkinen
2015-06-08 20:52 ` Moore, Robert
2015-06-09  9:17   ` Jarkko Sakkinen
2015-06-09 14:21     ` Moore, Robert
2015-06-09 15:19       ` Jarkko Sakkinen
2015-06-09 15:42         ` Jarkko Sakkinen
2015-06-09 16:12           ` Moore, Robert
2015-06-09 16:13             ` Jarkko Sakkinen
2015-06-09 16:16         ` Moore, Robert
2015-06-09 16:33           ` Jarkko Sakkinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).