Print this page
5094 Update libsmbios with recent items
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Robert Mustacchi <rm@joyent.com>
@@ -18,10 +18,11 @@
*
* CDDL HEADER END
*/
/*
+ * Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved.
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#include <sys/sysmacros.h>
@@ -335,10 +336,12 @@
int elem_cnt;
(void) smbios_info_chassis(shp, id, &c);
oprintf(fp, " OEM Data: 0x%x\n", c.smbc_oemdata);
+ oprintf(fp, " SKU number: %s\n",
+ c.smbc_sku == NULL ? "<unknown>" : c.smbc_sku);
oprintf(fp, " Lock Present: %s\n", c.smbc_lock ? "Y" : "N");
desc_printf(smbios_chassis_type_desc(c.smbc_type),
fp, " Chassis Type: 0x%x", c.smbc_type);
@@ -396,10 +399,14 @@
status = SMB_PRSTATUS_STATUS(p.smbp_status);
desc_printf(smbios_processor_family_desc(p.smbp_family),
fp, " Family: %u", p.smbp_family);
+ if (p.smbp_family2 != 0)
+ desc_printf(smbios_processor_family_desc(p.smbp_family2),
+ fp, " Family Ext: %u", p.smbp_family2);
+
oprintf(fp, " CPUID: 0x%llx\n", (u_longlong_t)p.smbp_cpuid);
desc_printf(smbios_processor_type_desc(p.smbp_type),
fp, " Type: %u", p.smbp_type);
@@ -430,10 +437,32 @@
} else {
oprintf(fp, " Supported Voltages: %.1fV\n",
(float)SMB_PRV_VOLTAGE(p.smbp_voltage) / 10);
}
+ if (p.smbp_corecount != 0)
+ oprintf(fp, " Core Count: %u\n", p.smbp_corecount);
+ else
+ oprintf(fp, " Core Count: Unknown\n");
+
+ if (p.smbp_coresenabled != 0)
+ oprintf(fp, " Cores Enabled: %u\n", p.smbp_coresenabled);
+ else
+ oprintf(fp, " Cores Enabled: Unknown\n");
+
+ if (p.smbp_threadcount != 0)
+ oprintf(fp, " Thread Count: %u\n", p.smbp_threadcount);
+ else
+ oprintf(fp, " Thread Count: Unknown\n");
+
+ if (p.smbp_cflags) {
+ flag_printf(fp, "Processor Characteristics",
+ p.smbp_cflags, sizeof (p.smbp_cflags) * NBBY,
+ smbios_processor_core_flag_name,
+ smbios_processor_core_flag_desc);
+ }
+
if (p.smbp_clkspeed != 0)
oprintf(fp, " External Clock Speed: %uMHz\n", p.smbp_clkspeed);
else
oprintf(fp, " External Clock Speed: Unknown\n");
@@ -766,23 +795,56 @@
else if (md.smbmd_set == (uint8_t)-1u)
oprintf(fp, " Set: Unknown\n");
else
oprintf(fp, " Set: %u\n", md.smbmd_set);
+ if (md.smbmd_rank != 0) {
+ desc_printf(smbios_memdevice_rank_desc(md.smbmd_rank),
+ fp, " Rank: %u", md.smbmd_rank);
+ } else {
+ oprintf(fp, " Rank: Unknown\n");
+ }
+
desc_printf(smbios_memdevice_type_desc(md.smbmd_type),
fp, " Memory Type: %u", md.smbmd_type);
flag_printf(fp, "Flags", md.smbmd_flags, sizeof (md.smbmd_flags) * NBBY,
smbios_memdevice_flag_name, smbios_memdevice_flag_desc);
if (md.smbmd_speed != 0)
- oprintf(fp, " Speed: %uns\n", md.smbmd_speed);
+ oprintf(fp, " Speed: %u MHz\n", md.smbmd_speed);
else
oprintf(fp, " Speed: Unknown\n");
+ if (md.smbmd_clkspeed != 0)
+ oprintf(fp, " Configured Speed: %u MHz\n", md.smbmd_clkspeed);
+ else
+ oprintf(fp, " Configured Speed: Unknown\n");
+
oprintf(fp, " Device Locator: %s\n", md.smbmd_dloc);
oprintf(fp, " Bank Locator: %s\n", md.smbmd_bloc);
+
+ if (md.smbmd_minvolt != 0) {
+ oprintf(fp, " Minimum Voltage: %.2fV\n",
+ md.smbmd_minvolt / 1000.0);
+ } else {
+ oprintf(fp, " Minimum Voltage: Unknown\n");
+ }
+
+ if (md.smbmd_maxvolt != 0) {
+ oprintf(fp, " Maximum Voltage: %.2fV\n",
+ md.smbmd_maxvolt / 1000.0);
+ } else {
+ oprintf(fp, " Maximum Voltage: Unknown\n");
+ }
+
+ if (md.smbmd_confvolt != 0) {
+ oprintf(fp, " Configured Voltage: %.2fV\n",
+ md.smbmd_confvolt / 1000.0);
+ } else {
+ oprintf(fp, " Configured Voltage: Unknown\n");
+ }
}
static void
print_memarrmap(smbios_hdl_t *shp, id_t id, FILE *fp)
{
@@ -977,14 +1039,14 @@
oprintf(fp, "%-5u %-4lu",
(uint_t)sp->smbstr_id, (ulong_t)sp->smbstr_size);
if ((s = smbios_type_name(sp->smbstr_type)) != NULL)
- oprintf(fp, " %s", s);
+ oprintf(fp, " (%u) %s", sp->smbstr_type, s);
else if (sp->smbstr_type > SMB_TYPE_OEM_LO &&
sp->smbstr_type < SMB_TYPE_OEM_HI)
- oprintf(fp, " %s+%u", "SMB_TYPE_OEM_LO",
+ oprintf(fp, " (%u) %s+%u", sp->smbstr_type, "SMB_TYPE_OEM_LO",
sp->smbstr_type - SMB_TYPE_OEM_LO);
else
oprintf(fp, " %u", sp->smbstr_type);
if ((s = smbios_type_desc(sp->smbstr_type)) != NULL)