lscpu: remove the old code

The file "/sys/firmware/dmi/tables/DMI" always exists.

The dmi_decode_cputype() can provide more information then arm_smbios_decode().
So remove it to tidy the code.

Before this patch, we can get the output from Centos 7.9 who has
"/sys/firmware/dmi/entries/4-0/raw" and "/sys/firmware/dmi/tables/DMI":
  ----------------------------------------------------
  BIOS Vendor ID:                  Ampere(TM)
  Model name:                     Neoverse-N1
    BIOS Model name:               Ampere(TM) Altra(TM) Processor
  ----------------------------------------------------

 After this patch which uses "/sys/firmware/dmi/tables/DMI", in Centos 7.9, we get:
  ----------------------------------------------------
  BIOS Vendor ID:                  Ampere(TM)
  Model name:                     Neoverse-N1
    BIOS Model name:               Ampere(TM) Altra(TM) Processor Q00-00 CPU @ 2.8GHz
    BIOS CPU family:               257
  ----------------------------------------------------

Signed-off-by: Huang Shijie <shijie@os.amperecomputing.com>
This commit is contained in:
Huang Shijie 2021-06-17 12:41:16 +00:00 committed by Karel Zak
parent 5efc31f9d8
commit 81d6de9166
2 changed files with 1 additions and 46 deletions

View File

@ -315,53 +315,9 @@ static int arm_rXpY_decode(struct lscpu_cputype *ct)
return 0;
}
#define PROC_MFR_OFFSET 0x07
#define PROC_VERSION_OFFSET 0x10
/*
* Use firmware to get human readable names
*/
static int arm_smbios_decode(struct lscpu_cputype *ct)
{
uint8_t data[8192];
char buf[128], *str;
struct lscpu_dmi_header h;
int fd;
ssize_t rs;
fd = open(_PATH_SYS_DMI_TYPE4, O_RDONLY);
if (fd < 0)
return fd;
rs = read_all(fd, (char *) data, 8192);
close(fd);
if (rs == -1)
return -1;
to_dmi_header(&h, data);
str = dmi_string(&h, data[PROC_MFR_OFFSET]);
if (str) {
xstrncpy(buf, str, 127);
ct->bios_vendor = xstrdup(buf);
}
str = dmi_string(&h, data[PROC_VERSION_OFFSET]);
if (str) {
xstrncpy(buf, str, 127);
ct->bios_modelname = xstrdup(buf);
}
return 0;
}
static void arm_decode(struct lscpu_cxt *cxt, struct lscpu_cputype *ct)
{
/* use SMBIOS Type 4 data if available */
if (!cxt->noalive && access(_PATH_SYS_DMI_TYPE4, R_OK) == 0)
arm_smbios_decode(ct);
else if (!cxt->noalive && access(_PATH_SYS_DMI, R_OK) == 0)
if (!cxt->noalive && access(_PATH_SYS_DMI, R_OK) == 0)
dmi_decode_cputype(ct);
arm_ids_decode(ct);

View File

@ -32,7 +32,6 @@ UL_DEBUG_DECLARE_MASK(lscpu);
#define _PATH_SYS_CPU _PATH_SYS_SYSTEM "/cpu"
#define _PATH_SYS_NODE _PATH_SYS_SYSTEM "/node"
#define _PATH_SYS_DMI "/sys/firmware/dmi/tables/DMI"
#define _PATH_SYS_DMI_TYPE4 "/sys/firmware/dmi/entries/4-0/raw"
#define _PATH_ACPI_PPTT "/sys/firmware/acpi/tables/PPTT"
struct lscpu_cache {