[PATCH] acpi: tpm: Add missing device identification objects

Stefan Berger posted 1 patch 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211109003733.3177378-1-stefanb@linux.vnet.ibm.com
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Ani Sinha <ani@anisinha.ca>, Eduardo Habkost <ehabkost@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Igor Mammedov <imammedo@redhat.com>, Shannon Zhao <shannon.zhaosl@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
There is a newer version of this series
hw/arm/virt-acpi-build.c | 1 +
hw/i386/acpi-build.c     | 4 ++++
2 files changed, 5 insertions(+)
[PATCH] acpi: tpm: Add missing device identification objects
Posted by Stefan Berger 2 years, 6 months ago
Add missing device identification objects _STR and _UID. They will appear
as files 'description' and 'uid' under Linux sysfs.

Cc: Shannon Zhao <shannon.zhaosl@gmail.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Ani Sinha <ani@anisinha.ca>
Fixes: #708
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
---
 hw/arm/virt-acpi-build.c | 1 +
 hw/i386/acpi-build.c     | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 674f902652..09456424aa 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -228,6 +228,7 @@ static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms)
 
     Aml *dev = aml_device("TPM0");
     aml_append(dev, aml_name_decl("_HID", aml_string("MSFT0101")));
+    aml_append(dev, aml_name_decl("_STR", aml_string("TPM 2.0 Device")));
     aml_append(dev, aml_name_decl("_UID", aml_int(0)));
 
     Aml *crs = aml_resource_template();
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index a3ad6abd33..d6d3541407 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1808,6 +1808,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
                     dev = aml_device("TPM");
                     aml_append(dev, aml_name_decl("_HID",
                                                   aml_string("MSFT0101")));
