Message ID | 20240405032507.2637311-7-david.e.box@linux.intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Intel On Demand changes | expand |
On 4/4/24 8:25 PM, David E. Box wrote: > Fixes sdsi_meter_cert_show() to correctly decode and display the meter > certificate output. Adds and displays a missing version field, displays the > ASCII name of the signature, and fixes the print alignment. > > Fixes: 7fdc03a7370f ("tools/arch/x86: intel_sdsi: Add support for reading meter certificates") > Signed-off-by: David E. Box <david.e.box@linux.intel.com> > --- Looks good to me. Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> > V3 - Change patch subject and changelog to clarify changes. > - Use new BUNDLE_COUNT #def > > V2 - Split of V1 patch 7 > > tools/arch/x86/intel_sdsi/intel_sdsi.c | 29 +++++++++++++++++--------- > 1 file changed, 19 insertions(+), 10 deletions(-) > > diff --git a/tools/arch/x86/intel_sdsi/intel_sdsi.c b/tools/arch/x86/intel_sdsi/intel_sdsi.c > index 7eaffcbff788..a0711177e1bb 100644 > --- a/tools/arch/x86/intel_sdsi/intel_sdsi.c > +++ b/tools/arch/x86/intel_sdsi/intel_sdsi.c > @@ -153,11 +153,12 @@ struct bundle_encoding { > }; > > struct meter_certificate { > - uint32_t block_signature; > + uint32_t signature; > + uint32_t version; > + uint64_t ppin; > uint32_t counter_unit; > - uint64_t ppin; > uint32_t bundle_length; > - uint32_t reserved; > + uint64_t reserved; > uint32_t mmrc_encoding; > uint32_t mmrc_counter; > }; > @@ -338,6 +339,7 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) > uint32_t count = 0; > FILE *cert_ptr; > int ret, size; > + char name[4]; > > ret = sdsi_update_registers(s); > if (ret) > @@ -379,12 +381,19 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) > printf("\n"); > printf("Meter certificate for device %s\n", s->dev_name); > printf("\n"); > - printf("Block Signature: 0x%x\n", mc->block_signature); > - printf("Count Unit: %dms\n", mc->counter_unit); > - printf("PPIN: 0x%lx\n", mc->ppin); > - printf("Feature Bundle Length: %d\n", mc->bundle_length); > - printf("MMRC encoding: %d\n", mc->mmrc_encoding); > - printf("MMRC counter: %d\n", mc->mmrc_counter); > + > + get_feature(mc->signature, name); > + printf("Signature: %.4s\n", name); > + > + printf("Version: %d\n", mc->version); > + printf("Count Unit: %dms\n", mc->counter_unit); > + printf("PPIN: 0x%lx\n", mc->ppin); > + printf("Feature Bundle Length: %d\n", mc->bundle_length); > + > + get_feature(mc->mmrc_encoding, name); > + printf("MMRC encoding: %.4s\n", name); > + > + printf("MMRC counter: %d\n", mc->mmrc_counter); > if (mc->bundle_length % 8) { > fprintf(stderr, "Invalid bundle length\n"); > return -1; > @@ -398,7 +407,7 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) > > bec = (void *)(mc) + sizeof(mc); > > - printf("Number of Feature Counters: %d\n", mc->bundle_length / 8); > + printf("Number of Feature Counters: %ld\n", BUNDLE_COUNT(mc->bundle_length)); > while (count++ < mc->bundle_length / 8) { > char feature[5]; >
On Thu, 4 Apr 2024, David E. Box wrote: > Fixes sdsi_meter_cert_show() to correctly decode and display the meter > certificate output. Adds and displays a missing version field, displays the > ASCII name of the signature, and fixes the print alignment. > > Fixes: 7fdc03a7370f ("tools/arch/x86: intel_sdsi: Add support for reading meter certificates") > Signed-off-by: David E. Box <david.e.box@linux.intel.com> > --- > V3 - Change patch subject and changelog to clarify changes. > - Use new BUNDLE_COUNT #def > > V2 - Split of V1 patch 7 > > tools/arch/x86/intel_sdsi/intel_sdsi.c | 29 +++++++++++++++++--------- > 1 file changed, 19 insertions(+), 10 deletions(-) > > diff --git a/tools/arch/x86/intel_sdsi/intel_sdsi.c b/tools/arch/x86/intel_sdsi/intel_sdsi.c > index 7eaffcbff788..a0711177e1bb 100644 > --- a/tools/arch/x86/intel_sdsi/intel_sdsi.c > +++ b/tools/arch/x86/intel_sdsi/intel_sdsi.c > @@ -153,11 +153,12 @@ struct bundle_encoding { > }; > > struct meter_certificate { > - uint32_t block_signature; > + uint32_t signature; > + uint32_t version; > + uint64_t ppin; > uint32_t counter_unit; > - uint64_t ppin; > uint32_t bundle_length; > - uint32_t reserved; > + uint64_t reserved; > uint32_t mmrc_encoding; > uint32_t mmrc_counter; > }; > @@ -338,6 +339,7 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) > uint32_t count = 0; > FILE *cert_ptr; > int ret, size; > + char name[4]; > > ret = sdsi_update_registers(s); > if (ret) > @@ -379,12 +381,19 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) > printf("\n"); > printf("Meter certificate for device %s\n", s->dev_name); > printf("\n"); > - printf("Block Signature: 0x%x\n", mc->block_signature); > - printf("Count Unit: %dms\n", mc->counter_unit); > - printf("PPIN: 0x%lx\n", mc->ppin); > - printf("Feature Bundle Length: %d\n", mc->bundle_length); > - printf("MMRC encoding: %d\n", mc->mmrc_encoding); > - printf("MMRC counter: %d\n", mc->mmrc_counter); > + > + get_feature(mc->signature, name); > + printf("Signature: %.4s\n", name); > + > + printf("Version: %d\n", mc->version); > + printf("Count Unit: %dms\n", mc->counter_unit); > + printf("PPIN: 0x%lx\n", mc->ppin); > + printf("Feature Bundle Length: %d\n", mc->bundle_length); > + > + get_feature(mc->mmrc_encoding, name); > + printf("MMRC encoding: %.4s\n", name); > + > + printf("MMRC counter: %d\n", mc->mmrc_counter); > if (mc->bundle_length % 8) { > fprintf(stderr, "Invalid bundle length\n"); > return -1; > @@ -398,7 +407,7 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) > > bec = (void *)(mc) + sizeof(mc); > > - printf("Number of Feature Counters: %d\n", mc->bundle_length / 8); > + printf("Number of Feature Counters: %ld\n", BUNDLE_COUNT(mc->bundle_length)); > while (count++ < mc->bundle_length / 8) { > char feature[5]; Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
diff --git a/tools/arch/x86/intel_sdsi/intel_sdsi.c b/tools/arch/x86/intel_sdsi/intel_sdsi.c index 7eaffcbff788..a0711177e1bb 100644 --- a/tools/arch/x86/intel_sdsi/intel_sdsi.c +++ b/tools/arch/x86/intel_sdsi/intel_sdsi.c @@ -153,11 +153,12 @@ struct bundle_encoding { }; struct meter_certificate { - uint32_t block_signature; + uint32_t signature; + uint32_t version; + uint64_t ppin; uint32_t counter_unit; - uint64_t ppin; uint32_t bundle_length; - uint32_t reserved; + uint64_t reserved; uint32_t mmrc_encoding; uint32_t mmrc_counter; }; @@ -338,6 +339,7 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) uint32_t count = 0; FILE *cert_ptr; int ret, size; + char name[4]; ret = sdsi_update_registers(s); if (ret) @@ -379,12 +381,19 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) printf("\n"); printf("Meter certificate for device %s\n", s->dev_name); printf("\n"); - printf("Block Signature: 0x%x\n", mc->block_signature); - printf("Count Unit: %dms\n", mc->counter_unit); - printf("PPIN: 0x%lx\n", mc->ppin); - printf("Feature Bundle Length: %d\n", mc->bundle_length); - printf("MMRC encoding: %d\n", mc->mmrc_encoding); - printf("MMRC counter: %d\n", mc->mmrc_counter); + + get_feature(mc->signature, name); + printf("Signature: %.4s\n", name); + + printf("Version: %d\n", mc->version); + printf("Count Unit: %dms\n", mc->counter_unit); + printf("PPIN: 0x%lx\n", mc->ppin); + printf("Feature Bundle Length: %d\n", mc->bundle_length); + + get_feature(mc->mmrc_encoding, name); + printf("MMRC encoding: %.4s\n", name); + + printf("MMRC counter: %d\n", mc->mmrc_counter); if (mc->bundle_length % 8) { fprintf(stderr, "Invalid bundle length\n"); return -1; @@ -398,7 +407,7 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s) bec = (void *)(mc) + sizeof(mc); - printf("Number of Feature Counters: %d\n", mc->bundle_length / 8); + printf("Number of Feature Counters: %ld\n", BUNDLE_COUNT(mc->bundle_length)); while (count++ < mc->bundle_length / 8) { char feature[5];
Fixes sdsi_meter_cert_show() to correctly decode and display the meter certificate output. Adds and displays a missing version field, displays the ASCII name of the signature, and fixes the print alignment. Fixes: 7fdc03a7370f ("tools/arch/x86: intel_sdsi: Add support for reading meter certificates") Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- V3 - Change patch subject and changelog to clarify changes. - Use new BUNDLE_COUNT #def V2 - Split of V1 patch 7 tools/arch/x86/intel_sdsi/intel_sdsi.c | 29 +++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-)