diff options
author | Graydon, Tracy <tracy.graydon@intel.com> | 2013-03-27 17:39:39 -0700 |
---|---|---|
committer | Graydon, Tracy <tracy.graydon@intel.com> | 2013-03-27 17:39:39 -0700 |
commit | 6b9dfcfcd49a63b5243bef8296260a4f18e3208a (patch) | |
tree | 22062628b32efca641a6a65263df7f223f581ac2 | |
parent | 1b8e75cd56372800ec0005d2387022992f2961e3 (diff) | |
download | dmidecode-2.0.tar.gz dmidecode-2.0.tar.bz2 dmidecode-2.0.zip |
Initial commit for 2.0 ExtrasHEADsubmit/2.0alpha/20130328.004110submit/2.0/20130328.003947accepted/2.0/20130328.0012392.0
-rw-r--r-- | AUTHORS | 83 | ||||
-rw-r--r-- | CHANGELOG | 1335 | ||||
-rw-r--r-- | LICENSE | 340 | ||||
-rw-r--r-- | README | 116 | ||||
-rw-r--r-- | packaging/dmidecode-2.11-chassis_fix.patch | 42 | ||||
-rw-r--r-- | packaging/dmidecode-2.11-dmidecode_fix.patch | 24 | ||||
-rw-r--r-- | packaging/dmidecode-2.11-dmioem_hp_fix.patch | 32 | ||||
-rw-r--r-- | packaging/dmidecode-2.11-manpage_update.patch | 55 | ||||
-rw-r--r-- | packaging/dmidecode-2.11-smbios-271.patch | 119 | ||||
-rw-r--r-- | packaging/dmidecode-2.11-type16-fix.patch | 30 | ||||
-rw-r--r-- | packaging/dmidecode.spec | 13 |
11 files changed, 2189 insertions, 0 deletions
@@ -0,0 +1,83 @@ +DEVELOPER AND MAINTAINER +Anton Arapov <anton@redhat.com> + +ORIGINAL AUTHORS +Alan Cox <alan@redhat.com> +Jean Delvare <khali@linux-fr.org> + +CODE CONTRIBUTORS (IN CHRONOLOGICAL ORDER) +Matt Domsch <Matt_Domsch@dell.com> +Arjan van de Ven <arjanv@redhat.com> +Mark D. Studebaker <mds@paradyne.com> +Larry Lile <llile@dreamworks.com> +Dave Johnson <ddj@cascv.brown.edu> +Petter Reinholdtsen <pere@hungry.com> +Roberto Nibali <ratz@tac.ch> +John Cagle <jcagle@kernel.org> +Jens Elkner <elkner@linofee.org> +Jarod Wilson <jarod@redhat.com> + +MANY THANKS TO (IN CHRONOLOGICAL ORDER) +Werner Heuser +Alexandre Duret-Lutz +Xavier Roche +Pamela Huntley +Gael Stephan +Sebastian Henschel +Richard Sharpe +David Wilson +Glen Foster +Chad Smith +Joshua Goldenhar +Luc Van de Velde +Mario Lang +Hugues Lepesant +Sergey Leonovich +Mike Cooper +Marc Rieffel +Jeff Moyer +Josef Moellers +Zing Zing Shishak +Rafael Avila de Espindola +Roger Koot +Martin Pool +Doug Brenner +Alex Williamson +Durval Menezes +Raphael Raimbault +Raul Nunez de Arenas Coronado +Francois Revol +Dominik Klein +Erwan Velu +Don Howard +Frans Pop +Tomek Mateja +Myke Olson +Torsten Seemann +Garry Belka +Klaus Muth +Antoine Fuselier +Matthew Garrett +Landry Breuil +Luke Suchocki +Attila Nagy +Alex Iribarren +Sebastien Douche +William Lallemand +Olivier Guerrier +Pascal Terjan +Stuart Hayes +Sofian Brabez +Vincent Pelletier +Andreas Gruenbacher +Lin Li +Thomas Hiller +Paul Flo Williams +Olof Johansson +Alexandre Lissy +Michal Svec +Vojtech Pavlik +Murlin Wenzel +Harald Mueller-Ney +Lars Mueller +Thomas Mingarelli diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..0545f8a --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,1335 @@ +2010-11-24 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Assume that the max power capacity is expressed in + Watts, not milliWatts (DMI type 39). The specification isn't + clear about the actual unit, but the only implementation I've + seen (HP Proliant G7) clearly uses Watts. Also, using milliWatts + would limit the max value that can be stored to 32 W, which + doesn't make much sense. + * dmidecode.c: Fix offset of partition width (DMI type 19). + * dmidecode.c: Decode BIOS language information flags + (DMI type 13). + * dmidecode.c: Fix CPU flags mask (DMI type 4). + * dmidecode.c: Reword "PCI Express Gen 2" to just "PCI Express 2" + (DMI type 9). + * dmidecode.c: Decode the slot ID for all PCI Express and PCI + Express 2 slots (DMI type 9). + +2010-11-24 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.7.0. + + * dmidecode.c: Update all references to the SMBIOS specification + to match the new numbering. + * dmidecode.c: Add UEFI support and virtual machine flags to BIOS + characteristics (DMI type 0). + * dmideocde.c: Add SKU number field to system enclosure or chassis + (DMI type 3). + * dmidecode.c: Add many Intel, AMD and VIA CPU family names + (DMI type 4). + * dmidecode.c: Add many socket formats (DMI type 4). + * dmidecode.c: Add processor characteristics flags (DMI type 4). + * util.c, util.h: Add utility function u64_range, which computes + the range between two u64 values. + * dmidecode.c: Add support for memory arrays of 2 TB and more + (DMI types 16, 19 and 20). + * dmidecode.c: Add support for memory devices of 32 GB and more + (DMI type 17). + * dmidecode.c: Add description of cooling device (DMI type 27). + * dmidecode.c: Add limited support for new DMI type 42 (Management + Controller Host Interface). + +2010-11-16 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Handle ambiguous processor family value 0x30 + (DMI type 4). + * dmidecode.c: Prevent unlikely array overrun when decoding + processor family value 0xBE (DMI type 4). + * dmidecode.c: Handle DMI type 2 record of size 0x0E. + +2010-11-11 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix decoding of IPMI base address LSB. + +2010-11-09 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Drop redundant/obsolete references to + CIM_Processor.Family. + +2010-10-26 Jean Delvare <khali@linux-fr.org> + + Update to support Intel AP-485 (CPUID) revision 36 (was 32). + + * dmidecode.c: Update the link to the AP-485 document, the revision + and the table number. + * dmidecode.c: Update two CPU flag descriptions (FXSR and HTT). + Drop CPU flag IA64. + * dmidecode.c: Update the list of processors for which we decode the + CPUID flags. + +2010-10-11 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: One more SMBIOS version fix-up case. + * Makefile: Rework BSD make compatibility trick. The previous + trick would break GNU make 3.82. + +2010-09-29 Anton Arapov <anton@redhat.com> + + * util.c: makes dmidecode fall back to regular reads if the mmap + fails. Patch from Olof Johansson. + +2010-09-21 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix Xeon 7xxx entries in CPU name lookup table + (DMI type 4). Patch from Paul Flo Williams. + +2009-08-28 Jarod Wilson <jarod@redhat.com> + + Update to support SMBIOS specification version 2.6.1. + + * dmidecode.c: Add processor types "Dual-Core Xeon 5200", + "Dual-Core Xeon 7200", "Quad-Core Xeon 7300", "QuadCore Xeon 7400", + "Multi-Core Xeon 7400", "Core i7", "Dual-Core Celeron", + "Multi-Core Xeon", "Dual-Core Xeon 3xxx", "Quad-Core Xeon 3xxx", + "Dual-Core Xeon 5xxx", "Quad-Core Xeon 5xxx", "Dual-Core Xeon 7xxx", + "Quad-Core Xeon 7xxx" and "Multi-Core Xeon 7xxx" (DMI type 4). + * dmidecode.c: Add slot types "PCI Express Gen 2 x1", + "PCI Express Gen 2 x2", "PCI Express Gen 2 x4", + "PCI Express Gen 2 x8" and "PCI Express Gen 2 x16" (DMI type 9). + * dmidecode.c: Add memory device types "DDR3" and "FB-DIMM" + (DMI type 17). + * dmidecode.c: Add cache associativity types "12-way Set-associative", + "24-way Set-associative", "32-way Set-associative", + "48-way Set-associative" and "64-way Set-associative" (DMI type 7). + +2009-07-27 Jean Delvare <khali@linux-fr.org> + + * dmioem.c: Recognize "Hewlett-Packard" as a possible DMI vendor + string for HP. Orginal patch from Thomas Hiller (HP). + * dmidecode.c: Add processor upgrade type "Socket LGA1366" + (DMI type 4). + +2009-06-19 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix decoding of memory array capacity. A maximum + capacity of 128 GB would erroneously be reported as Unknown, + while a unknown capacity would be erroneously reported as 2048 + GB. Bug reported by Lin Li (HP). + +2009-04-30 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Warn if decoding an SMBIOS implementation which is + newer than what we support. + +2009-04-04 Jean Delvare <khali@linux-fr.org> + + * Makefile: Clarify license. + +2008-11-23 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Stop using the inline keyword. It causes more + portability issues than is worth given how little we care about + performance in this tool, and recent versions of gcc know when + to inline functions anyway. + * version.h: Set version to 2.10. + +2008-11-14 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Handle chassis information records of size 19 + (DMI type 3). + +2008-11-10 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Claim to support revision 32 of Intel AP-485 + (CPUID). No relevant change since revision 31. + * dmidecode.c: Update reference to AMD CPUID document. + +2008-11-09 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Decode the CPUID of more Intel, VIA and AMD + processors (DMI type 4). + * dmidecode.c: More CPUID exceptions based on the version string + (DMI type 4). + * README: Drop reference to the Linux kernel. + * README: Drop "model-specific issues" common problem entry, it is + no longer relevant. + * README: Simplify "IA-64" common problem entry, most of the + issues are solved by now. + +2008-11-08 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add many processor types taken from the CIM Schema. + * dmidecode.c: Drop all references to the DMTF Master MIF + document. This document hasn't been updated in years, so the + additions it may contain are no longer relevant. + +2008-11-07 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Handle base board information records of size 9 + (DMI type 2). + * dmidecode.c: Don't display access time equivalent of memory + device speed (DMI type 17). The access time didn't add much + value, and rounding effects made it look bad at times. + +2008-11-07 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.6, fourth round. + + * dmidecode.c: Initial support for additional information entries + (DMI type 40). Proper support of this new entry type would + require redesigning a large part of the code, so I am waiting + to see actual implementations of it to decide whether it's worth + the effort. + * dmidecode.c, dmidecode.8: Update reference SMBIOS document. + * dmiopt.c, dmidecode.8: Include entry type 41 in --type baseboard. + +2008-11-05 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.6, third round. + + * dmidecode.c: Decode the group number, bus number and + device/function number of system slots (DMI type 9). + Based on a preliminary patch by Matt Domsch. + * dmidecode.c: Decode onboard devices extended information + entries (DMI type 41). Based on a preliminary patch by Matt + Domsch. + * dmidecode.c: Add slot types "PCI Express x1", "PCI Express x2", + "PCI Express x4", "PCI Express x8" and "PCI Express x16" + (DMI type 9). + * dmidecode.c: Decode the memory device rank (DMI type 17). + +2008-11-02 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Use binary search for dmi_processor_family, it's + faster than linear search (DMI type 4). + * dmidecode.c: Decode boot integrity services entry point entries + (DMI type 31). + +2008-10-31 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: The compiler knows how to reuse strings, it doesn't + need our help, and actually it does a better job without it. So, + turn out_of_spec into a define. + * dmidecode.c: Optimize functions dmi_processor_status(), + dmi_cache_location(), dmi_system_reset_boot_option() and + dmi_ipmi_register_spacing(). + +2008-10-30 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, dmiopt.c, dmidecode.8: Option --dump is only a + modifier as --quiet is, so it's not actually mutually exclusive + with the output format options. + * dmidecode.c: Make options --dump-bin and --quiet work together. + * dmidecode.c: Delay string filtering when option --dump is used. + * dmidecode.c: Refactor dmi_processor_family function to avoid + code duplication. + * dmidecode.c: Fix up invalid SMBIOS version 2.51. + +2008-10-29 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Handle special case of processor family code 0xBE, + which can be both Core 2 or K7. We use the processor + manufacturer string as a hint (DMI type 4). + +2008-10-28 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, dmidecode.h, dmiopt.c, dmiopt.h: Don't use function + pointers for special string cases. Each special case is itself + special and needs to call a function with its own prototype, so + better have dedicated code to handle it all. + * dmidecode.c, dmidecode.h, dmioem.c, dmioem.h: Mark a few + pointers const. + * dmidecode.c, util.c, util.h: When dumping the DMI table to a + binary file, truncate the file first. + * dmidecode.c: Support Processor Family 2 field also when queried + with option --string. + +2008-10-27 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.6, second round. + + * dmidecode.c: Add support for Processor Family 2 field + (DMI type 4). + * dmidecode.c: Add processor types "Turion 64 X2", "Core Solo", + "Core 2 Duo", "ESA/390 G6", "z/Architectur", "C7-M", "C7-D", + "C7" and "Eden" (DMI type 4). + * dmidecode.c: Fix typo in processor type "AMD29000" (DMI type 4). + * dmidecode.c: Add processor upgrade types "Socket S1", + "Socket AM2" and "Socket F (1207)" (DMI type 4). + +2008-10-26 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.6, first round. + + * dmidecode.c: Byte-swap the first 3 fields of the UUID + (DMI type 1). + * dmidecode.c: Add chassis types "Blade" and "Blade Enclosure" + (DMI type 3). + +2008-10-26 Jean Delvare <khali@linux-fr.org> + + * dmiopt.c, dmidecode.8: Simplify the handling and documentation + of mutually exclusive output format options. + * dmidecode.8: Document the binary dump file format. + * dmidecode.c: Don't display the source dump file name in quiet + mode. + * biosdecode.c, dmidecode.c, dmioem.c, dmiopt.c, dmiopt.h, + ownership.c, types.h, util.c, vpddecode.c, vpdopt.c, vpdopt.h: + Mass coding-style change: add spaces around operators. + * vpddecode.c: Fix --quiet option. + * dmidecode.h, dmiopt.h: Pass version information to print + callback functions. + * dmidecode.c: Fix up invalid SMBIOS version. + * dmidecode.c: Handle base board information records of size 10 + (DMI type 2). + +2008-10-25 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Limit indentation in smbios_decode and + legacy_decode. + * dmidecode.c, dmiopt.c: Write binary dump to a compact file + rather than a sparse file. + * dmidecode.c, dmiopt.c, dmiopt.h: New option --from-dump, read + the DMI data from a binary file. + * dmidecode.8: Update the option --dump-bin, document the new + option --from-dump. + +2008-08-28 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add missing colon to temperature probe label. + Patch from Alex Iribarren. + +2008-02-16 Jean Delvare <khali@linux-fr.org> + + * util.c, util.h: New helper function write_dump. + * dmidecode.c, dmiopt.c, dmiopt.h: New option --dump-bin, dump + the DMI data to a sparse binary file. + * dmidecode.8: Document the new option --dump-bin. + * Makefile, biosdecode.c, dmidecode.c, dmidecode.h, dmioem.c, + dmioem.h, dmiopt.c, dmiopt.h, ownership.c, util.c, util.h, + vpddecode.c, vpdopt.c, vpdopt.h: Update copyright statements. + * dmidecode.c: Adjust the error message which is displayed when + the table is unreachable. + +2007-06-30 Jean Delvare <khali@linux-fr.org> + + * config.h: Add support for Solaris (x86 only, of course). Based + on a patch by Sun's Dan Mick, brought to my knowledge by + Attila Nagy. + +2007-06-27 Jean Delvare <khali@linux-fr.org> + + * Makefile: Fix the uninstall-man target. + +2007-06-07 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: If the SMBIOS entry point decoding fails (for + example due to a bad checksum), still try decoding the + encapsulated DMI entry point. Suggested by Luke Suchocki. + * dmidecode.c: Replace all occurrences of "KB" by the more + correct "kB". + +2007-03-16 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Stop asking the user to report bad checksums, + unaligned records and the like. Such machines exist, too bad, + we have to live with it. + +2007-02-27 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Fix a compilation error with non-C99 compilers. + Patch from Francois Revol. + +2007-02-26 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix an array overrun while decoding the system + event log status (DMI type 15). + * biosdecode.c: Use printf instead of fwrite. + * dmidecode.8: Some OEM-specific types can be decoded now. + * biosdecode.8: List the FJKEYINF entry point type. + * vpddecode.8: The product name is no longer displayed. + * version.h: Set version to 2.9. + +2007-02-16 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Do not print the BIOS base address and runtime size + if the base address is 0. This happens on IA-64 because there's + no BIOS. + * Makefile, README: Do not build biosdecode, ownership and + vpddecode on IA-64, as IA-64 systems have no BIOS. This was + quite tricky to keep both GNU make and BSD make happy, but it + seems that I finally succeeded. + +2007-02-13 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.5, second round. + + * dmidecode.c: Decode new processor characteristics (multi-core, + multi-thread, 64-bit) (DMI type 4). + * dmidecode.c: Decode slot ID of AGP 8x and PCI Express slots (DMI + type 9). + + * dmidecode.c: Fix the mask of 3 bitfield tests. This will let + the memory type of some systems be properly reported as SDRAM. + * dmidecode.c: Fix the AMD processors signature decoding. + * README: Minor edits. + +2007-02-12 Jens Elkner <elkner@linofee.org> + + Update to support SMBIOS specification version 2.5, first round. + + * dmidecode.c: Add chassis types "CompactPCI" and "AdvancedTCA" + (DMI type 3). + * dmidecode.c: Add processor types "Turion 64", + "Dual-Core Opteron", "Athlon 64 X2", "Celeron D", "Pentium D" + and "Pentium EE" (DMI type 4). + * dmidecode.c: Add processor upgrade types "Socket mPGA604", + "Socket LGA771" and "Socket LGA775" (DMI type 4). + * dmidecode.c: Add connector type "SAS/SATA Plug Receptacle" and + port types "SATA" and "SAS" (DMI type 8). + * dmidecode.c: Add on-board device types "PATA Controller", + "SATA Controller" and "SAS Controller" (DMI type 10). + * dmidecode.c: Add memory device form factor "FB-DIMM" and memory + device type "DDR2 FB-DIMM" (DMI type 17). + +2007-02-12 Jean Delvare <khali@linux-fr.org> + + * dmioem.c: Share the code between HP-specific types 209 and 221. + Both types are really the same, only the title is different. + * dmioem.c: Make the HP-specific types 209 and 221 output a bit + more verbose. + * dmidecode.c: Let --type decode OEM-specific entries when + possible. + * dmidecode.c: Include decoded OEM-specific entries in quiet mode + output (--quiet). + * dmidecode.c: Do not complain about truncated entries in quiet + mode. + * dmioem.c: Decode HP-specific type 204 entries in a safer way: + check the length before decoding, and don't assume that all + strings are provided in the same order as they are used. + + Update to support Intel AP-485 (CPUID) revision 31 (was 28). + + * dmidecode.c: New CPUID flag IA64. + * dmidecode.c: Fix the decoding of Intel extended family. + +2007-02-11 Jean Delvare <khali@linux-fr.org> + + * dmioem.c, dmioem.h: New. + * Makefile, dmidecode.c, dmidecode.h, dmioem.c, dmioem.h: Move the + decoding of OEM-specific entries to a separate source file. + * dmidecode.c: DMI type 38 is tested by now. + * dmioem.c: The PCI function is typically represented as a single + digit. + * Makefile, dmiopt.c, vpdopt.c, util.h: Define an ARRAY_SIZE macro + which computes the size of a static array, and use it where + relevant. + +2007-02-11 John Cagle <jcagle@kernel.org> + + * dmidecode.c: Add support for 3 HP-specific entries: system/rack + locator (type 204), NIC MAC information (type 209) and NIC iSCSI + MAC information (type 221). + +2007-01-14 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Fix a rare warning. + * biosdecode.c: Add support for the FJKEYINF entry point, which + contains data related to the "application panel" on Fujitsu + laptops. + +2006-05-23 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix a recently introduced compilation error with + non-C99 compilers. + * dmidecode.c: Check for short entries (less than 4 bytes), stop + with an error when one is encountered. + +2006-05-13 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c, README: Drop the product name lookup table. It + was reported to be unreliable too many times, and was also + difficult to maintain. + +2006-05-10 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Don't cast from u8* to dmi_header*, else + architectures which do not support unaligned memory accesses + may break. Instead, copy the members individually. That's a + bit slower, but that's also safer and we only need to do it + once per DMI entry, so it's not time critical. So far, we + were using a trick to later work around the unaligned memory + access, but the compiler would still warn about the risk, + which is always confusing. + * config.h, types.h, README: Automatically enable the unaligned + memory access workaround on ia64. + * types.h: Inline U64. It makes sense per se and also lets us + get rid of a warning about U64 being unused. + * dmidecode.c: Detect EFI at run-time rather than compilation- + time. Based on an original patch from Matthew Garrett. This + will make x86 binaries work for both PC systems with BIOS and + Macintosh systems with EFI. Also prevent a possible, though + unlikely, NULL-pointer dereference in the EFI code. + +2006-02-25 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix typo reported by David Wilson (DMI case 3). + +2006-02-04 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Update lookup table from revision 2006-01-31 of IBM + reference document (add product ID "7B"). + * version.h: Set version to 2.8. + +2006-01-21 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: The mysterious last character of xSeries records + may be a BIOS revision. Display it as such when present and + non zero, and ask users to report. + * vpddecode.c: Adjust an error message. + * dmidecode.8: Update the sample entry to match the new output + format. + * README: Improve the IA-64 specific section and the vpddecode + tool description. + * vpdopt.h: Add missing system header file include. + +2006-01-20 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Assume a constant length of 12 characters for the + "Default Flash Image File Name" entry. The 13th character never + contained anything useful, so it probably has a different + meaning (unknown for now). + +2005-12-24 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Scan for VPD records on 4-byte boundaries instead + of 16-byte boundaries. This is needed for some eServer xSeries + 206. Still emit a warning if a VPD record is found not on a + 16-byte boundary. + +2005-10-26 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "NR". Reported by Klaus Muth. + * vpddecode.c: Update lookup table from revision 2005-10-06 of IBM + reference document (add product IDs "77" and "78"). + +2005-10-05 Jean Delvare <khali@linux-fr.org> + + Update to support IPMI specification version 2.0 (was 1.5). + + * dmidecode.c: Support IPMI interface type SSIF. Original patch + by Garry Belka. + +2005-10-04 Jean Delvare <khali@linux-fr.org> + + * vpdopt.c: Display the list of all valid string keywords when + --string is used without an argument. + * vpddecode.8: Document the new -s, --string option. + * dmidecode.8: List the four new string keywords. + * vpddecode.c: Keep quiet when --string is used, even when no VPD + record is found. + +2005-10-03 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Fix a potential (but highly improbable) buffer + overrun in the VPD record decoding. + * biosdecode.c: Change the xSeries checksumming method to + accommodate a strange xSeries 440 VPD record, as was done in + vpddecode.c some weeks ago. Do not display the default flash + image file name anymore, it's not so useful and the field length + is now uncertain. + * vpdopt.c, vpdopt.h: New. + * Makefile, vpddecode.c, vpdopt.c, vpdopt.h: Move the command line + handling of vpddecode to a separate source file. + * vpddecode.c, vpdopt.c, vpdopt.h: Add option -s, --string. It + prints one selected VPD string instead of the regular output. + +2005-09-24 Jean Delvare <khali@linux-fr.org> + + * dmiopt.c: Fix incorrect header include. The strcasecmp function + is defined in <strings.h>, not <string.h>. Reported by Petter + Reinholdtsen. + +2005-09-14 Jean Delvare <khali@linux-fr.org> + + * dmidecode.h: New. + * dmidecode.c, dmidecode.h, Makefile: Export four specific + decoding functions, make them suitable for external call. + * dmidecode.c, dmiopt.c, dmiopt.h, Makefile: Make it possible + for --string to print decoded binary data rather than only + DMI strings. Add four such string keywords. + * dmidecode.c, dmiopt.c, dmiopt.h: Modify the opt structure + to handle the string option more efficiently. + +2005-09-13 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Slightly change the xSeries checksumming method to + accommodate a strange xSeries 440 VPD record. Also tweak the + decoding of the "Default Flash Image File Name" entry. Thanks + to Torsten Seemann for providing a test VPD record. + +2005-09-05 Jean Delvare <khali@linux-fr.org> + + * Makefile: Use -Wundef. + +2005-08-31 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Drop trailing dot from handle description line. + +2005-08-29 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Reword a comment about CPUID. + * dmidecode.c: Claim to support revision 28 of Intel AP-485 + (CPUID). No relevant change since revision 27. + +2005-08-25 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "VI". Reported by Torsten Seemann. + * vpddecode.c: Update lookup table from revision 2005-06-24 of IBM + reference document (add product IDs "1U", "1X", "70", "74", "75" + and "76", update product ID "1Y"). + * dmiopt.c: Complain about unknown options again. + * biosdecode.c, ownership.c, vpddecode.c: getopt_long() will never + return ':'. + +2005-08-04 Jean Delvare <khali@linux-fr.org> + + * README: Manual pages document the command line interface. + A discussion list exists for developers. Mmap is used on + most systems, not just Linux. + * version.h: Set version to 2.7. + +2005-08-02 Jean Delvare <khali@linux-fr.org> + + * dmiopt.c, dmidecode.8: Options --dump and --quiet are mutually + exclusive. + +2005-06-23 Jean Delvare <khali@linux-fr.org> + + * dmiopt.c, dmidecode.8: Options --dump and --string are mutually + exclusive. + +2005-06-22 Jean Delvare <khali@linux-fr.org> + + * dmiopt.c: Display the list of all valid type or string keywords + when --type or --string, respectively, is used without an + argument or with an invalid one. + * dmidecode.8: Document the new -s, --string option. Update the + -t, --type option documentation. + * dmiopt.c, dmidecode.8: Add string keyword "bios-release-date", + the Linux kernel uses it. + * dmidecode.c, dmidecode.8: Fix typo ("Controler" becomes + "Controller"). + +2005-06-21 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, dmiopt.c, dmiopt.h: Add option -s, --string. It + prints one selected DMI string instead of the regular output. + +2005-06-18 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Hide handle references and entries of unknown + type when --quiet is used. + * dmidecode.8: Document the new -q, --quiet option. + * dmidecode.c: Stop decoding at end of table entry when --quiet + is used. Also don't warn about incorrect table length or entries + count when --quiet is used. + +2005-06-17 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, dmiopt.c, dmiopt.h: Add option -q, --quiet. It + makes the output less verbose. + * dmidecode.c: Suppress one level of indentation in the output, + insert blank lines between records. This will hopefully make + the output easier to read. + * dmidecode.c: Hide table address and size when --type is used. + +2005-06-16 Jean Delvare <khali@linux-fr.org> + + * dmidecode.8: Document the new -t, --type option. + +2005-06-15 Jean Delvare <khali@linux-fr.org> + + * dmiopt.c, dmiopt.h: New. + * Makefile, dmidecode.c, dmiopt.c, dmiopt.h: Move the command line + handling of dmidecode to a separate source file. + * dmiopt.c: Define keywords to be used with --type (instead of + numeric values). + +2005-06-14 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Centralize the main exit point. This allows fixing + a minor, recently introduced memory leak which was happening on + error conditions. + +2005-06-13 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add option -t, --type. It limits the output to + the given type(s) of DMI entries. + +2005-05-25 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product IDs "KE", "NT" and "ZR". Reported by + Bernd Krumboeck. + +2005-05-15 Jean Delvare <khali@linux-fr.org> + + * dmidecode.8, vpddecode.8: Document the new -u, --dump option. + + Update to support SMBIOS specification version 2.4 (was 2.4 + preliminary). There is actually no difference between 2.4 + preliminary and 2.4 final. + + * dmidecode.c: Update the "System Management BIOS Reference + Specification" version. + +2005-04-26 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "M1". Reported by Myke Olson. + * vpddecode.c: Add option -u, --dump. It disables decoding of the + VPD records, a raw dump is displayed instead. This option is + mainly intended for debugging. + +2005-04-03 Jean Delvare <khali@linux-fr.org> + + * Makefile: Use variables for install and rm commands, so that these + can be overridden by the caller. + +2005-03-25 Jean Delvare <khali@linux-fr.org> + + * Makefile: Install some documentation files (README, CHANGELOG, + AUTHORS). + + Update to support SMBIOS specification version 2.4 preliminary + [11/18/2004] (was 2.3.4). + + * dmidecode.c: Add BIOS characteristics (DMI type 0). + * dmidecode.c: Display BIOS and firmware revisions where available + (DMI type 0). + * dmidecode.c: Display system SKU number and family where available + (DMI type 1). + * dmidecode.c: Add system slot types and widths (DMI type 9). + * dmidecode.c: Add memory device type "DDR2" (DMI type 17). + +2005-03-20 Jean Delvare <khali@linux-fr.org> + + * Makefile: Install manual pages under $(prefix)/share/man by + default, instead of $(prefix)/man, so as to comply with the FHS. + +2005-03-08 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Update lookup table from revision 2005-03-08 of IBM + reference document (add product ID "1V", update product ID "1R"). + Thanks to Ingo van Lil for reporting about product ID "1V". + +2005-03-06 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add option -u, --dump. It disables decoding of the + entries, raw dumps are displayed instead. This option is mainly + intended for debugging. + * Makefile: Use -Winline. + * dmidecode.c: Make ASCII filtering of strings faster. + +2005-02-28 Jean Delvare <khali@linux-fr.org> + + * version.h: Set version to 2.6. + * Makefile: ownership.o depends on version.h. + +2005-02-24 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "2C". Reported by Tomek Mateja. + +2005-02-17 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product IDs "OP" and "PN". Reported by Scott + Denham. + * vpddecode.c: Fix typo in one product name (560E improperly + spelled 650E). + * vpddecode.c: Add product IDs "IW" and "IY", as added recently + on IBM's reference web page. Update reference. + * config.h: Use mmap on all but BeOS, instead of only Linux. + +2005-02-12 Jean Delvare <khali@linux-fr.org> + + * util.c: Fix incorrect length in munmap call. + * Makefile: Use -Wmissing-prototypes. + * dmidecode.c: Fix maximum battery error value. + +2005-02-11 Jean Delvare <khali@linux-fr.org> + + * Makefile: Discard -pedantic, we don't really need this. + * util.c: Display an error message on memory shortage. Suggested + by Don Howard. + + Fix a bug causing dmidecode to crash on some systems with more than + 2 GB of memory. This is a signed vs unsigned issue, which existed + up to version 2.2, was fixed in 2.3 but reintroduced in a different + form in 2.5 as part of a code clean up and refactoring. + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112355 + Thanks to Petter Reinholdtsen for reporting. Thanks to Don Howard + for additional insight. + + * dmidecode.c, util.c, util.h: Use size_t instead of off_t when + handling memory addresses. + +2005-02-10 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add option -h, --help, display a usage summary. + * biosdecode.c, ownership.c, vpddecode.c: Copy command-line handling + from dmidecode.c. + * biosdecode.8, dmidecode.8, ownership.8, vpddecode.8: Document + the new command-line interface. + +2005-02-06 Jean Delvare <khali@linux-fr.org> + + * Makefile: Everything depends on config.h. + * dmidecode.c: Add basic command-line handling. This was suggested + a long time ago by Erwan Velu. + +2005-02-01 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product IDs "AP", "KP" and "RD". Reported by + David Rosala. + +2005-01-17 Jean Delvare <khali@linux-fr.org> + + * README: Add a note about Cygwin. Thanks to Dominik Klein for + reporting success. + +2004-12-10 Jean Delvare <khali@linux-fr.org> + + Increase portability and configurability to in order to support BeOS. + + * config.h: New. + * config.h: Define a default memory device. + * biosdecode.c, dmidecode.c, ownership.c, vpddecide.c: Include + config.h and use the defined default memory device. + * Makefile, config.h, util.c, README: Move USE_MMAP to config.h, + use mmap on Linux only. + +2004-11-22 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Avoid size_t in printf. Should remove a warning on + ia64. Thanks to Petter Reinholdtsen for reporting. + * util.c: Use sysconf(_SC_PAGESIZE) instead of getpagesize() where + available. This may remove a warning on ia64 as a side effect. + Thanks to Petter Reinholdtsen for reporting. + +2004-11-21 Jean Delvare <khali@linux-fr.org> + + * util.c, util.h: Function myread has no more user outside of util.c. + * biosdecode.c: Speed improvements. + +2004-11-20 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c, ownership.c, vpddecode.c: Make use of the mem_chunk + function. + * vpddecode.c: Simplify the memory loop code a bit. + +2004-11-12 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Hide bank connection type for non-installed memory + modules. + * dmidecode.c: Reference comment fix. + * dmidecode.c: Hide watchdog timer details when no watchdog is + present. Change label for no watchdog. + * README: Match case change for PREFIX (now prefix) in the Makefile + file. Reported by Raul Nunez de Arenas Coronado. + +2004-11-12 Jean Delvare <khali@linux-fr.org> + + Update to support DMTF Master MIF version 040707 (was 030621). + + * dmidecode.c: One additional processor type (Sempron). + * dmidecode.c: One additional processor type (Efficeon TM8800). + * dmidecode.c: One additional processor upgrade type (Socket 939). + * dmidecode.c: Add the AMD Sempron to the list of x86-class + processors. + + Update to support Intel AP-485 (CPUID) revision 27 (was 25). + + * dmidecode.c: Rename SBF flag to PBE. + +2004-11-11 Jean Delvare <khali@linux-fr.org> + + * util.c: More helpful error messages. + * util.c: Use MAP_SHARED instead of MAP_PRIVATE in mmap. + * version.h: Set version to 2.5. + +2004-11-10 Jean Delvare <khali@linux-fr.org> + + * README: Update dmidecode presentation (copied from the web page). + Move the list of supported systems from the documentation section + to the installation section. + +2004-11-09 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Update product ID "1R". Reported by Marco Wertejuk. + +2004-10-24 Jean Delvare <khali@linux-fr.org> + + * util.c: Workaround missing MAP_FAILED definition, needed on + old systems. Original patch from Durval Menezes. + +2004-10-14 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Search for EFI systab at /sys/firmware/efi/systab. + Original patch from Alex Williamson. + * dmidecode.c: Remove warning about legacy_decode not being used + when USE_EFI is defined. + * dmidecode.c: Detect missing SMBIOS entry point in efi/systab. + * dmidecode.c: Fix fatal typo in USE_EFI-specific code. + +2004-10-01 Roberto Nibali <ratz@tac.ch> + + * Makefile: Be LDFLAGS aware. + +2004-07-24 Jean Delvare <khali@linux-fr.org> + + * util.c: Add missing header include. + +2004-06-11 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product IDs "GE" and "T2". Reported by Doug Brenner. + +2004-05-02 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Move legacy DMI entry point decoding to a separate + function. + * dmidecode.c: Use a 64 kB buffer for searching entry points, + instead of repeated 16-byte reads. + * util.c, util.h: New mem_chunk function. It returns a buffer + containing a copy of a given chunk of the physical memory. + * dmidecode.c: Make use of the new mem_chunk function. + +2004-04-30 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "JP". Reported by Bernd Krumboeck. + +2004-04-22 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, biosdecode.c, ownership.c, types.h: Move common + WORD-like macros to types.h. + +2004-04-21 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, biosdecode.c: Fix my contact information. + * dmidecode.c: Update copyright year. + +2004-04-20 Jean Delvare <khali@linux-fr.org> + + * README: Correct Chad Smith's name. Reported by Martin Pool. + +2004-04-15 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "PL". Reported by Mark Syms. + +2004-04-14 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "PD". Reported by Roger Koot. + +2004-04-11 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, Makefile, README: Drop TABLE_LITTLEENDIAN. + * README: Update manual pages information. + +2004-04-02 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "NV". Reported by Shawn Starr. + +2004-03-27 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "24". Reported by Paul Sturm. + * dmidecode.c: Fix two missing comas in string enumerations. Thanks to + Joshua Goldenhar for reporting the first one. + +2004-03-24 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "PJ". Reported by Roger Koot. + * vpddecode.c: Rename two Netvista systems to use their real name + instead of machine type. + +2004-03-20 Petter Reinholdtsen <pere@hungry.com> + + * Makefile: Make it easier to select where to install the binaries + and manual pages, and to use different paths when building and + installing. + +2004-03-19 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "2A". Reported by Rafael Avila + de Espindola. + * version.h: Set version to 2.4. + +2004-03-07 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c, vpddecode.c: Add a third checksumming method for + VPD records. + * vpddecode.c: Add product ID "PI", update "20". Reported by + Zing Zing Shishak. + +2004-03-05 Jean Delvare <khali@linux-fr.org> + + * README: Update. + +2004-02-25 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Support CPUID document revision 25 (no change). + * dmidecode.c: Shorten the EOF error message. + +2004-02-23 Jean Delvare <khali@linux-fr.org> + + * man/biosdecode.8, man/dmidecode.8, man/ownership.8, + man/vpddecode.8: New. + * Makefile: Handle new manual pages. + +2003-12-28 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "PT". Reported by Ramiro Barreiro. + +2003-12-17 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "RE". Reported by Josef Moellers. + * vpddecode.c, biosdecode.c: Handle longer VPD records as seen on + xSeries. These have a different checksumming method. + +2003-12-03 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "TT". Reported by Hugues Lepesant. + * vpddecode.c, biosdecode.c: Fix typo ("Bios" becomes "BIOS"). + * dmidecode.c: Add another exception to the CPUID-supporting CPU list + ("Pentium III MMX"). + * dmidecode.c: Number devices in multi-device on board device + information structures (DMI case 10). + +2003-11-13 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Automatically detect architectures on which to use EFI + (ia64 for now). Suggested by Jeff Moyer. + +2003-11-11 Jean Delvare <khali@linux-fr.org> + + * vpddecode.c: Add product ID "KX". Reported by Klaus Ade Johnstad, + confirmed by Pamela Huntley. + * dmidecode.c: Display CPUID values as decimal, not hexadecimal. + This is a reversal of the 2003-07-18 change to be consistent with + /proc/cpuinfo under Linux. + * dmidecode.c: Fix processor ID decoding for older 80486. Not very + important since such systems are unlikely to support SMBIOS. + * dmidecode.c: Modify CPU signature display for AMD processors. + * vpddecode.c, biosdecode.c: Fix incorrect VPD checksumming. + +2003-10-24 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add another exception to the CPUID-supporting CPU list. + +2003-10-19 Jean Delvare <khali@linux-fr.org> + + * README: Clarify why mmap is used. Fix typo. + * Makefile: Add deleting core to the clean target. + * version.h: Set version to 2.3. + +2003-10-17 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Use (void) instead of __attribute__ ((unused)) to + declare that a function parameter isn't used. According to Alexandre + Duret-Lutz, this is the portable way do to it. Fix typo in comment. + * dmidecode.c: Fix typo. + +2003-10-16 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Remove useless comparison in dmi_system_boot_status. + Thanks to Alexandre Duret-Lutz for pointing this out. + * biosdecode.c: Add a missing length check in acpi_decode. Found + using Valgrind. + * biosdecode.c: Fix buffer overrun in main. Found using Valgrind. + +2003-10-14 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Update DMTF reference addresses. + * dmidecode.c: List two more processors (Athlon64 and Pentium M) + as x86-class (i.e. supporting CPUID). + +2003-10-11 Jean Delvare <khali@linux-fr.org> + + Update to support DMTF Master MIF version 030621 (was 021205). + + * dmidecode.c: Handle unknown processor voltage. + * dmidecode.c: Fix typo in event log method. + * dmidecode.c: One additional processor type (Pentium M). + * dmidecode.c: Add the AMD Opteron to the list of x86-class + processors. Thanks to Mike Cooper for providing information. + * vpddecode.c: New program for decoding a machine's VPD structure + (only found in IBM machines). + * Makefile: Update accordingly. + * Makefile: Fix dependencies for ownership. Add strip target. Various + cleanups (reordering, comments, optimization and debug flags). + * README: Update to reflect the addition of the strip target and the + vpddecode program. Some additional changes and fixes. + +2003-10-10 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Change mmap options to prevent dmidecode from being + killed by the Linux kernel in some rare cases. Reported by + Mike Cooper. + * dmidecode.c: Various code cleanups and optimizations. + +2003-10-09 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix a bug that prevented dmidecode to reach DMI tables + beyond the 2GB memory limit. Reported by Mike Cooper. + * ownership.c: Add one reference. Code cleanups. + * CHANGELOG: Fix typo. + +2003-10-08 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Fix potentially wrong checksum on Sony-specific entry. + * biosdecode.c: Unimportant changes (comment, typo...) in + Compaq-specific section. + * biosdecode.c: Add support for VPD (vital product data, IBM-specific). + * CHANGELOG: Various updates. + +2003-10-07 Jean Delvare <khali@linux-fr.org> + + * ownership.c: Fix a harmless warning on x86_64. Reported by Mike + Cooper. + +2003-09-19 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Explicitly say when no SMBIOS nor DMI entry point + was found. Implicitly suggested by Sergey Leonovich. + +2003-09-11 Jean Delvare <khali@linux-fr.org> + + * Makefile: Don't use $^ since it isn't supported by BSD make. + Reported by Hugues Lepesant. + +2003-09-05 Jean Delvare <khali@linux-fr.org> + + * Makefile: Fix missing ownership dependency for install target. + Reported by Mario Lang. + +2003-08-08 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Update the README file (mainly the now solved laptop + and IA-64 issues, and add a section for biosdecode and ownership). + * version.h: Set version to 2.2. + +2003-07-18 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Display CPUID values as hexadecimal, not decimal. + * dmidecode.c: Shift the I2C slave address by one bit to the right + (DMI case 38). + +2003-06-27 Jean Delvare <khali@linux-fr.org> + + * biosdecode.c: Better display of Compaq-specific entries (thank to + some documentation). + +2003-06-25 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Remove fp_last (not useful anymore). Reworded the "table + is unreachable" message to mention the -DUSE_MMAP solution. + +2003-06-19 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Add support for IA-64. + * Makefile: Add new option CFLAGS modifier lines for IA-64. + +2003-06-17 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, biosdecode.c: Move common "util" functions to util.c. + * util.c, util.h: New. + * types.h: New. + * Makefile: Update accordingly. + * biosdecode.c: Add detection of Compaq-specific entries. + * ownership.c: New program for finding a machine's ownership tag + (only found in Compaq machines). Requested by Luc Van de Velde. + * Makefile: Update again. + +2003-06-10 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix typo in IPMI register spacing table. + * version.h: Set version to 2.1. + +2003-06-04 Jean Delvare <khali@linux-fr.org> + + * Makefile: Restore optional CFLAGS modifier lines. + * README: New. + +2003-05-30 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Cleaner handling of unreachable table. + +2003-05-27 Jean Delvare <khali@linux-fr.org> + + Update to support Intel AP-485 specification (CPUID) revision 023 + (was 021). + + * dmidecode.c: Add SBF flag to processor ID (DMI case 4). Add comment + about new flags returned in ECX. + +2003-05-26 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.3.4 (was 2.3.3). + + * dmidecode.c: Add processor and processor upgrade names (DMI case 4). + * dmidecode.c: Add slot names (DMI case 9). + +2003-05-22 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix typo reported by David Wilson (DMI case 6). + +2003-03-08 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Decode more fields according to the IPMI specification + (DMI case 38). + +2003-03-07 Jean Delvare <khali@linux-fr.org> + + Fixed IPMI device information (DMI case 38). Thanks to Richard Sharpe + for pointing the bugs out. + + * dmidecode.c: Fix IPMI interface type being shifted by one. + * dmidecode.c: Fix NV storage device being improperly displayed. + * dmidecode.c: Reword IPMI specification revision into specification + version, as suggested in the IPMI specification itself. + * dmidecode.c: Add a reference to the IPMI specification. + * dmidecode.c: Show I2C address as hexadecimal. + * dmidecode.c: Base address is a QWORD, not DWORD. + * dmidecode.c: Decode some extra fields according to the IPMI + specification. + +2003-03-06 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c, biosdecode.c: Move all changelog entries to CHANGELOG. + * CHANGELOG: New. Format inspired by Heroes' ChangeLog file. + * dmidecode.c, biosdecode.c, Makefile: Update copyright years. + * dmidecode.c, biosdecode.c, Makefile: Move version definition to + version.h. Update dependencies accordingly. + * version.h: New. + +2002-10-21 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Change supported log type descriptors display. + * dmidecode.c: Code optimization in event log status. + * dmidecode.c: Remove extra newline in voltage probe accuracy. + * dmidecode.c: Display "OEM-specific" if type is 128 or more. + * dmidecode.c: Do not display Strings on dump if there are no strings. + * dmidecode.c: Add ASCII-filtering to dmi_string. + * dmidecode.c: Convert all dates to ISO 8601. + +2002-10-18 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Complete rewrite. + * dmidecode.c: Now complies with SMBIOS specification 2.3.3. + * dmidecode.c: Move all non-DMI stuff to biosdecode.c. + * biosdecode.c: New. + +2002-10-15 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix bad index in DMI case 27 (cooling device). + +2002-10-14 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix typo in dmi_memory_array_location. + * dmidecode.c: Replace Kbyte by kB in DMI case 16. + * dmidecode.c: Add DDR entry in dmi_memory_device_type. + * dmidecode.c: Fix extra s in SYSID. + +2002-10-12 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix maximum cache size and installed size being + inverted. + * dmidecode.c: Fix typos in port types. + +2002-10-10 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Remove extra semicolon at the end of + dmi_memory_array_use. + * dmidecode.c: Fix compilation warnings. + * dmidecode.c: Add missing backslash in DMI case 37. + * dmidecode.c: Fix BIOS ROM size (DMI case 0). + +2002-10-05 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: More ACPI decoded. + * dmidecode.c: More PNP decoded. + * dmidecode.c: More SYSID decoded. + * dmidecode.c: PCI Interrupt Routing decoded. + * dmidecode.c: BIOS32 Service Directory decoded. + * dmidecode.c: Sony system detection (unconfirmed). + * dmidecode.c: Checksums verified whenever possible. + * dmidecode.c: Better checks on file read and close. + * dmidecode.c: Define VERSION and display version at beginning. + * dmidecode.c: More secure decoding (won't run off the table in any + case). + * dmidecode.c: Do not try to decode more structures than announced. + * dmidecode.c: Fix an off-by-one error that caused the last address + being scanned to be 0x100000, not 0xFFFF0 as it should. + +2002-09-28 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix missing coma in dmi_bus_name. + * dmidecode.c: Remove unwanted bitmaskings in dmi_mgmt_dev_type, + dmi_mgmt_addr_type, dmi_fan_type, dmi_volt_loc, dmi_temp_loc and + dmi_status. + * dmidecode.c: Fix DMI table read bug ("dmi: read: Success"). + * dmidecode.c: Make the code pass -W again. + * dmidecode.c: Fix return value of dmi_card_size. + +2002-09-20 Dave Johnson <ddj@cascv.brown.edu> + + * dmidecode.c: Fix comparisons in dmi_bus_name. + * dmidecode.c: Fix comparison in dmi_processor_type. + * dmidecode.c: Fix bitmasking in dmi_onboard_type. + * dmidecode.c: Fix return value of dmi_temp_loc. + +2002-09-17 Larry Lile <llile@dreamworks.com> + + * dmidecode.c: Type 16 & 17 structures displayed per SMBIOS 2.3.1 spec. + +2002-08-23 Alan Cox <alan@redhat.com> + + * dmidecode.c: Make the code pass -Wall -pedantic by fixing a few + harmless sign of pointer mismatches. + * dmidecode.c: Correct main() prototype. + * dmidecode.c: Check for compilers with wrong type sizes. + +2002-08-09 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Better DMI struct count/size error display. + * dmidecode.c: More careful memory access in dmi_table. + * dmidecode.c: DMI case 13 (Language) decoded. + * dmidecode.c: C++ style comments removed. Commented out code removed. + * dmidecode.c: DMI 0.0 case handled. + * dmideocde.c: Fix return value of dmi_port_type and + dmi_port_connector_type. + +2002-08-06 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Reposition file pointer after DMI table display. + * dmidecode.c: Disable first RSD PTR checksum (was not correct anyway). + * dmidecode.c: Show actual DMI struct count and occupied size. + * dmidecode.c: Check for NULL after malloc. + * dmidecode.c: Use SEEK_* constants instead of numeric values. + * dmidecode.c: Code optimization (and warning fix) in DMI cases 10 and + 14. + * dmidecode.c: Add else's to avoid unneeded cascaded if's in main loop. + * dmidecode.c: Code optimization in DMI information display. + * dmidecode.c: Fix all compilation warnings. + +2002-08-03 Mark D. Studebaker <mds@paradyne.com> + + * dmidecode.c: Better indent in dump_raw_data. + * dmidecode.c: Fix return value of dmi_bus_name. + * dmidecode.c: Additional sensor fields decoded. + * dmidecode.c: Fix compilation warnings. + +2001-12-13 Arjan van de Ven <arjanv@redhat.com> + + * dmidecode.c: Fix memory bank type (DMI case 6). + +2001-07-02 Matt Domsch <Matt_Domsch@dell.com> + + * dmidecode.c: Additional structures displayed per SMBIOS 2.3.1 spec. @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. @@ -0,0 +1,116 @@ +** INTRODUCTION ** + +Dmidecode reports information about your system's hardware as described in +your system BIOS according to the SMBIOS/DMI standard. This information +typically includes system manufacturer, model name, serial number, BIOS +version, asset tag as well as a lot of other details of varying level of +interest and reliability depending on the manufacturer. This will often +include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, +ISA) and memory module slots, and the list of I/O ports (e.g. serial, +parallel, USB). + +DMI data can be used to enable or disable specific portions of kernel code +depending on the specific hardware. Thus, one use of dmidecode is for kernel +developers to detect system "signatures" and add them to the kernel source +code when needed. + +Beware that DMI data have proven to be too unreliable to be blindly trusted. +Dmidecode does not scan your hardware, it only reports what the BIOS told it +to. + + +** INSTALLATION ** + +The home web page for dmidecode is hosted on Savannah: + http://www.nongnu.org/dmidecode/ +You will find the latest version (including CVS) there, as well as fresh news +and other interesting material, such as a list of related projects and +articles. + +This program was first written for Linux, and has since been reported to work +on FreeBSD, NetBSD, OpenBSD, BeOS, Cygwin and Solaris as well. + +There's no configure script, so simply run "make" to build dmidecode, and +"make install" to install it. You also can use "make uninstall" to remove +all the files you installed. By default, files are installed in /usr/local +but you can change this behavior by editing the Makefile file and setting +prefix to wherever you want. You may change the C compiler and the +compilation flags as well. + +Optionally, you can run "make strip" prior to "make install" if you want +smaller binaries. However, be aware that this will prevent any further +attempt to debug the programs. + +Two parameters can be set in the Makefile file to make dmidecode work on +non-i386 systems. They should be used if your system uses the big endian +byte ordering (Motorola) or doesn't support unaligned memory accesses, +respectively. For example, compiling for a SPARC processor would require +both (but I am not aware of SPARC-based systems implementing SMBIOS). +Compiling for an IA64 processor requires the memory alignment workaround, +and it is enabled automatically. + + +** DOCUMENTATION ** + +Each tool has a manual page, found in the "man" subdirectory. Manual pages +are installed by "make install". See these manual pages for command line +interface details and tool specific information. + +For an history of the changes made to dmidecode, see the CHANGELOG file. + +If you need help, your best chances are to visit the web page (see the +INSTALLATION section above) or to get in touch with the developers directly. +Have a look at the AUTHORS file and contact one of the maintainers. + +If you want to help with the development of dmidecode, please consider +joining the dmidecode-devel discussion list: + http://lists.nongnu.org/mailman/listinfo/dmidecode-devel + + +** COMMON PROBLEMS ** + +IA-64 + +Non-Linux systems are not yet supported. + +MMAP + +Note that mmap() is now used by default wherever possible, since this seems +to solve a number of problems. This default behavior can be changed in +config.h. Just to make sure this is clear, mmap() is not used for performance +reasons but to increase the number of systems on which dmidecode can be +successfully run. + +CYGWIN + +Dmidecode was reported to work under Cygwin. It seems that /dev/mem doesn't +work properly before version 1.5.10 though, so you will need to use at least +this version. + + +** MISCELLANEOUS TOOLS ** + +Three other tools come along with dmidecode: biosdecode, ownership and +vpddecode. These tools are only useful on systems with a BIOS, so they +are not built on IA-64 by default. + +BIOSDECODE + +This one prints all BIOS related information it can find in /dev/mem. +It used to be part of dmidecode itself, but as dmidecode was growing, +we felt that the non-DMI part had to be moved to a separate tool. + +OWNERSHIP + +This tool was written on a request by Luc Van de Velde for use with Novell +tools in his company. It retrieves the "ownership tag" that can be set on +most Compaq computers. Since it uses the same mechanisms dmidecode and +biosdecode use, and could be of some use for other people as well, we +decided to make it part of the project. + +VPDDECODE + +This tool prints the contents of the "vital product data" structure as +found in most IBM and Lenovo computers. It used to have a lookup table +for the machine name, but it was unreliable and hard to maintain so it +was ultimately dropped. It has a command line interface. diff --git a/packaging/dmidecode-2.11-chassis_fix.patch b/packaging/dmidecode-2.11-chassis_fix.patch new file mode 100644 index 0000000..f6a1063 --- /dev/null +++ b/packaging/dmidecode-2.11-chassis_fix.patch @@ -0,0 +1,42 @@ +diff -up dmidecode-2.11/AUTHORS.chassis_fix dmidecode-2.11/AUTHORS +--- dmidecode-2.11/AUTHORS.chassis_fix 2010-11-24 10:29:09.000000000 +0100 ++++ dmidecode-2.11/AUTHORS 2011-11-14 14:56:08.000000000 +0100 +@@ -81,3 +81,5 @@ Murlin Wenzel + Harald Mueller-Ney + Lars Mueller + Thomas Mingarelli ++Andrey Matveyev ++Stefan Tauner +diff -up dmidecode-2.11/CHANGELOG.chassis_fix dmidecode-2.11/CHANGELOG +--- dmidecode-2.11/CHANGELOG.chassis_fix 2011-11-14 14:56:39.804855909 +0100 ++++ dmidecode-2.11/CHANGELOG 2011-11-14 14:56:15.000000000 +0100 +@@ -1,3 +1,8 @@ ++2011-11-14 Anton Arapov <anton@redhat.com> ++ ++ * dmidecode.c: Make dmi_chassis_type aware of the lock bit. ++ Patch from Stefan Tauner. ++ + 2011-04-20 Jean Delvare <khali@linux-fr.org> + + Update to support SMBIOS specification version 2.7.1. +diff -up dmidecode-2.11/dmidecode.c.chassis_fix dmidecode-2.11/dmidecode.c +--- dmidecode-2.11/dmidecode.c.chassis_fix 2011-11-14 14:56:39.805855910 +0100 ++++ dmidecode-2.11/dmidecode.c 2011-11-14 14:55:12.000000000 +0100 +@@ -532,6 +532,8 @@ static const char *dmi_chassis_type(u8 c + "Blade Enclosing" /* 0x1D */ + }; + ++ code &= 0x7F; /* bits 6:0 are chassis type, 7th bit is the lock bit */ ++ + if (code >= 0x01 && code <= 0x1D) + return type[code - 0x01]; + return out_of_spec; +@@ -3237,7 +3239,7 @@ static void dmi_decode(const struct dmi_ + printf("\tManufacturer: %s\n", + dmi_string(h, data[0x04])); + printf("\tType: %s\n", +- dmi_chassis_type(data[0x05] & 0x7F)); ++ dmi_chassis_type(data[0x05])); + printf("\tLock: %s\n", + dmi_chassis_lock(data[0x05] >> 7)); + printf("\tVersion: %s\n", diff --git a/packaging/dmidecode-2.11-dmidecode_fix.patch b/packaging/dmidecode-2.11-dmidecode_fix.patch new file mode 100644 index 0000000..163f9c9 --- /dev/null +++ b/packaging/dmidecode-2.11-dmidecode_fix.patch @@ -0,0 +1,24 @@ +diff -up dmidecode-2.11/CHANGELOG.dmidecode_fix dmidecode-2.11/CHANGELOG +--- dmidecode-2.11/CHANGELOG.dmidecode_fix 2012-03-12 10:25:01.980020072 +0100 ++++ dmidecode-2.11/CHANGELOG 2012-03-12 10:25:20.123020332 +0100 +@@ -1,3 +1,8 @@ ++2011-11-18 Jean Delvare <khali@linux-fr.org> ++ ++ * dmidecode.c: Properly print the hexadecimal value of invalid ++ string characters. ++ + 2011-11-14 Anton Arapov <anton@redhat.com> + + * dmidecode.c: Make dmi_chassis_type aware of the lock bit. +diff -up dmidecode-2.11/dmidecode.c.dmidecode_fix dmidecode-2.11/dmidecode.c +--- dmidecode-2.11/dmidecode.c.dmidecode_fix 2012-03-12 10:25:11.261020199 +0100 ++++ dmidecode-2.11/dmidecode.c 2012-03-12 10:25:20.124020332 +0100 +@@ -197,7 +197,7 @@ static void dmi_dump(const struct dmi_he + printf("%s\t", prefix); + for (j = 0; j < 16 && j < l - (row << 4); j++) + printf("%s%02X", j ? " " : "", +- s[(row << 4) + j]); ++ (unsigned char)s[(row << 4) + j]); + printf("\n"); + } + /* String isn't filtered yet so do it now */ diff --git a/packaging/dmidecode-2.11-dmioem_hp_fix.patch b/packaging/dmidecode-2.11-dmioem_hp_fix.patch new file mode 100644 index 0000000..afeb490 --- /dev/null +++ b/packaging/dmidecode-2.11-dmioem_hp_fix.patch @@ -0,0 +1,32 @@ +diff -up dmidecode-2.11/AUTHORS.dmioem_hp_fix dmidecode-2.11/AUTHORS +--- dmidecode-2.11/AUTHORS.dmioem_hp_fix 2012-03-12 10:26:58.166021817 +0100 ++++ dmidecode-2.11/AUTHORS 2012-03-12 10:27:18.818022115 +0100 +@@ -83,3 +83,4 @@ Lars Mueller + Thomas Mingarelli + Andrey Matveyev + Stefan Tauner ++Naga Chumbalkar +diff -up dmidecode-2.11/CHANGELOG.dmioem_hp_fix dmidecode-2.11/CHANGELOG +--- dmidecode-2.11/CHANGELOG.dmioem_hp_fix 2012-03-12 10:27:05.076021906 +0100 ++++ dmidecode-2.11/CHANGELOG 2012-03-12 10:27:18.818022115 +0100 +@@ -1,3 +1,8 @@ ++2012-03-12 Anton Arapov <anton@redhat.com> ++ ++ * dmioem.c: Add "PXE" to the HP OEM Type 209 output so it is similar to ++ the "iSCSI" description in HP OEM Type 221. Patch from Naga Chumbalkar. ++ + 2011-11-18 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Properly print the hexadecimal value of invalid +diff -up dmidecode-2.11/dmioem.c.dmioem_hp_fix dmidecode-2.11/dmioem.c +--- dmidecode-2.11/dmioem.c.dmioem_hp_fix 2012-03-12 10:27:13.108022027 +0100 ++++ dmidecode-2.11/dmioem.c 2012-03-12 10:27:18.819022112 +0100 +@@ -83,7 +83,7 @@ static int dmi_decode_hp(const struct dm + */ + printf(h->type == 221 ? + "HP BIOS iSCSI NIC PCI and MAC Information\n" : +- "HP BIOS NIC PCI and MAC Information\n"); ++ "HP BIOS PXE NIC PCI and MAC Information\n"); + nic = 1; + ptr = 4; + while (h->length >= ptr + 8) diff --git a/packaging/dmidecode-2.11-manpage_update.patch b/packaging/dmidecode-2.11-manpage_update.patch new file mode 100644 index 0000000..42ed2ec --- /dev/null +++ b/packaging/dmidecode-2.11-manpage_update.patch @@ -0,0 +1,55 @@ +diff -up dmidecode-2.11/CHANGELOG.manpage_update dmidecode-2.11/CHANGELOG +--- dmidecode-2.11/CHANGELOG.manpage_update 2012-03-26 12:55:08.415579519 +0200 ++++ dmidecode-2.11/CHANGELOG 2012-03-26 12:56:48.657586111 +0200 +@@ -1,3 +1,9 @@ ++2012-03-26 Anton Arapov <anton@redhat.com> ++ ++ * man/dmidecode.8: Add missing DMI type introduced with SMBIOS 2.7+, and ++ include the information about the extra output when dmidecode is run ++ on a hardware that has non-supported SMBIOS version. ++ + 2012-03-12 Anton Arapov <anton@redhat.com> + + * dmioem.c: Add "PXE" to the HP OEM Type 209 output so it is similar to +diff -up dmidecode-2.11/man/dmidecode.8.manpage_update dmidecode-2.11/man/dmidecode.8 +--- dmidecode-2.11/man/dmidecode.8.manpage_update 2012-03-26 12:53:10.185571745 +0200 ++++ dmidecode-2.11/man/dmidecode.8 2012-03-26 12:34:54.000000000 +0200 +@@ -1,4 +1,4 @@ +-.TH DMIDECODE 8 "November 2008" "dmidecode" ++.TH DMIDECODE 8 "March 2012" "dmidecode" + .SH NAME + dmidecode \- \s-1DMI\s0 table decoder + .SH SYNOPSIS +@@ -127,6 +127,13 @@ Display the version and exit + .P + Options --string, --type and --dump-bin + determine the output format and are mutually exclusive. ++.P ++Please note in case of ++.B dmidecode ++is run on a system with BIOS that boasts new SMBIOS specification, which ++is not supported by the tool yet, it will print out relevant message in ++addition to requested data on the very top of the output. Thus informs the ++output data is not reliable. + + .SH "DMI TYPES" + The \s-1SMBIOS\s0 specification defines the following \s-1DMI\s0 types: +@@ -138,7 +145,7 @@ r l. + Type Information + 0 BIOS + 1 System +-2 Base Board ++2 Baseboard + 3 Chassis + 4 Processor + 5 Memory Controller +@@ -177,7 +184,8 @@ Type Information + 38 IPMI Device + 39 Power Supply + 40 Additional Information +-41 Onboard Device ++41 Onboard Devices Extended Information ++42 Management Controller Host Interface + .TE + + Additionally, type 126 is used for disabled entries and type 127 is an diff --git a/packaging/dmidecode-2.11-smbios-271.patch b/packaging/dmidecode-2.11-smbios-271.patch new file mode 100644 index 0000000..a8d26f4 --- /dev/null +++ b/packaging/dmidecode-2.11-smbios-271.patch @@ -0,0 +1,119 @@ +commit 799a9d8b31f10d7d3d4db1365df409221a5ff413 +Author: Anton Arapov <aarapov@redhat.com> +Date: Tue May 3 14:43:42 2011 +0200 + + update to smbios 2.7.1 +--- + CHANGELOG | 9 +++++++++ + dmidecode.c | 38 +++++++++++++++++++++++++++++++------- + 2 files changed, 40 insertions(+), 7 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index de3d7e8..c10f5f4 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -1,3 +1,12 @@ ++2011-04-20 Jean Delvare <khali@linux-fr.org> ++ ++ Update to support SMBIOS specification version 2.7.1. ++ ++ * dmidecode.c: Add 6 AMD processor families (DMI type 4). ++ * dmidecode.c: Add cache associativity value ++ "20-way Set-associative" (DMI type 7). ++ * dmidecode.c: Add PCI Express 3 slot types (DMI type 9). ++ + 2011-01-25 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Fix boundary checks of memory array location codes +diff --git a/dmidecode.c b/dmidecode.c +index 7b081f9..f7b23c1 100644 +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -707,6 +707,8 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver) + { 0x3A, "Athlon II Dual-Core M" }, + { 0x3B, "Opteron 6100" }, + { 0x3C, "Opteron 4100" }, ++ { 0x3D, "Opteron 6200" }, ++ { 0x3E, "Opteron 4200" }, + + { 0x40, "MIPS" }, + { 0x41, "MIPS R4000" }, +@@ -714,6 +716,10 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver) + { 0x43, "MIPS R4400" }, + { 0x44, "MIPS R4600" }, + { 0x45, "MIPS R10000" }, ++ { 0x46, "C-Series" }, ++ { 0x47, "E-Series" }, ++ { 0x48, "S-Series" }, ++ { 0x49, "G-Series" }, + + { 0x50, "SPARC" }, + { 0x51, "SuperSPARC" }, +@@ -997,7 +1003,8 @@ static void dmi_processor_id(u8 type, const u8 *p, const char *version, const ch + sig = 1; + else if ((type >= 0x18 && type <= 0x1D) /* AMD */ + || type == 0x1F /* AMD */ +- || (type >= 0x38 && type <= 0x3C) /* AMD */ ++ || (type >= 0x38 && type <= 0x3E) /* AMD */ ++ || (type >= 0x46 && type <= 0x49) /* AMD */ + || (type >= 0x83 && type <= 0x8F) /* AMD */ + || (type >= 0xB6 && type <= 0xB7) /* AMD */ + || (type >= 0xE6 && type <= 0xEF)) /* AMD */ +@@ -1143,10 +1150,20 @@ static const char *dmi_processor_upgrade(u8 code) + "Socket LGA1156", + "Socket LGA1567", + "Socket PGA988A", +- "Socket BGA1288" /* 0x20 */ ++ "Socket BGA1288", ++ "Socket rPGA988B", ++ "Socket BGA1023", ++ "Socket BGA1024", ++ "Socket BGA1155", ++ "Socket LGA1356", ++ "Socket LGA2011", ++ "Socket FS1", ++ "Socket FS2", ++ "Socket FM1", ++ "Socket FM2" /* 0x2A */ + }; + +- if (code >= 0x01 && code <= 0x20) ++ if (code >= 0x01 && code <= 0x2A) + return upgrade[code - 0x01]; + return out_of_spec; + } +@@ -1493,10 +1510,11 @@ static const char *dmi_cache_associativity(u8 code) + "24-way Set-associative", + "32-way Set-associative", + "48-way Set-associative", +- "64-way Set-associative" /* 0x0D */ ++ "64-way Set-associative", ++ "20-way Set-associative" /* 0x0E */ + }; + +- if (code >= 0x01 && code <= 0x0D) ++ if (code >= 0x01 && code <= 0x0E) + return type[code - 0x01]; + return out_of_spec; + } +@@ -1660,12 +1678,18 @@ static const char *dmi_slot_type(u8 code) + "PCI Express 2 x2", + "PCI Express 2 x4", + "PCI Express 2 x8", +- "PCI Express 2 x16", /* 0xB0 */ ++ "PCI Express 2 x16", ++ "PCI Express 3", ++ "PCI Express 3 x1", ++ "PCI Express 3 x2", ++ "PCI Express 3 x4", ++ "PCI Express 3 x8", ++ "PCI Express 3 x16" /* 0xB6 */ + }; + + if (code >= 0x01 && code <= 0x13) + return type[code - 0x01]; +- if (code >= 0xA0 && code <= 0xB0) ++ if (code >= 0xA0 && code <= 0xB6) + return type_0xA0[code - 0xA0]; + return out_of_spec; + } diff --git a/packaging/dmidecode-2.11-type16-fix.patch b/packaging/dmidecode-2.11-type16-fix.patch new file mode 100644 index 0000000..04d7fe9 --- /dev/null +++ b/packaging/dmidecode-2.11-type16-fix.patch @@ -0,0 +1,30 @@ + CHANGELOG | 5 +++++ + dmidecode.c | 2 +- + 2 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 0545f8a..de3d7e8 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -1,3 +1,8 @@ ++2011-01-25 Jean Delvare <khali@linux-fr.org> ++ ++ * dmidecode.c: Fix boundary checks of memory array location codes ++ (DMI type 16). Reported by Andrey Matveyev. ++ + 2010-11-24 Jean Delvare <khali@linux-fr.org> + + * dmidecode.c: Assume that the max power capacity is expressed in +diff --git a/dmidecode.c b/dmidecode.c +index 5c7ad0e..7b081f9 100644 +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -2100,7 +2100,7 @@ static const char *dmi_memory_array_location(u8 code) + + if (code >= 0x01 && code <= 0x0A) + return location[code - 0x01]; +- if (code >= 0xA0 && code <= 0xA4) ++ if (code >= 0xA0 && code <= 0xA3) + return location_0xA0[code - 0xA0]; + return out_of_spec; + } diff --git a/packaging/dmidecode.spec b/packaging/dmidecode.spec index 31681e1..e7c98d9 100644 --- a/packaging/dmidecode.spec +++ b/packaging/dmidecode.spec @@ -7,6 +7,12 @@ Group: System Environment/Base License: GPLv2+ Source0: %{name}-%{version}.tar.bz2 URL: http://www.nongnu.org/dmidecode/ +Patch0: dmidecode-2.11-type16-fix.patch +Patch1: dmidecode-2.11-smbios-271.patch +Patch2: dmidecode-2.11-chassis_fix.patch +Patch3: dmidecode-2.11-dmidecode_fix.patch +Patch4: dmidecode-2.11-dmioem_hp_fix.patch +Patch5: dmidecode-2.11-manpage_update.patch Buildroot: %{_tmppath}/%{name}-%{version}-root BuildRequires: automake autoconf ExclusiveArch: %{ix86} x86_64 ia64 @@ -24,6 +30,12 @@ I/O ports (e.g. serial, parallel, USB). %prep %setup -q +%patch0 -p1 -b .type16_fix +%patch1 -p1 -b .smbios271 +%patch2 -p1 -b .chassis_fix +%patch3 -p1 -b .dmidecode_fix +%patch4 -p1 -b .dmioem_hp_fix +%patch5 -p1 -b .manpage_update %build make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" @@ -37,6 +49,7 @@ rm -rf ${buildroot} %files %defattr(-,root,root) +%doc AUTHORS CHANGELOG LICENSE README %{_sbindir}/dmidecode %ifnarch ia64 %{_sbindir}/vpddecode |