Print this page
SKU fix for 5094
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>

*** 18,42 **** * * CDDL HEADER END */ /* * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* * This header file defines the interfaces available from the SMBIOS access * library, libsmbios, and an equivalent kernel module. This API can be used * to access DMTF SMBIOS data from a device, file, or raw memory buffer. - * This is NOT yet a public interface, although it may eventually become one in - * the fullness of time after we gain more experience with the interfaces. * ! * In the meantime, be aware that any program linked with this API in this ! * release of Solaris is almost guaranteed to break in the next release. ! * ! * In short, do not user this header file or these routines for any purpose. */ #ifndef _SYS_SMBIOS_H #define _SYS_SMBIOS_H --- 18,41 ---- * * 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. */ /* * This header file defines the interfaces available from the SMBIOS access * library, libsmbios, and an equivalent kernel module. This API can be used * to access DMTF SMBIOS data from a device, file, or raw memory buffer. * ! * This is NOT a Public interface, and should be considered Unstable, as it is ! * subject to change without notice as the DMTF SMBIOS specification evolves. ! * Therefore, be aware that any program linked with this API in this ! * instance of illumos is almost guaranteed to break in the next release. */ #ifndef _SYS_SMBIOS_H #define _SYS_SMBIOS_H
*** 45,55 **** #ifdef __cplusplus extern "C" { #endif /* ! * SMBIOS Structure Table Entry Point. See DSP0134 2.1.1 for more information. * The structure table entry point is located by searching for the anchor. */ #pragma pack(1) typedef struct smbios_entry { --- 44,54 ---- #ifdef __cplusplus extern "C" { #endif /* ! * SMBIOS Structure Table Entry Point. See DSP0134 5.2.1 for more information. * The structure table entry point is located by searching for the anchor. */ #pragma pack(1) typedef struct smbios_entry {
*** 77,88 **** #define SMB_ENTRY_IANCHORLEN 5 /* length of intermediate anchor */ #define SMB_ENTRY_MAXLEN 255 /* maximum length of entry point */ /* * Structure type codes. The comments next to each type include an (R) note to ! * indicate a structure that is required as of SMBIOS v2.3 and an (O) note to ! * indicate a structure that is obsolete as of SMBIOS v2.3. */ #define SMB_TYPE_BIOS 0 /* BIOS information (R) */ #define SMB_TYPE_SYSTEM 1 /* system information (R) */ #define SMB_TYPE_BASEBOARD 2 /* base board */ #define SMB_TYPE_CHASSIS 3 /* system enclosure or chassis (R) */ --- 76,87 ---- #define SMB_ENTRY_IANCHORLEN 5 /* length of intermediate anchor */ #define SMB_ENTRY_MAXLEN 255 /* maximum length of entry point */ /* * Structure type codes. The comments next to each type include an (R) note to ! * indicate a structure that is required as of SMBIOS v2.8 and an (O) note to ! * indicate a structure that is obsolete as of SMBIOS v2.8. */ #define SMB_TYPE_BIOS 0 /* BIOS information (R) */ #define SMB_TYPE_SYSTEM 1 /* system information (R) */ #define SMB_TYPE_BASEBOARD 2 /* base board */ #define SMB_TYPE_CHASSIS 3 /* system enclosure or chassis (R) */
*** 90,110 **** #define SMB_TYPE_MEMCTL 5 /* memory controller (O) */ #define SMB_TYPE_MEMMOD 6 /* memory module (O) */ #define SMB_TYPE_CACHE 7 /* processor cache (R) */ #define SMB_TYPE_PORT 8 /* port connector */ #define SMB_TYPE_SLOT 9 /* upgradeable system slot (R) */ ! #define SMB_TYPE_OBDEVS 10 /* on-board devices */ #define SMB_TYPE_OEMSTR 11 /* OEM string table */ #define SMB_TYPE_SYSCONFSTR 12 /* system configuration string table */ #define SMB_TYPE_LANG 13 /* BIOS language information */ #define SMB_TYPE_GROUP 14 /* group associations */ #define SMB_TYPE_EVENTLOG 15 /* system event log */ #define SMB_TYPE_MEMARRAY 16 /* physical memory array (R) */ #define SMB_TYPE_MEMDEVICE 17 /* memory device (R) */ #define SMB_TYPE_MEMERR32 18 /* 32-bit memory error information */ #define SMB_TYPE_MEMARRAYMAP 19 /* memory array mapped address (R) */ ! #define SMB_TYPE_MEMDEVICEMAP 20 /* memory device mapped address (R) */ #define SMB_TYPE_POINTDEV 21 /* built-in pointing device */ #define SMB_TYPE_BATTERY 22 /* portable battery */ #define SMB_TYPE_RESET 23 /* system reset settings */ #define SMB_TYPE_SECURITY 24 /* hardware security settings */ #define SMB_TYPE_POWERCTL 25 /* system power controls */ --- 89,109 ---- #define SMB_TYPE_MEMCTL 5 /* memory controller (O) */ #define SMB_TYPE_MEMMOD 6 /* memory module (O) */ #define SMB_TYPE_CACHE 7 /* processor cache (R) */ #define SMB_TYPE_PORT 8 /* port connector */ #define SMB_TYPE_SLOT 9 /* upgradeable system slot (R) */ ! #define SMB_TYPE_OBDEVS 10 /* on-board devices (O) */ #define SMB_TYPE_OEMSTR 11 /* OEM string table */ #define SMB_TYPE_SYSCONFSTR 12 /* system configuration string table */ #define SMB_TYPE_LANG 13 /* BIOS language information */ #define SMB_TYPE_GROUP 14 /* group associations */ #define SMB_TYPE_EVENTLOG 15 /* system event log */ #define SMB_TYPE_MEMARRAY 16 /* physical memory array (R) */ #define SMB_TYPE_MEMDEVICE 17 /* memory device (R) */ #define SMB_TYPE_MEMERR32 18 /* 32-bit memory error information */ #define SMB_TYPE_MEMARRAYMAP 19 /* memory array mapped address (R) */ ! #define SMB_TYPE_MEMDEVICEMAP 20 /* memory device mapped address */ #define SMB_TYPE_POINTDEV 21 /* built-in pointing device */ #define SMB_TYPE_BATTERY 22 /* portable battery */ #define SMB_TYPE_RESET 23 /* system reset settings */ #define SMB_TYPE_SECURITY 24 /* hardware security settings */ #define SMB_TYPE_POWERCTL 25 /* system power controls */
*** 120,130 **** --- 119,131 ---- #define SMB_TYPE_MGMTDEVCP 35 /* management device component */ #define SMB_TYPE_MGMTDEVDATA 36 /* management device threshold data */ #define SMB_TYPE_MEMCHAN 37 /* memory channel */ #define SMB_TYPE_IPMIDEV 38 /* IPMI device information */ #define SMB_TYPE_POWERSUP 39 /* system power supply */ + #define SMB_TYPE_ADDINFO 40 /* additional information */ #define SMB_TYPE_OBDEVEXT 41 /* on-board device extended info */ + #define SMB_TYPE_MCHI 42 /* mgmt controller host interface */ #define SMB_TYPE_INACTIVE 126 /* inactive table entry */ #define SMB_TYPE_EOT 127 /* end of table */ #define SMB_TYPE_OEM_LO 128 /* start of OEM-specific type range */ #define SUN_OEM_EXT_PROCESSOR 132 /* processor extended info */
*** 169,179 **** #define SMB_CONT_BYTE 1 /* contained elements are byte size */ #define SMB_CONT_WORD 2 /* contained elements are word size */ #define SMB_CONT_MAX 255 /* maximum contained objects */ /* ! * SMBIOS Bios Information. See DSP0134 Section 3.3.1 for more information. * smbb_romsize is converted from the implementation format into bytes. */ typedef struct smbios_bios { const char *smbb_vendor; /* bios vendor string */ const char *smbb_version; /* bios version string */ --- 170,180 ---- #define SMB_CONT_BYTE 1 /* contained elements are byte size */ #define SMB_CONT_WORD 2 /* contained elements are word size */ #define SMB_CONT_MAX 255 /* maximum contained objects */ /* ! * SMBIOS Bios Information. See DSP0134 Section 7.1 for more information. * smbb_romsize is converted from the implementation format into bytes. */ typedef struct smbios_bios { const char *smbb_vendor; /* bios vendor string */ const char *smbb_version; /* bios version string */
*** 219,230 **** #define SMB_BIOSFL_I14_SER 0x10000000 /* int 0x14 serial svcs */ #define SMB_BIOSFL_I17_PRINTER 0x20000000 /* int 0x17 printer svcs */ #define SMB_BIOSFL_I10_CGA 0x40000000 /* int 0x10 CGA svcs */ #define SMB_BIOSFL_NEC_PC98 0x80000000 /* NEC PC-98 */ ! #define SMB_BIOSXB_1 0 /* bios extension byte 1 (3.3.1.2.1) */ ! #define SMB_BIOSXB_2 1 /* bios extension byte 2 (3.3.1.2.2) */ #define SMB_BIOSXB_BIOS_MAJ 2 /* bios major version */ #define SMB_BIOSXB_BIOS_MIN 3 /* bios minor version */ #define SMB_BIOSXB_ECFW_MAJ 4 /* extended ctlr f/w major version */ #define SMB_BIOSXB_ECFW_MIN 5 /* extended ctlr f/w minor version */ --- 220,231 ---- #define SMB_BIOSFL_I14_SER 0x10000000 /* int 0x14 serial svcs */ #define SMB_BIOSFL_I17_PRINTER 0x20000000 /* int 0x17 printer svcs */ #define SMB_BIOSFL_I10_CGA 0x40000000 /* int 0x10 CGA svcs */ #define SMB_BIOSFL_NEC_PC98 0x80000000 /* NEC PC-98 */ ! #define SMB_BIOSXB_1 0 /* bios extension byte 1 (7.1.2.1) */ ! #define SMB_BIOSXB_2 1 /* bios extension byte 2 (7.1.2.2) */ #define SMB_BIOSXB_BIOS_MAJ 2 /* bios major version */ #define SMB_BIOSXB_BIOS_MIN 3 /* bios minor version */ #define SMB_BIOSXB_ECFW_MAJ 4 /* extended ctlr f/w major version */ #define SMB_BIOSXB_ECFW_MIN 5 /* extended ctlr f/w minor version */
*** 238,250 **** #define SMB_BIOSXB1_SMBAT 0x80 /* Smart Battery is supported */ #define SMB_BIOSXB2_BBOOT 0x01 /* BIOS Boot Specification supported */ #define SMB_BIOSXB2_FKNETSVC 0x02 /* F-key Network Svc boot supported */ #define SMB_BIOSXB2_ETCDIST 0x04 /* Enable Targeted Content Distrib. */ /* ! * SMBIOS Bios Information. See DSP0134 Section 3.3.2 for more information. * The current set of smbs_wakeup values is defined after the structure. */ typedef struct smbios_system { const uint8_t *smbs_uuid; /* UUID byte array */ uint8_t smbs_uuidlen; /* UUID byte array length */ --- 239,253 ---- #define SMB_BIOSXB1_SMBAT 0x80 /* Smart Battery is supported */ #define SMB_BIOSXB2_BBOOT 0x01 /* BIOS Boot Specification supported */ #define SMB_BIOSXB2_FKNETSVC 0x02 /* F-key Network Svc boot supported */ #define SMB_BIOSXB2_ETCDIST 0x04 /* Enable Targeted Content Distrib. */ + #define SMB_BIOSXB2_UEFI 0x08 /* UEFI Specification supported */ + #define SMB_BIOSXB2_VM 0x10 /* SMBIOS table describes a VM */ /* ! * SMBIOS System Information. See DSP0134 Section 7.2 for more information. * The current set of smbs_wakeup values is defined after the structure. */ typedef struct smbios_system { const uint8_t *smbs_uuid; /* UUID byte array */ uint8_t smbs_uuidlen; /* UUID byte array length */
*** 262,272 **** #define SMB_WAKEUP_SWITCH 0x06 /* power switch */ #define SMB_WAKEUP_PCIPME 0x07 /* PCI PME# */ #define SMB_WAKEUP_AC 0x08 /* AC power restored */ /* ! * SMBIOS Base Board description. See DSP0134 Section 3.3.3 for more * information. smbb_flags and smbb_type definitions are below. */ typedef struct smbios_bboard { id_t smbb_chassis; /* chassis containing this board */ uint8_t smbb_flags; /* flags (see below) */ --- 265,275 ---- #define SMB_WAKEUP_SWITCH 0x06 /* power switch */ #define SMB_WAKEUP_PCIPME 0x07 /* PCI PME# */ #define SMB_WAKEUP_AC 0x08 /* AC power restored */ /* ! * SMBIOS Base Board description. See DSP0134 Section 7.3 for more * information. smbb_flags and smbb_type definitions are below. */ typedef struct smbios_bboard { id_t smbb_chassis; /* chassis containing this board */ uint8_t smbb_flags; /* flags (see below) */
*** 293,303 **** #define SMB_BBT_PROCMEM 0xB /* processor/memory module */ #define SMB_BBT_PROCIO 0xC /* processor/i/o module */ #define SMB_BBT_INTER 0xD /* interconnect board */ /* ! * SMBIOS Chassis description. See DSP0134 Section 3.3.4 for more information. * We move the lock bit of the type field into smbc_lock for easier processing. */ typedef struct smbios_chassis { uint32_t smbc_oemdata; /* OEM-specific data */ uint8_t smbc_lock; /* lock present? */ --- 296,306 ---- #define SMB_BBT_PROCMEM 0xB /* processor/memory module */ #define SMB_BBT_PROCIO 0xC /* processor/i/o module */ #define SMB_BBT_INTER 0xD /* interconnect board */ /* ! * SMBIOS Chassis description. See DSP0134 Section 7.4 for more information. * We move the lock bit of the type field into smbc_lock for easier processing. */ typedef struct smbios_chassis { uint32_t smbc_oemdata; /* OEM-specific data */ uint8_t smbc_lock; /* lock present? */
*** 308,317 **** --- 311,321 ---- uint8_t smbc_security; /* security status */ uint8_t smbc_uheight; /* enclosure height in U's */ uint8_t smbc_cords; /* number of power cords */ uint8_t smbc_elems; /* number of element records (n) */ uint8_t smbc_elemlen; /* length of contained element (m) */ + char smbc_sku[256]; /* SKU number (as a string) */ } smbios_chassis_t; #define SMB_CHT_OTHER 0x01 /* other */ #define SMB_CHT_UNKNOWN 0x02 /* unknown */ #define SMB_CHT_DESKTOP 0x03 /* desktop */
*** 354,369 **** #define SMB_CHSC_NONE 0x03 /* none */ #define SMB_CHSC_EILOCK 0x04 /* external interface locked out */ #define SMB_CHSC_EIENAB 0x05 /* external interface enabled */ /* ! * SMBIOS Processor description. See DSP0134 Section 3.3.5 for more details. * If the L1, L2, or L3 cache handle is -1, the cache information is unknown. * If the handle refers to something of size 0, that type of cache is absent. * * NOTE: Although SMBIOS exports a 64-bit CPUID result, this value should not ! * be used for any purpose other than BIOS debugging. Solaris itself computes * its own CPUID value and applies knowledge of additional errata and processor * specific CPUID variations, so this value should not be used for anything. */ typedef struct smbios_processor { uint64_t smbp_cpuid; /* processor cpuid information */ --- 358,373 ---- #define SMB_CHSC_NONE 0x03 /* none */ #define SMB_CHSC_EILOCK 0x04 /* external interface locked out */ #define SMB_CHSC_EIENAB 0x05 /* external interface enabled */ /* ! * SMBIOS Processor description. See DSP0134 Section 7.5 for more details. * If the L1, L2, or L3 cache handle is -1, the cache information is unknown. * If the handle refers to something of size 0, that type of cache is absent. * * NOTE: Although SMBIOS exports a 64-bit CPUID result, this value should not ! * be used for any purpose other than BIOS debugging. illumos itself computes * its own CPUID value and applies knowledge of additional errata and processor * specific CPUID variations, so this value should not be used for anything. */ typedef struct smbios_processor { uint64_t smbp_cpuid; /* processor cpuid information */
*** 376,385 **** --- 380,397 ---- uint32_t smbp_maxspeed; /* maximum speed in MHz */ uint32_t smbp_curspeed; /* current speed in MHz */ id_t smbp_l1cache; /* L1 cache handle */ id_t smbp_l2cache; /* L2 cache handle */ id_t smbp_l3cache; /* L3 cache handle */ + uint8_t smbp_corecount; /* number of cores per processor socket */ + uint8_t smbp_coresenabled; + /* number of enabled cores per processor socket */ + uint8_t smbp_threadcount; + /* number of threads per processor socket */ + uint16_t smbp_cflags; + /* processor characteristics (SMB_PRC_*) */ + uint16_t smbp_family2; /* processor family 2 */ } smbios_processor_t; #define SMB_PRT_OTHER 0x01 /* other */ #define SMB_PRT_UNKNOWN 0x02 /* unknown */ #define SMB_PRT_CENTRAL 0x03 /* central processor */
*** 428,438 **** --- 440,479 ---- #define SMB_PRU_LGA771 0x14 /* LGA771 */ #define SMB_PRU_LGA775 0x15 /* LGA775 */ #define SMB_PRU_S1 0x16 /* socket S1 */ #define SMB_PRU_AM2 0x17 /* socket AM2 */ #define SMB_PRU_F 0x18 /* socket F */ + #define SMB_PRU_LGA1366 0x19 /* LGA1366 */ + #define SMB_PRU_G34 0x1A /* socket G34 */ + #define SMB_PRU_AM3 0x1B /* socket AM3 */ + #define SMB_PRU_C32 0x1C /* socket C32 */ + #define SMB_PRU_LGA1156 0x1D /* LGA1156 */ + #define SMB_PRU_LGA1567 0x1E /* LGA1567 */ + #define SMB_PRU_PGA988A 0x1F /* PGA988A */ + #define SMB_PRU_BGA1288 0x20 /* BGA1288 */ + #define SMB_PRU_RPGA988B 0x21 /* rPGA988B */ + #define SMB_PRU_BGA1023 0x22 /* BGA1023 */ + #define SMB_PRU_BGA1224 0x23 /* BGA1224 */ + #define SMB_PRU_LGA1155 0x24 /* LGA1155 */ + #define SMB_PRU_LGA1356 0x25 /* LGA1356 */ + #define SMB_PRU_LGA2011 0x26 /* LGA2011 */ + #define SMB_PRU_FS1 0x27 /* socket FS1 */ + #define SMB_PRU_FS2 0x28 /* socket FS2 */ + #define SMB_PRU_FM1 0x29 /* socket FM1 */ + #define SMB_PRU_FM2 0x2A /* socket FM2 */ + #define SMB_PRU_LGA20113 0x2B /* LGA2011-3 */ + #define SMB_PRU_LGA13563 0x2C /* LGA1356-3 */ + #define SMB_PRC_RESERVED 0x0001 /* reserved */ + #define SMB_PRC_UNKNOWN 0x0002 /* unknown */ + #define SMB_PRC_64BIT 0x0004 /* 64-bit capable */ + #define SMB_PRC_MC 0x0008 /* multi-core */ + #define SMB_PRC_HT 0x0010 /* hardware thread */ + #define SMB_PRC_NX 0x0020 /* execution protection */ + #define SMB_PRC_VT 0x0040 /* enhanced virtualization */ + #define SMB_PRC_PM 0x0080 /* power/performance control */ + #define SMB_PRF_OTHER 0x01 /* other */ #define SMB_PRF_UNKNOWN 0x02 /* unknown */ #define SMB_PRF_8086 0x03 /* 8086 */ #define SMB_PRF_80286 0x04 /* 80286 */ #define SMB_PRF_I386 0x05 /* Intel 386 */
*** 448,457 **** --- 489,500 ---- #define SMB_PRF_CELERON 0x0F /* Celeron */ #define SMB_PRF_PENTIUMII_XEON 0x10 /* Pentium II Xeon */ #define SMB_PRF_PENTIUMIII 0x11 /* Pentium III */ #define SMB_PRF_M1 0x12 /* M1 */ #define SMB_PRF_M2 0x13 /* M2 */ + #define SMB_PRF_CELERON_M 0x14 /* Celeron M */ + #define SMB_PRF_PENTIUMIV_HT 0x15 /* Pentium 4 HT */ #define SMB_PRF_DURON 0x18 /* AMD Duron */ #define SMB_PRF_K5 0x19 /* K5 */ #define SMB_PRF_K6 0x1A /* K6 */ #define SMB_PRF_K6_2 0x1B /* K6-2 */ #define SMB_PRF_K6_3 0x1C /* K6-3 */
*** 464,487 **** --- 507,553 ---- #define SMB_PRF_PPC_603PLUS 0x23 /* PowerPC 603+ */ #define SMB_PRF_PPC_604 0x24 /* PowerPC 604 */ #define SMB_PRF_PPC_620 0x25 /* PowerPC 620 */ #define SMB_PRF_PPC_704 0x26 /* PowerPC x704 */ #define SMB_PRF_PPC_750 0x27 /* PowerPC 750 */ + #define SMB_PRF_CORE_DUO 0x28 /* Core Duo */ + #define SMB_PRF_CORE_DUO_M 0x29 /* Core Duo mobile */ + #define SMB_PRF_CORE_SOLO_M 0x2A /* Core Solo mobile */ + #define SMB_PRF_ATOM 0x2B /* Intel Atom */ #define SMB_PRF_ALPHA 0x30 /* Alpha */ #define SMB_PRF_ALPHA_21064 0x31 /* Alpha 21064 */ #define SMB_PRF_ALPHA_21066 0x32 /* Alpha 21066 */ #define SMB_PRF_ALPHA_21164 0x33 /* Alpha 21164 */ #define SMB_PRF_ALPHA_21164PC 0x34 /* Alpha 21164PC */ #define SMB_PRF_ALPHA_21164A 0x35 /* Alpha 21164a */ #define SMB_PRF_ALPHA_21264 0x36 /* Alpha 21264 */ #define SMB_PRF_ALPHA_21364 0x37 /* Alpha 21364 */ + #define SMB_PRF_TURION2U_2C_MM 0x38 + /* AMD Turion II Ultra Dual-Core Mobile M */ + #define SMB_PRF_TURION2_2C_MM 0x39 /* AMD Turion II Dual-Core Mobile M */ + #define SMB_PRF_ATHLON2_2C_M 0x3A /* AMD Athlon II Dual-Core M */ + #define SMB_PRF_OPTERON_6100 0x3B /* AMD Opteron 6100 series */ + #define SMB_PRF_OPTERON_4100 0x3C /* AMD Opteron 4100 series */ + #define SMB_PRF_OPTERON_6200 0x3D /* AMD Opteron 6200 series */ + #define SMB_PRF_OPTERON_4200 0x3E /* AMD Opteron 4200 series */ + #define SMB_PRF_AMD_FX 0x3F /* AMD FX series */ #define SMB_PRF_MIPS 0x40 /* MIPS */ #define SMB_PRF_MIPS_R4000 0x41 /* MIPS R4000 */ #define SMB_PRF_MIPS_R4200 0x42 /* MIPS R4200 */ #define SMB_PRF_MIPS_R4400 0x43 /* MIPS R4400 */ #define SMB_PRF_MIPS_R4600 0x44 /* MIPS R4600 */ #define SMB_PRF_MIPS_R10000 0x45 /* MIPS R10000 */ + #define SMB_PRF_AMD_C 0x46 /* AMD C-series */ + #define SMB_PRF_AMD_E 0x47 /* AMD E-series */ + #define SMB_PRF_AMD_A 0x48 /* AMD A-series */ + #define SMB_PRF_AMD_G 0x49 /* AMD G-series */ + #define SMB_PRF_AMD_Z 0x4A /* AMD Z-series */ + #define SMB_PRF_AMD_R 0x4B /* AMD R-series */ + #define SMB_PRF_OPTERON_4300 0x4C /* AMD Opteron 4300 series */ + #define SMB_PRF_OPTERON_6300 0x4D /* AMD Opteron 6300 series */ + #define SMB_PRF_OPTERON_3300 0x4E /* AMD Opteron 3300 series */ + #define SMB_PRF_AMD_FIREPRO 0x4F /* AMD FirePro series */ #define SMB_PRF_SPARC 0x50 /* SPARC */ #define SMB_PRF_SUPERSPARC 0x51 /* SuperSPARC */ #define SMB_PRF_MICROSPARCII 0x52 /* microSPARC II */ #define SMB_PRF_MICROSPARCIIep 0x53 /* microSPARC IIep */ #define SMB_PRF_ULTRASPARC 0x54 /* UltraSPARC */
*** 501,518 **** --- 567,610 ---- #define SMB_PRF_TM8000 0x7A /* Efficeon TM8000 */ #define SMB_PRF_WEITEK 0x80 /* Weitek */ #define SMB_PRF_ITANIC 0x82 /* Itanium */ #define SMB_PRF_ATHLON64 0x83 /* Athlon64 */ #define SMB_PRF_OPTERON 0x84 /* Opteron */ + #define SMB_PRF_SEMPRON 0x85 /* Sempron */ + #define SMB_PRF_TURION64_M 0x86 /* Turion 64 Mobile */ + #define SMB_PRF_OPTERON_2C 0x87 /* AMD Opteron Dual-Core */ + #define SMB_PRF_ATHLON64_X2_2C 0x88 /* AMD Athlon 64 X2 Dual-Core */ + #define SMB_PRF_TURION64_X2_M 0x89 /* AMD Turion 64 X2 Mobile */ + #define SMB_PRF_OPTERON_4C 0x8A /* AMD Opteron Quad-Core */ + #define SMB_PRF_OPTERON_3G 0x8B /* AMD Opteron 3rd Generation */ + #define SMB_PRF_PHENOM_FX_4C 0x8C /* AMD Phenom FX Quad-Core */ + #define SMB_PRF_PHENOM_X4_4C 0x8D /* AMD Phenom X4 Quad-Core */ + #define SMB_PRF_PHENOM_X2_2C 0x8E /* AMD Phenom X2 Dual-Core */ + #define SMB_PRF_ATHLON_X2_2C 0x8F /* AMD Athlon X2 Dual-Core */ #define SMB_PRF_PA 0x90 /* PA-RISC */ #define SMB_PRF_PA8500 0x91 /* PA-RISC 8500 */ #define SMB_PRF_PA8000 0x92 /* PA-RISC 8000 */ #define SMB_PRF_PA7300LC 0x93 /* PA-RISC 7300LC */ #define SMB_PRF_PA7200 0x94 /* PA-RISC 7200 */ #define SMB_PRF_PA7100LC 0x95 /* PA-RISC 7100LC */ #define SMB_PRF_PA7100 0x96 /* PA-RISC 7100 */ #define SMB_PRF_V30 0xA0 /* V30 */ + #define SMB_PRF_XEON_4C_3200 0xA1 /* Xeon Quad Core 3200 */ + #define SMB_PRF_XEON_2C_3000 0xA2 /* Xeon Dual Core 3000 */ + #define SMB_PRF_XEON_4C_5300 0xA3 /* Xeon Quad Core 5300 */ + #define SMB_PRF_XEON_2C_5100 0xA4 /* Xeon Dual Core 5100 */ + #define SMB_PRF_XEON_2C_5000 0xA5 /* Xeon Dual Core 5000 */ + #define SMB_PRF_XEON_2C_LV 0xA6 /* Xeon Dual Core LV */ + #define SMB_PRF_XEON_2C_ULV 0xA7 /* Xeon Dual Core ULV */ + #define SMB_PRF_XEON_2C_7100 0xA8 /* Xeon Dual Core 7100 */ + #define SMB_PRF_XEON_4C_5400 0xA9 /* Xeon Quad Core 5400 */ + #define SMB_PRF_XEON_4C 0xAA /* Xeon Quad Core */ + #define SMB_PRF_XEON_2C_5200 0xAB /* Xeon Dual Core 5200 */ + #define SMB_PRF_XEON_2C_7200 0xAC /* Xeon Dual Core 7200 */ + #define SMB_PRF_XEON_4C_7300 0xAD /* Xeon Quad Core 7300 */ + #define SMB_PRF_XEON_4C_7400 0xAE /* Xeon Quad Core 7400 */ + #define SMB_PRF_XEON_XC_7400 0xAF /* Xeon Multi Core 7400 */ #define SMB_PRF_PENTIUMIII_XEON 0xB0 /* Pentium III Xeon */ #define SMB_PRF_PENTIUMIII_SS 0xB1 /* Pentium III with SpeedStep */ #define SMB_PRF_P4 0xB2 /* Pentium 4 */ #define SMB_PRF_XEON 0xB3 /* Intel Xeon */ #define SMB_PRF_AS400 0xB4 /* AS400 */
*** 522,542 **** #define SMB_PRF_ITANIC2 0xB8 /* Itanium 2 */ #define SMB_PRF_PENTIUM_M 0xB9 /* Pentium M */ #define SMB_PRF_CELERON_D 0xBA /* Celeron D */ #define SMB_PRF_PENTIUM_D 0xBB /* Pentium D */ #define SMB_PRF_PENTIUM_EE 0xBC /* Pentium Extreme Edition */ ! #define SMB_PRF_CORE 0xBD /* Intel Core */ ! #define SMB_PRF_CORE2 0xBF /* Intel Core 2 */ #define SMB_PRF_IBM390 0xC8 /* IBM 390 */ #define SMB_PRF_G4 0xC9 /* G4 */ #define SMB_PRF_G5 0xCA /* G5 */ #define SMB_PRF_ESA390 0xCB /* ESA390 */ #define SMB_PRF_ZARCH 0xCC /* z/Architecture */ #define SMB_PRF_C7M 0xD2 /* VIA C7-M */ #define SMB_PRF_C7D 0xD3 /* VIA C7-D */ #define SMB_PRF_C7 0xD4 /* VIA C7 */ #define SMB_PRF_EDEN 0xD5 /* VIA Eden */ #define SMB_PRF_I860 0xFA /* i860 */ #define SMB_PRF_I960 0xFB /* i960 */ #define SMB_PRF_SH3 0x104 /* SH-3 */ #define SMB_PRF_SH4 0x105 /* SH-4 */ #define SMB_PRF_ARM 0x118 /* ARM */ --- 614,666 ---- #define SMB_PRF_ITANIC2 0xB8 /* Itanium 2 */ #define SMB_PRF_PENTIUM_M 0xB9 /* Pentium M */ #define SMB_PRF_CELERON_D 0xBA /* Celeron D */ #define SMB_PRF_PENTIUM_D 0xBB /* Pentium D */ #define SMB_PRF_PENTIUM_EE 0xBC /* Pentium Extreme Edition */ ! #define SMB_PRF_CORE_SOLO 0xBD /* Intel Core Solo */ ! #define SMB_PRF_CORE2_DUO 0xBF /* Intel Core 2 Duo */ ! #define SMB_PRF_CORE2_SOLO 0xC0 /* Intel Core 2 Solo */ ! #define SMB_PRF_CORE2_EX 0xC1 /* Intel Core 2 Extreme */ ! #define SMB_PRF_CORE2_QUAD 0xC2 /* Intel Core 2 Quad */ ! #define SMB_PRF_CORE2_EX_M 0xC3 /* Intel Core 2 Extreme mobile */ ! #define SMB_PRF_CORE2_DUO_M 0xC4 /* Intel Core 2 Duo mobile */ ! #define SMB_PRF_CORE2_SOLO_M 0xC5 /* Intel Core 2 Solo mobile */ ! #define SMB_PRF_CORE_I7 0xC6 /* Intel Core i7 */ ! #define SMB_PRF_CELERON_2C 0xC7 /* Celeron Dual-Core */ #define SMB_PRF_IBM390 0xC8 /* IBM 390 */ #define SMB_PRF_G4 0xC9 /* G4 */ #define SMB_PRF_G5 0xCA /* G5 */ #define SMB_PRF_ESA390 0xCB /* ESA390 */ #define SMB_PRF_ZARCH 0xCC /* z/Architecture */ + #define SMB_PRF_CORE_I5 0xCD /* Intel Core i5 */ + #define SMB_PRF_CORE_I3 0xCE /* Intel Core i3 */ #define SMB_PRF_C7M 0xD2 /* VIA C7-M */ #define SMB_PRF_C7D 0xD3 /* VIA C7-D */ #define SMB_PRF_C7 0xD4 /* VIA C7 */ #define SMB_PRF_EDEN 0xD5 /* VIA Eden */ + #define SMB_PRF_XEON_XC 0xD6 /* Intel Xeon Multi-Core */ + #define SMB_PRF_XEON_2C_3XXX 0xD7 /* Intel Xeon Dual-Core 3xxx */ + #define SMB_PRF_XEON_4C_3XXX 0xD8 /* Intel Xeon Quad-Core 3xxx */ + #define SMB_PRF_VIA_NANO 0xD9 /* VIA Nano */ + #define SMB_PRF_XEON_2C_5XXX 0xDA /* Intel Xeon Dual-Core 5xxx */ + #define SMB_PRF_XEON_4C_5XXX 0xDB /* Intel Xeon Quad-Core 5xxx */ + #define SMB_PRF_XEON_2C_7XXX 0xDD /* Intel Xeon Dual-Core 7xxx */ + #define SMB_PRF_XEON_4C_7XXX 0xDE /* Intel Xeon Quad-Core 7xxx */ + #define SMB_PRF_XEON_XC_7XXX 0xDF /* Intel Xeon Multi-Core 7xxx */ + #define SMB_PRF_XEON_XC_3400 0xE0 /* Intel Xeon Multi-Core 3400 */ + #define SMB_PRF_OPTERON_3000 0xE4 /* AMD Opteron 3000 */ + #define SMB_PRF_SEMPRON_II 0xE5 /* AMD Sempron II */ + #define SMB_PRF_OPTERON_4C_EM 0xE6 /* AMD Opteron Quad-Core embedded */ + #define SMB_PRF_PHENOM_3C 0xE7 /* AMD Phenom Triple-Core */ + #define SMB_PRF_TURIONU_2C_M 0xE8 /* AMD Turion Ultra Dual-Core mobile */ + #define SMB_PRF_TURION_2C_M 0xE9 /* AMD Turion Dual-Core mobile */ + #define SMB_PRF_ATHLON_2C 0xEA /* AMD Athlon Dual-Core */ + #define SMB_PRF_SEMPRON_SI 0xEB /* AMD Sempron SI */ + #define SMB_PRF_PHENOM_II 0xEC /* AMD Phenom II */ + #define SMB_PRF_ATHLON_II 0xED /* AMD Athlon II */ + #define SMB_PRF_OPTERON_6C 0xEE /* AMD Opteron Six-Core */ + #define SMB_PRF_SEMPRON_M 0xEF /* AMD Sempron M */ #define SMB_PRF_I860 0xFA /* i860 */ #define SMB_PRF_I960 0xFB /* i960 */ #define SMB_PRF_SH3 0x104 /* SH-3 */ #define SMB_PRF_SH4 0x105 /* SH-4 */ #define SMB_PRF_ARM 0x118 /* ARM */
*** 547,557 **** #define SMB_PRF_WINCHIP 0x140 /* WinChip */ #define SMB_PRF_DSP 0x15E /* DSP */ #define SMB_PRF_VIDEO 0x1F4 /* Video Processor */ /* ! * SMBIOS Cache Information. See DSP0134 Section 3.3.8 for more information. * If smba_size is zero, this indicates the specified cache is not present. */ typedef struct smbios_cache { uint32_t smba_maxsize; /* maximum installed size in bytes */ uint32_t smba_size; /* installed size in bytes */ --- 671,681 ---- #define SMB_PRF_WINCHIP 0x140 /* WinChip */ #define SMB_PRF_DSP 0x15E /* DSP */ #define SMB_PRF_VIDEO 0x1F4 /* Video Processor */ /* ! * SMBIOS Cache Information. See DSP0134 Section 7.8 for more information. * If smba_size is zero, this indicates the specified cache is not present. */ typedef struct smbios_cache { uint32_t smba_maxsize; /* maximum installed size in bytes */ uint32_t smba_size; /* installed size in bytes */
*** 594,603 **** --- 718,733 ---- #define SMB_CAA_2WAY 0x04 /* 2-way set associative */ #define SMB_CAA_4WAY 0x05 /* 4-way set associative */ #define SMB_CAA_FULL 0x06 /* fully associative */ #define SMB_CAA_8WAY 0x07 /* 8-way set associative */ #define SMB_CAA_16WAY 0x08 /* 16-way set associative */ + #define SMB_CAA_12WAY 0x09 /* 12-way set associative */ + #define SMB_CAA_24WAY 0x0A /* 24-way set associative */ + #define SMB_CAA_32WAY 0x0B /* 32-way set associative */ + #define SMB_CAA_48WAY 0x0C /* 48-way set associative */ + #define SMB_CAA_64WAY 0x0D /* 64-way set associative */ + #define SMB_CAA_20WAY 0x0E /* 20-way set associative */ #define SMB_CAM_WT 0x00 /* write-through */ #define SMB_CAM_WB 0x01 /* write-back */ #define SMB_CAM_VARY 0x02 /* varies by address */ #define SMB_CAM_UNKNOWN 0x03 /* unknown */
*** 609,619 **** #define SMB_CAF_ENABLED 0x01 /* enabled at boot time */ #define SMB_CAF_SOCKETED 0x02 /* cache is socketed */ /* ! * SMBIOS Port Information. See DSP0134 Section 3.3.9 for more information. * The internal reference designator string is also mapped to the location. */ typedef struct smbios_port { const char *smbo_iref; /* internal reference designator */ const char *smbo_eref; /* external reference designator */ --- 739,749 ---- #define SMB_CAF_ENABLED 0x01 /* enabled at boot time */ #define SMB_CAF_SOCKETED 0x02 /* cache is socketed */ /* ! * SMBIOS Port Information. See DSP0134 Section 7.9 for more information. * The internal reference designator string is also mapped to the location. */ typedef struct smbios_port { const char *smbo_iref; /* internal reference designator */ const char *smbo_eref; /* external reference designator */
*** 655,664 **** --- 785,795 ---- #define SMB_POC_MINI14 0x1D /* Mini-Centronics Type 14 */ #define SMB_POC_MINI26 0x1E /* Mini-Centronics Type 26 */ #define SMB_POC_MINIJACK 0x1F /* Mini-jack (headphones) */ #define SMB_POC_BNC 0x20 /* BNC */ #define SMB_POC_1394 0x21 /* 1394 */ + #define SMB_POC_SATA 0x22 /* SAS/SATA plug receptacle */ #define SMB_POC_PC98 0xA0 /* PC-98 */ #define SMB_POC_PC98HR 0xA1 /* PC-98Hireso */ #define SMB_POC_PCH98 0xA2 /* PC-H98 */ #define SMB_POC_PC98NOTE 0xA3 /* PC-98Note */ #define SMB_POC_PC98FULL 0xA4 /* PC-98Full */
*** 701,712 **** #define SMB_POT_8251 0xA0 /* 8251 compatible */ #define SMB_POT_8251F 0xA1 /* 8251 FIFO compatible */ #define SMB_POT_OTHER 0xFF /* other */ /* ! * SMBIOS Slot Information. See DSP0134 Section 3.3.10 for more information. ! * See DSP0134 3.3.10.5 for how to interpret the value of smbl_id. */ typedef struct smbios_slot { const char *smbl_name; /* reference designation */ uint8_t smbl_type; /* slot type */ uint8_t smbl_width; /* slot data bus width */ --- 832,843 ---- #define SMB_POT_8251 0xA0 /* 8251 compatible */ #define SMB_POT_8251F 0xA1 /* 8251 FIFO compatible */ #define SMB_POT_OTHER 0xFF /* other */ /* ! * SMBIOS Slot Information. See DSP0134 Section 7.10 for more information. ! * See DSP0134 7.10.5 for how to interpret the value of smbl_id. */ typedef struct smbios_slot { const char *smbl_name; /* reference designation */ uint8_t smbl_type; /* slot type */ uint8_t smbl_width; /* slot data bus width */
*** 748,757 **** --- 879,900 ---- #define SMB_SLT_PCIE1 0xA6 /* PCI Express x1 */ #define SMB_SLT_PCIE2 0xA7 /* PCI Express x2 */ #define SMB_SLT_PCIE4 0xA8 /* PCI Express x4 */ #define SMB_SLT_PCIE8 0xA9 /* PCI Express x8 */ #define SMB_SLT_PCIE16 0xAA /* PCI Express x16 */ + #define SMB_SLT_PCIE2G 0xAB /* PCI Exp. Gen 2 */ + #define SMB_SLT_PCIE2G1 0xAC /* PCI Exp. Gen 2 x1 */ + #define SMB_SLT_PCIE2G2 0xAD /* PCI Exp. Gen 2 x2 */ + #define SMB_SLT_PCIE2G4 0xAE /* PCI Exp. Gen 2 x4 */ + #define SMB_SLT_PCIE2G8 0xAF /* PCI Exp. Gen 2 x8 */ + #define SMB_SLT_PCIE2G16 0xB0 /* PCI Exp. Gen 2 x16 */ + #define SMB_SLT_PCIE3G 0xB1 /* PCI Exp. Gen 3 */ + #define SMB_SLT_PCIE3G1 0xB2 /* PCI Exp. Gen 3 x1 */ + #define SMB_SLT_PCIE3G2 0xB3 /* PCI Exp. Gen 3 x2 */ + #define SMB_SLT_PCIE3G4 0xB4 /* PCI Exp. Gen 3 x4 */ + #define SMB_SLT_PCIE3G8 0xB5 /* PCI Exp. Gen 3 x8 */ + #define SMB_SLT_PCIE3G16 0xB6 /* PCI Exp. Gen 3 x16 */ #define SMB_SLW_OTHER 0x01 /* other */ #define SMB_SLW_UNKNOWN 0x02 /* unknown */ #define SMB_SLW_8 0x03 /* 8 bit */ #define SMB_SLW_16 0x04 /* 16 bit */
*** 788,798 **** #define SMB_SLCH2_PME 0x01 /* slot supports PME# signal */ #define SMB_SLCH2_HOTPLUG 0x02 /* slot supports hot-plug devices */ #define SMB_SLCH2_SMBUS 0x04 /* slot supports SMBus signal */ /* ! * SMBIOS On-Board Device Information. See DSP0134 Section 3.3.11 for more * information. Any number of on-board device sections may be present, each * containing one or more records. The smbios_info_obdevs() function permits * the caller to retrieve one or more of the records from a given section. */ typedef struct smbios_obdev { --- 931,941 ---- #define SMB_SLCH2_PME 0x01 /* slot supports PME# signal */ #define SMB_SLCH2_HOTPLUG 0x02 /* slot supports hot-plug devices */ #define SMB_SLCH2_SMBUS 0x04 /* slot supports SMBus signal */ /* ! * SMBIOS On-Board Device Information. See DSP0134 Section 7.11 for more * information. Any number of on-board device sections may be present, each * containing one or more records. The smbios_info_obdevs() function permits * the caller to retrieve one or more of the records from a given section. */ typedef struct smbios_obdev {
*** 811,821 **** #define SMB_OBT_PATA 0x08 /* pata */ #define SMB_OBT_SATA 0x09 /* sata */ #define SMB_OBT_SAS 0x0A /* sas */ /* ! * SMBIOS BIOS Language Information. See DSP0134 Section 3.3.14 for more * information. The smbios_info_strtab() function can be applied using a * count of smbla_num to retrieve the other possible language settings. */ typedef struct smbios_lang { const char *smbla_cur; /* current language setting */ --- 954,964 ---- #define SMB_OBT_PATA 0x08 /* pata */ #define SMB_OBT_SATA 0x09 /* sata */ #define SMB_OBT_SAS 0x0A /* sas */ /* ! * SMBIOS BIOS Language Information. See DSP0134 Section 7.14 for more * information. The smbios_info_strtab() function can be applied using a * count of smbla_num to retrieve the other possible language settings. */ typedef struct smbios_lang { const char *smbla_cur; /* current language setting */
*** 825,835 **** #define SMB_LFMT_LONG 0 /* <ISO639>|<ISO3166>|Encoding Method */ #define SMB_LFMT_SHORT 1 /* <ISO930><ISO3166> */ /* ! * SMBIOS System Event Log Information. See DSP0134 Section 3.3.16 for more * information. Accessing the event log itself requires additional interfaces. */ typedef struct smbios_evtype { uint8_t smbevt_ltype; /* log type */ uint8_t smbevt_dtype; /* variable data format type */ --- 968,978 ---- #define SMB_LFMT_LONG 0 /* <ISO639>|<ISO3166>|Encoding Method */ #define SMB_LFMT_SHORT 1 /* <ISO930><ISO3166> */ /* ! * SMBIOS System Event Log Information. See DSP0134 Section 7.16 for more * information. Accessing the event log itself requires additional interfaces. */ typedef struct smbios_evtype { uint8_t smbevt_ltype; /* log type */ uint8_t smbevt_dtype; /* variable data format type */
*** 867,877 **** #define SMB_EVHF_NONE 0 /* no log headers used */ #define SMB_EVHF_F1 1 /* DMTF log header type 1 */ /* ! * SMBIOS Physical Memory Array Information. See DSP0134 Section 3.3.17 for * more information. This describes a collection of physical memory devices. */ typedef struct smbios_memarray { uint8_t smbma_location; /* physical device location */ uint8_t smbma_use; /* physical device functional purpose */ --- 1010,1020 ---- #define SMB_EVHF_NONE 0 /* no log headers used */ #define SMB_EVHF_F1 1 /* DMTF log header type 1 */ /* ! * SMBIOS Physical Memory Array Information. See DSP0134 Section 7.17 for * more information. This describes a collection of physical memory devices. */ typedef struct smbios_memarray { uint8_t smbma_location; /* physical device location */ uint8_t smbma_use; /* physical device functional purpose */
*** 913,923 **** #define SMB_MAE_SECC 0x05 /* single-bit ECC */ #define SMB_MAE_MECC 0x06 /* multi-bit ECC */ #define SMB_MAE_CRC 0x07 /* CRC */ /* ! * SMBIOS Memory Device Information. See DSP0134 Section 3.3.18 for more * information. One or more of these structures are associated with each * smbios_memarray_t. A structure is present even for unpopulated sockets. * Unknown values are set to -1. A smbmd_size of 0 indicates unpopulated. * WARNING: Some BIOSes appear to export the *maximum* size of the device * that can appear in the corresponding socket as opposed to the current one. --- 1056,1066 ---- #define SMB_MAE_SECC 0x05 /* single-bit ECC */ #define SMB_MAE_MECC 0x06 /* multi-bit ECC */ #define SMB_MAE_CRC 0x07 /* CRC */ /* ! * SMBIOS Memory Device Information. See DSP0134 Section 7.19 for more * information. One or more of these structures are associated with each * smbios_memarray_t. A structure is present even for unpopulated sockets. * Unknown values are set to -1. A smbmd_size of 0 indicates unpopulated. * WARNING: Some BIOSes appear to export the *maximum* size of the device * that can appear in the corresponding socket as opposed to the current one.
*** 931,943 **** uint8_t smbmd_form; /* form factor */ uint8_t smbmd_set; /* set (0x00=none, 0xFF=unknown) */ uint8_t smbmd_type; /* memory type */ uint8_t smbmd_pad; /* padding */ uint32_t smbmd_flags; /* flags (see below) */ ! uint32_t smbmd_speed; /* speed in nanoseconds */ const char *smbmd_dloc; /* physical device locator string */ const char *smbmd_bloc; /* physical bank locator string */ } smbios_memdevice_t; #define SMB_MDFF_OTHER 0x01 /* other */ #define SMB_MDFF_UNKNOWN 0x02 /* unknown */ #define SMB_MDFF_SIMM 0x03 /* SIMM */ --- 1074,1091 ---- uint8_t smbmd_form; /* form factor */ uint8_t smbmd_set; /* set (0x00=none, 0xFF=unknown) */ uint8_t smbmd_type; /* memory type */ uint8_t smbmd_pad; /* padding */ uint32_t smbmd_flags; /* flags (see below) */ ! uint32_t smbmd_speed; /* speed in MHz */ const char *smbmd_dloc; /* physical device locator string */ const char *smbmd_bloc; /* physical bank locator string */ + uint8_t smbmd_rank; /* rank */ + uint16_t smbmd_clkspeed; /* configured clock speed */ + uint16_t smbmd_minvolt; /* minimum voltage */ + uint16_t smbmd_maxvolt; /* maximum voltage */ + uint16_t smbmd_confvolt; /* configured voltage */ } smbios_memdevice_t; #define SMB_MDFF_OTHER 0x01 /* other */ #define SMB_MDFF_UNKNOWN 0x02 /* unknown */ #define SMB_MDFF_SIMM 0x03 /* SIMM */
*** 972,981 **** --- 1120,1131 ---- #define SMB_MDT_SGRAM 0x10 /* SGRAM */ #define SMB_MDT_RDRAM 0x11 /* RDRAM */ #define SMB_MDT_DDR 0x12 /* DDR */ #define SMB_MDT_DDR2 0x13 /* DDR2 */ #define SMB_MDT_DDR2FBDIMM 0x14 /* DDR2 FBDIMM */ + #define SMB_MDT_DDR3 0x18 /* DDR3 */ + #define SMB_MDT_FBD2 0x19 /* FBD2 */ #define SMB_MDF_OTHER 0x0002 /* other */ #define SMB_MDF_UNKNOWN 0x0004 /* unknown */ #define SMB_MDF_FASTPG 0x0008 /* fast-paged */ #define SMB_MDF_STATIC 0x0010 /* static column */
*** 985,997 **** #define SMB_MDF_CMOS 0x0100 /* CMOS */ #define SMB_MDF_EDO 0x0200 /* EDO */ #define SMB_MDF_WDRAM 0x0400 /* Window DRAM */ #define SMB_MDF_CDRAM 0x0800 /* Cache DRAM */ #define SMB_MDF_NV 0x1000 /* non-volatile */ /* ! * SMBIOS Memory Array Mapped Address. See DSP0134 Section 3.3.20 for more * information. We convert start/end addresses into addr/size for convenience. */ typedef struct smbios_memarrmap { id_t smbmam_array; /* physical memory array handle */ uint32_t smbmam_width; /* number of devices that form a row */ --- 1135,1155 ---- #define SMB_MDF_CMOS 0x0100 /* CMOS */ #define SMB_MDF_EDO 0x0200 /* EDO */ #define SMB_MDF_WDRAM 0x0400 /* Window DRAM */ #define SMB_MDF_CDRAM 0x0800 /* Cache DRAM */ #define SMB_MDF_NV 0x1000 /* non-volatile */ + #define SMB_MDF_REG 0x2000 /* Registered (Buffered) */ + #define SMB_MDF_UNREG 0x4000 /* Unregistered (Unbuffered) */ + #define SMB_MDF_LRDIMM 0x8000 /* LRDIMM */ + #define SMB_MDR_SINGLE 0x01 /* single */ + #define SMB_MDR_DUAL 0x02 /* dual */ + #define SMB_MDR_QUAD 0x04 /* quad */ + #define SMB_MDR_OCTAL 0x08 /* octal */ + /* ! * SMBIOS Memory Array Mapped Address. See DSP0134 Section 7.20 for more * information. We convert start/end addresses into addr/size for convenience. */ typedef struct smbios_memarrmap { id_t smbmam_array; /* physical memory array handle */ uint32_t smbmam_width; /* number of devices that form a row */
*** 998,1008 **** uint64_t smbmam_addr; /* physical address of mapping */ uint64_t smbmam_size; /* size in bytes of address range */ } smbios_memarrmap_t; /* ! * SMBIOS Memory Device Mapped Address. See DSP0134 Section 3.3.21 for more * information. We convert start/end addresses into addr/size for convenience. */ typedef struct smbios_memdevmap { id_t smbmdm_device; /* memory device handle */ id_t smbmdm_arrmap; /* memory array mapped address handle */ --- 1156,1166 ---- uint64_t smbmam_addr; /* physical address of mapping */ uint64_t smbmam_size; /* size in bytes of address range */ } smbios_memarrmap_t; /* ! * SMBIOS Memory Device Mapped Address. See DSP0134 Section 7.21 for more * information. We convert start/end addresses into addr/size for convenience. */ typedef struct smbios_memdevmap { id_t smbmdm_device; /* memory device handle */ id_t smbmdm_arrmap; /* memory array mapped address handle */
*** 1012,1022 **** uint8_t smbmdm_ipos; /* interleave position */ uint8_t smbmdm_idepth; /* interleave data depth */ } smbios_memdevmap_t; /* ! * SMBIOS Hardware Security Settings. See DSP0134 Section 3.3.25 for more * information. Only one such record will be present in the SMBIOS. */ typedef struct smbios_hwsec { uint8_t smbh_pwr_ps; /* power-on password status */ uint8_t smbh_kbd_ps; /* keyboard password status */ --- 1170,1180 ---- uint8_t smbmdm_ipos; /* interleave position */ uint8_t smbmdm_idepth; /* interleave data depth */ } smbios_memdevmap_t; /* ! * SMBIOS Hardware Security Settings. See DSP0134 Section 7.25 for more * information. Only one such record will be present in the SMBIOS. */ typedef struct smbios_hwsec { uint8_t smbh_pwr_ps; /* power-on password status */ uint8_t smbh_kbd_ps; /* keyboard password status */
*** 1028,1038 **** #define SMB_HWSEC_PS_ENABLED 0x01 /* password enabled */ #define SMB_HWSEC_PS_NOTIMPL 0x02 /* password not implemented */ #define SMB_HWSEC_PS_UNKNOWN 0x03 /* password status unknown */ /* ! * SMBIOS System Boot Information. See DSP0134 Section 3.3.33 for more * information. The contents of the data varies by type and is undocumented * from the perspective of DSP0134 -- it seems to be left as vendor-specific. * The (D) annotation next to SMB_BOOT_* below indicates possible data payload. */ typedef struct smbios_boot { --- 1186,1196 ---- #define SMB_HWSEC_PS_ENABLED 0x01 /* password enabled */ #define SMB_HWSEC_PS_NOTIMPL 0x02 /* password not implemented */ #define SMB_HWSEC_PS_UNKNOWN 0x03 /* password status unknown */ /* ! * SMBIOS System Boot Information. See DSP0134 Section 7.33 for more * information. The contents of the data varies by type and is undocumented * from the perspective of DSP0134 -- it seems to be left as vendor-specific. * The (D) annotation next to SMB_BOOT_* below indicates possible data payload. */ typedef struct smbios_boot {
*** 1056,1066 **** #define SMB_BOOT_OEM_HI 191 /* high end of OEM-specific range */ #define SMB_BOOT_PROD_LO 192 /* low end of product-specific range */ #define SMB_BOOT_PROD_HI 255 /* high end of product-specific range */ /* ! * SMBIOS IPMI Device Information. See DSP0134 Section 3.3.39 and also * Appendix C1 of the IPMI specification for more information on this record. */ typedef struct smbios_ipmi { uint_t smbip_type; /* BMC interface type */ smbios_version_t smbip_vers; /* BMC's IPMI specification version */ --- 1214,1224 ---- #define SMB_BOOT_OEM_HI 191 /* high end of OEM-specific range */ #define SMB_BOOT_PROD_LO 192 /* low end of product-specific range */ #define SMB_BOOT_PROD_HI 255 /* high end of product-specific range */ /* ! * SMBIOS IPMI Device Information. See DSP0134 Section 7.39 and also * Appendix C1 of the IPMI specification for more information on this record. */ typedef struct smbios_ipmi { uint_t smbip_type; /* BMC interface type */ smbios_version_t smbip_vers; /* BMC's IPMI specification version */
*** 1082,1092 **** #define SMB_IPMI_F_INTRSPEC 0x02 /* intr information is specified */ #define SMB_IPMI_F_INTRHIGH 0x04 /* intr active high (else low) */ #define SMB_IPMI_F_INTREDGE 0x08 /* intr is edge triggered (else lvl) */ /* ! * SMBIOS Onboard Devices Extended Information. See DSP0134 Section 3.3.42 * for more information. */ typedef struct smbios_obdev_ext { const char *smboe_name; /* reference designation */ uint8_t smboe_dtype; /* device type */ --- 1240,1250 ---- #define SMB_IPMI_F_INTRSPEC 0x02 /* intr information is specified */ #define SMB_IPMI_F_INTRHIGH 0x04 /* intr active high (else low) */ #define SMB_IPMI_F_INTREDGE 0x08 /* intr is edge triggered (else lvl) */ /* ! * SMBIOS Onboard Devices Extended Information. See DSP0134 Section 7.42 * for more information. */ typedef struct smbios_obdev_ext { const char *smboe_name; /* reference designation */ uint8_t smboe_dtype; /* device type */
*** 1156,1166 **** * The library will then map older or newer data structures to that as needed. */ #define SMB_VERSION_23 0x0203 /* SMBIOS encoding for DMTF spec 2.3 */ #define SMB_VERSION_24 0x0204 /* SMBIOS encoding for DMTF spec 2.4 */ ! #define SMB_VERSION SMB_VERSION_24 /* SMBIOS latest version definitions */ #define SMB_O_NOCKSUM 0x1 /* do not verify header checksums */ #define SMB_O_NOVERS 0x2 /* do not verify header versions */ #define SMB_O_ZIDS 0x4 /* strip out identification numbers */ #define SMB_O_MASK 0x7 /* mask of valid smbios_*open flags */ --- 1314,1328 ---- * The library will then map older or newer data structures to that as needed. */ #define SMB_VERSION_23 0x0203 /* SMBIOS encoding for DMTF spec 2.3 */ #define SMB_VERSION_24 0x0204 /* SMBIOS encoding for DMTF spec 2.4 */ ! #define SMB_VERSION_25 0x0205 /* SMBIOS encoding for DMTF spec 2.5 */ ! #define SMB_VERSION_26 0x0206 /* SMBIOS encoding for DMTF spec 2.6 */ ! #define SMB_VERSION_27 0x0207 /* SMBIOS encoding for DMTF spec 2.7 */ ! #define SMB_VERSION_28 0x0208 /* SMBIOS encoding for DMTF spec 2.8 */ ! #define SMB_VERSION SMB_VERSION_28 /* SMBIOS latest version definitions */ #define SMB_O_NOCKSUM 0x1 /* do not verify header checksums */ #define SMB_O_NOVERS 0x2 /* do not verify header versions */ #define SMB_O_ZIDS 0x4 /* strip out identification numbers */ #define SMB_O_MASK 0x7 /* mask of valid smbios_*open flags */
*** 1287,1304 **** --- 1449,1469 ---- extern const char *smbios_memdevice_form_desc(uint_t); extern const char *smbios_memdevice_type_desc(uint_t); extern const char *smbios_memdevice_flag_name(uint_t); extern const char *smbios_memdevice_flag_desc(uint_t); + extern const char *smbios_memdevice_rank_desc(uint_t); extern const char *smbios_port_conn_desc(uint_t); extern const char *smbios_port_type_desc(uint_t); extern const char *smbios_processor_family_desc(uint_t); extern const char *smbios_processor_status_desc(uint_t); extern const char *smbios_processor_type_desc(uint_t); extern const char *smbios_processor_upgrade_desc(uint_t); + extern const char *smbios_processor_core_flag_name(uint_t); + extern const char *smbios_processor_core_flag_desc(uint_t); extern const char *smbios_slot_type_desc(uint_t); extern const char *smbios_slot_width_desc(uint_t); extern const char *smbios_slot_usage_desc(uint_t); extern const char *smbios_slot_length_desc(uint_t);