+                    aml_append(dev,
+                               aml_name_decl("_STR",
+                                             aml_string("TPM 2.0 Device")));
+                    aml_append(dev, aml_name_decl("_UID", aml_int(0)));
                 } else {
                     dev = aml_device("ISA.TPM");
                     aml_append(dev, aml_name_decl("_HID",
-- 
2.31.1


Re: [PATCH] acpi: tpm: Add missing device identification objects
Posted by Marc-André Lureau 2 years, 6 months ago
On Tue, Nov 9, 2021 at 4:37 AM Stefan Berger <stefanb@linux.vnet.ibm.com> wrote:
>
> Add missing device identification objects _STR and _UID. They will appear
> as files 'description' and 'uid' under Linux sysfs.
>
> Cc: Shannon Zhao <shannon.zhaosl@gmail.com>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Igor Mammedov <imammedo@redhat.com>
> Cc: Ani Sinha <ani@anisinha.ca>
> Fixes: #708
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

(on my host, for some reason the UID is 1, does this matter?)

> ---
>  hw/arm/virt-acpi-build.c | 1 +
>  hw/i386/acpi-build.c     | 4 ++++
>  2 files changed, 5 insertions(+)
>
> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
> index 674f902652..09456424aa 100644
> --- a/hw/arm/virt-acpi-build.c
> +++ b/hw/arm/virt-acpi-build.c
> @@ -228,6 +228,7 @@ static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms)
>
>      Aml *dev = aml_device("TPM0");
>      aml_append(dev, aml_name_decl("_HID", aml_string("MSFT0101")));
> +    aml_append(dev, aml_name_decl("_STR", aml_string("TPM 2.0 Device")));
>      aml_append(dev, aml_name_decl("_UID", aml_int(0)));
>
>      Aml *crs = aml_resource_template();
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index a3ad6abd33..d6d3541407 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1808,6 +1808,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
>                      dev = aml_device("TPM");
>                      aml_append(dev, aml_name_decl("_HID",
>                                                    aml_string("MSFT0101")));
> +                    aml_append(dev,
> +                               aml_name_decl("_STR",
> +                                             aml_string("TPM 2.0 Device")));
> +                    aml_append(dev, aml_name_decl("_UID", aml_int(0)));
>                  } else {
>                      dev = aml_device("ISA.TPM");
>                      aml_append(dev, aml_name_decl("_HID",
> --
> 2.31.1
>


Re: [PATCH] acpi: tpm: Add missing device identification objects
Posted by Marc-André Lureau 2 years, 6 months ago
Hi

On Tue, Nov 9, 2021 at 11:25 AM Marc-André Lureau
<marcandre.lureau@redhat.com> wrote:
>
> On Tue, Nov 9, 2021 at 4:37 AM Stefan Berger <stefanb@linux.vnet.ibm.com> wrote:
> >
> > Add missing device identification objects _STR and _UID. They will appear
> > as files 'description' and 'uid' under Linux sysfs.
> >
> > Cc: Shannon Zhao <shannon.zhaosl@gmail.com>
> > Cc: Michael S. Tsirkin <mst@redhat.com>
> > Cc: Igor Mammedov <imammedo@redhat.com>
> > Cc: Ani Sinha <ani@anisinha.ca>
> > Fixes: #708
> > Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
>
> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> (on my host, for some reason the UID is 1, does this matter?)

And shouldn't this be done also for TIS device?

>
> > ---
> >  hw/arm/virt-acpi-build.c | 1 +
> >  hw/i386/acpi-build.c     | 4 ++++
> >  2 files changed, 5 insertions(+)
> >
> > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
> > index 674f902652..09456424aa 100644
> > --- a/hw/arm/virt-acpi-build.c
> > +++ b/hw/arm/virt-acpi-build.c
> > @@ -228,6 +228,7 @@ static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms)
> >
> >      Aml *dev = aml_device("TPM0");
> >      aml_append(dev, aml_name_decl("_HID", aml_string("MSFT0101")));
> > +    aml_append(dev, aml_name_decl("_STR", aml_string("TPM 2.0 Device")));
> >      aml_append(dev, aml_name_decl("_UID", aml_int(0)));
> >
> >      Aml *crs = aml_resource_template();
> > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > index a3ad6abd33..d6d3541407 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -1808,6 +1808,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> >                      dev = aml_device("TPM");
> >                      aml_append(dev, aml_name_decl("_HID",
> >                                                    aml_string("MSFT0101")));
> > +                    aml_append(dev,
> > +                               aml_name_decl("_STR",
> > +                                             aml_string("TPM 2.0 Device")));
> > +                    aml_append(dev, aml_name_decl("_UID", aml_int(0)));
> >                  } else {
> >                      dev = aml_device("ISA.TPM");
> >                      aml_append(dev, aml_name_decl("_HID",
> > --
> > 2.31.1
> >


Re: [PATCH] acpi: tpm: Add missing device identification objects
Posted by Stefan Berger 2 years, 6 months ago
On 11/9/21 02:30, Marc-André Lureau wrote:
> Hi
>
> On Tue, Nov 9, 2021 at 11:25 AM Marc-André Lureau
> <marcandre.lureau@redhat.com> wrote:
>> On Tue, Nov 9, 2021 at 4:37 AM Stefan Berger <stefanb@linux.vnet.ibm.com> wrote:
>>> Add missing device identification objects _STR and _UID. They will appear
>>> as files 'description' and 'uid' under Linux sysfs.
>>>
>>> Cc: Shannon Zhao <shannon.zhaosl@gmail.com>
>>> Cc: Michael S. Tsirkin <mst@redhat.com>
>>> Cc: Igor Mammedov <imammedo@redhat.com>
>>> Cc: Ani Sinha <ani@anisinha.ca>
>>> Fixes: #708
>>> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
>> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>
>> (on my host, for some reason the UID is 1, does this matter?)

Let's make it '1'. My TPM 1.2 machine shows also '1'.

specs:

"6.1.12 _UID (Unique ID)
This object provides OSPM with a logical device ID that does not change 
across reboots. This object is
optional, but is required when the device has no other way to report a 
persistent unique device ID. The
_UID must be unique across all devices with either a common _HID or 
_CID. [...]"


> And shouldn't this be done also for TIS device?

Fixed. It was missing for the CRB device.

Thanks.

   Stefan

>
>>> ---
>>>   hw/arm/virt-acpi-build.c | 1 +
>>>   hw/i386/acpi-build.c     | 4 ++++
>>>   2 files changed, 5 insertions(+)
>>>
>>> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
>>> index 674f902652..09456424aa 100644
>>> --- a/hw/arm/virt-acpi-build.c
>>> +++ b/hw/arm/virt-acpi-build.c
>>> @@ -228,6 +228,7 @@ static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms)
>>>
>>>       Aml *dev = aml_device("TPM0");
>>>       aml_append(dev, aml_name_decl("_HID", aml_string("MSFT0101")));
>>> +    aml_append(dev, aml_name_decl("_STR", aml_string("TPM 2.0 Device")));
>>>       aml_append(dev, aml_name_decl("_UID", aml_int(0)));
>>>
>>>       Aml *crs = aml_resource_template();
>>> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>>> index a3ad6abd33..d6d3541407 100644
>>> --- a/hw/i386/acpi-build.c
>>> +++ b/hw/i386/acpi-build.c
>>> @@ -1808,6 +1808,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
>>>                       dev = aml_device("TPM");
>>>                       aml_append(dev, aml_name_decl("_HID",
>>>                                                     aml_string("MSFT0101")));
>>> +                    aml_append(dev,
>>> +                               aml_name_decl("_STR",
>>> +                                             aml_string("TPM 2.0 Device")));
>>> +                    aml_append(dev, aml_name_decl("_UID", aml_int(0)));
>>>                   } else {
>>>                       dev = aml_device("ISA.TPM");
>>>                       aml_append(dev, aml_name_decl("_HID",
>>> --
>>> 2.31.1
>>>