Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for HVM virtual machine when vTPM is added

2015-01-06 Thread Ian Campbell
On Tue, 2015-01-06 at 15:55 +, Xu, Quan wrote:
> 
> > -Original Message-
> > From: xen-devel-boun...@lists.xen.org
> > [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of Wei Liu
> > Sent: Monday, January 05, 2015 8:57 PM
> > To: Xu, Quan
> > Cc: wei.l...@citrix.com; ian.campb...@citrix.com;
> > stefano.stabell...@eu.citrix.com; ian.jack...@eu.citrix.com;
> > xen-devel@lists.xen.org; Jan Beulich
> > Subject: Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for
> > HVM virtual machine when vTPM is added
> > 
> > You need to CC Jan for hvmloader changes (which I've done for you).
> 
> Thanks. Will CC Jan in v3, also I will CC Jan for SeaBios Patch..
> I did not get 'Jan Beulich' with scripts/get_maintainer.pl, maybe Community 
> should also update it.

With latest xen.git:

$ ./scripts/get_maintainer.pl -f tools/firmware/hvmloader/acpi/build.c
Keir Fraser 
Jan Beulich 
Ian Jackson 
Stefano Stabellini 
Ian Campbell 
Wei Liu 
xen-devel@lists.xen.org

Due to:

commit 5c8dd034f083dbc0cca2ba375a754978f8e25332
Author: Jan Beulich 
Date:   Tue Nov 4 13:15:58 2014 +0100

... as being more like a hypervisor extension into the guest than a
part of the tool stack.

Signed-off-by: Jan Beulich 
Acked-by: Ian Campbell 

missing first line (accidetally missed from actual commit) was:
"MAINTAINERS: move hvmloader to x86"

Ian.


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for HVM virtual machine when vTPM is added

2015-01-06 Thread Xu, Quan


> -Original Message-
> From: xen-devel-boun...@lists.xen.org
> [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of Wei Liu
> Sent: Monday, January 05, 2015 8:57 PM
> To: Xu, Quan
> Cc: wei.l...@citrix.com; ian.campb...@citrix.com;
> stefano.stabell...@eu.citrix.com; ian.jack...@eu.citrix.com;
> xen-devel@lists.xen.org; Jan Beulich
> Subject: Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for
> HVM virtual machine when vTPM is added
> 
> You need to CC Jan for hvmloader changes (which I've done for you).

Thanks. Will CC Jan in v3, also I will CC Jan for SeaBios Patch..
I did not get 'Jan Beulich' with scripts/get_maintainer.pl, maybe Community 
should also update it.


> On Tue, Dec 30, 2014 at 11:45:14PM -0500, Quan Xu wrote:
> > Signed-off-by: Quan Xu 
> > ---
> >  tools/firmware/hvmloader/acpi/build.c | 5 +++--
> >  tools/libxl/libxl_create.c| 5 -
> >  tools/libxl/libxl_types.idl   | 1 +
> >  tools/libxl/xl_cmdimpl.c  | 2 ++
> >  4 files changed, 10 insertions(+), 3 deletions(-)
> >
> > diff --git a/tools/firmware/hvmloader/acpi/build.c
> > b/tools/firmware/hvmloader/acpi/build.c
> > index 1431296..f2aa071 100644
> > --- a/tools/firmware/hvmloader/acpi/build.c
> > +++ b/tools/firmware/hvmloader/acpi/build.c
> > @@ -313,9 +313,10 @@ static int construct_secondary_tables(unsigned
> > long *table_ptrs,
> >
> >  /* TPM TCPA and SSDT. */
> >  tis_hdr = (uint16_t *)0xFED40F00;
> > -if ( (tis_hdr[0] == tis_signature[0]) &&
> > +if ( ((tis_hdr[0] == tis_signature[0]) &&
> >   (tis_hdr[1] == tis_signature[1]) &&
> > - (tis_hdr[2] == tis_signature[2]) )
> > + (tis_hdr[2] == tis_signature[2])) ||
> > + !strncmp(xenstore_read("platform/acpi_stubdom_vtpm", "1"),
> > + "1", 1) )
> >  {
> >  ssdt = mem_alloc(sizeof(ssdt_tpm), 16);
> >  if (!ssdt) return -1;
> > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> > index 0a09925..c6f68fe 100644
> > --- a/tools/libxl/libxl_create.c
> > +++ b/tools/libxl/libxl_create.c
> > @@ -432,7 +432,7 @@ int libxl__domain_build(libxl__gc *gc,
> >  vments[4] = "start_time";
> >  vments[5] = libxl__sprintf(gc, "%lu.%02d",
> > start_time.tv_sec,(int)start_time.tv_usec/1);
> >
> > -localents = libxl__calloc(gc, 9, sizeof(char *));
> > +localents = libxl__calloc(gc, 11, sizeof(char *));
> >  i = 0;
> >  localents[i++] = "platform/acpi";
> >  localents[i++] = libxl_defbool_val(info->u.hvm.acpi) ? "1" :
> > "0"; @@ -440,6 +440,9 @@ int libxl__domain_build(libxl__gc *gc,
> >  localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s3) ? "1" :
> "0";
> >  localents[i++] = "platform/acpi_s4";
> >  localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s4) ? "1"
> > : "0";
> > +localents[i++] = "platform/acpi_stubdom_vtpm";
> > +localents[i++] = (info->num_vtpms > 0) ? "1" : "0";
> > +
> >  if (info->u.hvm.mmio_hole_memkb) {
> >  uint64_t max_ram_below_4g =
> >  (1ULL << 32) - (info->u.hvm.mmio_hole_memkb <<
> 10);
> > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> > index ca3f724..b08b974 100644
> > --- a/tools/libxl/libxl_types.idl
> > +++ b/tools/libxl/libxl_types.idl
> > @@ -379,6 +379,7 @@ libxl_domain_build_info =
> Struct("domain_build_info",[
> >  # if you set device_model you must set device_model_version too
> >  ("device_model", string),
> >  ("device_model_ssidref", uint32),
> > +("num_vtpms", integer),
> 
> Why is this needed? Can you not use d_config->num_vtpms? I.e. this never
> differs from d_config->num_vtpms in your code below...
> 

This parameter is for HVM_PARAM_STUBDOM_VTPM hypercall, which is deleted in v2. 
I should also delete it.
I will do it in v3. Thanks..


Thanks 
Quan 


> Wei.
> 
> >  ("device_model_ssid_label", string),
> >
> >  # extra parameters pass directly to qemu, NULL terminated diff
> > --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index
> > 3c9f146..9c43e88 100644
> > --- a/tools/libxl/xl_cmdimpl.c
> > +++ b/tools/libxl/xl_cmdimpl.c
> > @@ -1414,6 +1414,

Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for HVM virtual machine when vTPM is added

2015-01-05 Thread Wei Liu
You need to CC Jan for hvmloader changes (which I've done for you).

On Tue, Dec 30, 2014 at 11:45:14PM -0500, Quan Xu wrote:
> Signed-off-by: Quan Xu 
> ---
>  tools/firmware/hvmloader/acpi/build.c | 5 +++--
>  tools/libxl/libxl_create.c| 5 -
>  tools/libxl/libxl_types.idl   | 1 +
>  tools/libxl/xl_cmdimpl.c  | 2 ++
>  4 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/firmware/hvmloader/acpi/build.c 
> b/tools/firmware/hvmloader/acpi/build.c
> index 1431296..f2aa071 100644
> --- a/tools/firmware/hvmloader/acpi/build.c
> +++ b/tools/firmware/hvmloader/acpi/build.c
> @@ -313,9 +313,10 @@ static int construct_secondary_tables(unsigned long 
> *table_ptrs,
>  
>  /* TPM TCPA and SSDT. */
>  tis_hdr = (uint16_t *)0xFED40F00;
> -if ( (tis_hdr[0] == tis_signature[0]) &&
> +if ( ((tis_hdr[0] == tis_signature[0]) &&
>   (tis_hdr[1] == tis_signature[1]) &&
> - (tis_hdr[2] == tis_signature[2]) )
> + (tis_hdr[2] == tis_signature[2])) ||
> + !strncmp(xenstore_read("platform/acpi_stubdom_vtpm", "1"), "1", 1) )
>  {
>  ssdt = mem_alloc(sizeof(ssdt_tpm), 16);
>  if (!ssdt) return -1;
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index 0a09925..c6f68fe 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -432,7 +432,7 @@ int libxl__domain_build(libxl__gc *gc,
>  vments[4] = "start_time";
>  vments[5] = libxl__sprintf(gc, "%lu.%02d", 
> start_time.tv_sec,(int)start_time.tv_usec/1);
>  
> -localents = libxl__calloc(gc, 9, sizeof(char *));
> +localents = libxl__calloc(gc, 11, sizeof(char *));
>  i = 0;
>  localents[i++] = "platform/acpi";
>  localents[i++] = libxl_defbool_val(info->u.hvm.acpi) ? "1" : "0";
> @@ -440,6 +440,9 @@ int libxl__domain_build(libxl__gc *gc,
>  localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s3) ? "1" : "0";
>  localents[i++] = "platform/acpi_s4";
>  localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s4) ? "1" : "0";
> +localents[i++] = "platform/acpi_stubdom_vtpm";
> +localents[i++] = (info->num_vtpms > 0) ? "1" : "0";
> +
>  if (info->u.hvm.mmio_hole_memkb) {
>  uint64_t max_ram_below_4g =
>  (1ULL << 32) - (info->u.hvm.mmio_hole_memkb << 10);
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index ca3f724..b08b974 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -379,6 +379,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
>  # if you set device_model you must set device_model_version too
>  ("device_model", string),
>  ("device_model_ssidref", uint32),
> +("num_vtpms", integer),

Why is this needed? Can you not use d_config->num_vtpms? I.e. this never
differs from d_config->num_vtpms in your code below...

Wei.

>  ("device_model_ssid_label", string),
>  
>  # extra parameters pass directly to qemu, NULL terminated
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 3c9f146..9c43e88 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -1414,6 +1414,7 @@ static void parse_config_data(const char *config_source,
>  
>  if (!xlu_cfg_get_list(config, "vtpm", &vtpms, 0, 0)) {
>  d_config->num_vtpms = 0;
> +b_info->num_vtpms = 0;
>  d_config->vtpms = NULL;
>  while ((buf = xlu_cfg_get_listitem (vtpms, d_config->num_vtpms)) != 
> NULL) {
>  libxl_device_vtpm *vtpm;
> @@ -1456,6 +1457,7 @@ static void parse_config_data(const char *config_source,
>  }
>  free(buf2);
>  d_config->num_vtpms++;
> +b_info->num_vtpms++;
>  }
>  }
>  
> -- 
> 1.8.3.2

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for HVM virtual machine when vTPM is added

2014-12-31 Thread Quan Xu
Signed-off-by: Quan Xu 
---
 tools/firmware/hvmloader/acpi/build.c | 5 +++--
 tools/libxl/libxl_create.c| 5 -
 tools/libxl/libxl_types.idl   | 1 +
 tools/libxl/xl_cmdimpl.c  | 2 ++
 4 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/tools/firmware/hvmloader/acpi/build.c 
b/tools/firmware/hvmloader/acpi/build.c
index 1431296..f2aa071 100644
--- a/tools/firmware/hvmloader/acpi/build.c
+++ b/tools/firmware/hvmloader/acpi/build.c
@@ -313,9 +313,10 @@ static int construct_secondary_tables(unsigned long 
*table_ptrs,
 
 /* TPM TCPA and SSDT. */
 tis_hdr = (uint16_t *)0xFED40F00;
-if ( (tis_hdr[0] == tis_signature[0]) &&
+if ( ((tis_hdr[0] == tis_signature[0]) &&
  (tis_hdr[1] == tis_signature[1]) &&
- (tis_hdr[2] == tis_signature[2]) )
+ (tis_hdr[2] == tis_signature[2])) ||
+ !strncmp(xenstore_read("platform/acpi_stubdom_vtpm", "1"), "1", 1) )
 {
 ssdt = mem_alloc(sizeof(ssdt_tpm), 16);
 if (!ssdt) return -1;
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index 0a09925..c6f68fe 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -432,7 +432,7 @@ int libxl__domain_build(libxl__gc *gc,
 vments[4] = "start_time";
 vments[5] = libxl__sprintf(gc, "%lu.%02d", 
start_time.tv_sec,(int)start_time.tv_usec/1);
 
-localents = libxl__calloc(gc, 9, sizeof(char *));
+localents = libxl__calloc(gc, 11, sizeof(char *));
 i = 0;
 localents[i++] = "platform/acpi";
 localents[i++] = libxl_defbool_val(info->u.hvm.acpi) ? "1" : "0";
@@ -440,6 +440,9 @@ int libxl__domain_build(libxl__gc *gc,
 localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s3) ? "1" : "0";
 localents[i++] = "platform/acpi_s4";
 localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s4) ? "1" : "0";
+localents[i++] = "platform/acpi_stubdom_vtpm";
+localents[i++] = (info->num_vtpms > 0) ? "1" : "0";
+
 if (info->u.hvm.mmio_hole_memkb) {
 uint64_t max_ram_below_4g =
 (1ULL << 32) - (info->u.hvm.mmio_hole_memkb << 10);
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index ca3f724..b08b974 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -379,6 +379,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
 # if you set device_model you must set device_model_version too
 ("device_model", string),
 ("device_model_ssidref", uint32),
+("num_vtpms", integer),
 ("device_model_ssid_label", string),
 
 # extra parameters pass directly to qemu, NULL terminated
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 3c9f146..9c43e88 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1414,6 +1414,7 @@ static void parse_config_data(const char *config_source,
 
 if (!xlu_cfg_get_list(config, "vtpm", &vtpms, 0, 0)) {
 d_config->num_vtpms = 0;
+b_info->num_vtpms = 0;
 d_config->vtpms = NULL;
 while ((buf = xlu_cfg_get_listitem (vtpms, d_config->num_vtpms)) != 
NULL) {
 libxl_device_vtpm *vtpm;
@@ -1456,6 +1457,7 @@ static void parse_config_data(const char *config_source,
 }
 free(buf2);
 d_config->num_vtpms++;
+b_info->num_vtpms++;
 }
 }
 
-- 
1.8.3.2


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel