[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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




> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxx
> [mailto:xen-devel-bounces@xxxxxxxxxxxxx] On Behalf Of Wei Liu
> Sent: Monday, January 05, 2015 8:57 PM
> To: Xu, Quan
> Cc: wei.liu2@xxxxxxxxxx; ian.campbell@xxxxxxxxxx;
> stefano.stabellini@xxxxxxxxxxxxx; ian.jackson@xxxxxxxxxxxxx;
> xen-devel@xxxxxxxxxxxxx; 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 <quan.xu@xxxxxxxxx>
> > ---
> >  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/10000);
> >
> > -        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,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@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.