diff options
Diffstat (limited to 'modules/devices/spd-decode2.c')
-rw-r--r-- | modules/devices/spd-decode2.c | 813 |
1 files changed, 7 insertions, 806 deletions
diff --git a/modules/devices/spd-decode2.c b/modules/devices/spd-decode2.c index bc9fc911..bd2356bd 100644 --- a/modules/devices/spd-decode2.c +++ b/modules/devices/spd-decode2.c @@ -1,7 +1,8 @@ /* - * spd-decode.c + * spd-decode.c, spd-vendors.c * Copyright (c) 2010 Leandro A. F. Pereira - * modified by Ondrej Čerman + * modified by Ondrej Čerman (2019) + * modified by Burt P. (2019) * * Based on decode-dimms.pl * Copyright 1998, 1999 Philip Edelbrock <phil@netroedge.com> @@ -59,806 +60,7 @@ static const char *ram_types[] = {"Unknown", "Direct Rambus", "Rambus", "DDR4 SDRAM"}; #define GET_RAM_TYPE_STR(rt) (ram_types[(rt < N_RAM_TYPES) ? rt : 0]) - -static const char *vendors1[] = {"AMD", - "AMI", - "Fairchild", - "Fujitsu", - "GTE", - "Harris", - "Hitachi", - "Inmos", - "Intel", - "I.T.T.", - "Intersil", - "Monolithic Memories", - "Mostek", - "Freescale (former Motorola)", - "National", - "NEC", - "RCA", - "Raytheon", - "Conexant (Rockwell)", - "Seeq", - "NXP (former Signetics, Philips Semi.)", - "Synertek", - "Texas Instruments", - "Toshiba", - "Xicor", - "Zilog", - "Eurotechnique", - "Mitsubishi", - "Lucent (AT&T)", - "Exel", - "Atmel", - "SGS/Thomson", - "Lattice Semi.", - "NCR", - "Wafer Scale Integration", - "IBM", - "Tristar", - "Visic", - "Intl. CMOS Technology", - "SSSI", - "MicrochipTechnology", - "Ricoh Ltd.", - "VLSI", - "Micron Technology", - "Hyundai Electronics", - "OKI Semiconductor", - "ACTEL", - "Sharp", - "Catalyst", - "Panasonic", - "IDT", - "Cypress", - "DEC", - "LSI Logic", - "Zarlink (former Plessey)", - "UTMC", - "Thinking Machine", - "Thomson CSF", - "Integrated CMOS (Vertex)", - "Honeywell", - "Tektronix", - "Sun Microsystems", - "SST", - "ProMos/Mosel Vitelic", - "Infineon (former Siemens)", - "Macronix", - "Xerox", - "Plus Logic", - "SunDisk", - "Elan Circuit Tech.", - "European Silicon Str.", - "Apple Computer", - "Xilinx", - "Compaq", - "Protocol Engines", - "SCI", - "Seiko Instruments", - "Samsung", - "I3 Design System", - "Klic", - "Crosspoint Solutions", - "Alliance Semiconductor", - "Tandem", - "Hewlett-Packard", - "Intg. Silicon Solutions", - "Brooktree", - "New Media", - "MHS Electronic", - "Performance Semi.", - "Winbond Electronic", - "Kawasaki Steel", - "Bright Micro", - "TECMAR", - "Exar", - "PCMCIA", - "LG Semi (former Goldstar)", - "Northern Telecom", - "Sanyo", - "Array Microsystems", - "Crystal Semiconductor", - "Analog Devices", - "PMC-Sierra", - "Asparix", - "Convex Computer", - "Quality Semiconductor", - "Nimbus Technology", - "Transwitch", - "Micronas (ITT Intermetall)", - "Cannon", - "Altera", - "NEXCOM", - "QUALCOMM", - "Sony", - "Cray Research", - "AMS(Austria Micro)", - "Vitesse", - "Aster Electronics", - "Bay Networks (Synoptic)", - "Zentrum or ZMD", - "TRW", - "Thesys", - "Solbourne Computer", - "Allied-Signal", - "Dialog", - "Media Vision", - "Level One Communication"}; - -static const char *vendors2[] = { - "Cirrus Logic", - "National Instruments", - "ILC Data Device", - "Alcatel Mietec", - "Micro Linear", - "Univ. of NC", - "JTAG Technologies", - "BAE Systems", - "Nchip", - "Galileo Tech", - "Bestlink Systems", - "Graychip", - "GENNUM", - "VideoLogic", - "Robert Bosch", - "Chip Express", - "DATARAM", - "United Microelec Corp.", - "TCSI", - "Smart Modular", - "Hughes Aircraft", - "Lanstar Semiconductor", - "Qlogic", - "Kingston", - "Music Semi", - "Ericsson Components", - "SpaSE", - "Eon Silicon Devices", - "Programmable Micro Corp", - "DoD", - "Integ. Memories Tech.", - "Corollary Inc.", - "Dallas Semiconductor", - "Omnivision", - "EIV(Switzerland)", - "Novatel Wireless", - "Zarlink (former Mitel)", - "Clearpoint", - "Cabletron", - "STEC (former Silicon Technology)", - "Vanguard", - "Hagiwara Sys-Com", - "Vantis", - "Celestica", - "Century", - "Hal Computers", - "Rohm Company Ltd.", - "Juniper Networks", - "Libit Signal Processing", - "Mushkin Enhanced Memory", - "Tundra Semiconductor", - "Adaptec Inc.", - "LightSpeed Semi.", - "ZSP Corp.", - "AMIC Technology", - "Adobe Systems", - "Dynachip", - "PNY Electronics", - "Newport Digital", - "MMC Networks", - "T Square", - "Seiko Epson", - "Broadcom", - "Viking Components", - "V3 Semiconductor", - "Flextronics (former Orbit)", - "Suwa Electronics", - "Transmeta", - "Micron CMS", - "American Computer & Digital Components Inc", - "Enhance 3000 Inc", - "Tower Semiconductor", - "CPU Design", - "Price Point", - "Maxim Integrated Product", - "Tellabs", - "Centaur Technology", - "Unigen Corporation", - "Transcend Information", - "Memory Card Technology", - "CKD Corporation Ltd.", - "Capital Instruments, Inc.", - "Aica Kogyo, Ltd.", - "Linvex Technology", - "MSC Vertriebs GmbH", - "AKM Company, Ltd.", - "Dynamem, Inc.", - "NERA ASA", - "GSI Technology", - "Dane-Elec (C Memory)", - "Acorn Computers", - "Lara Technology", - "Oak Technology, Inc.", - "Itec Memory", - "Tanisys Technology", - "Truevision", - "Wintec Industries", - "Super PC Memory", - "MGV Memory", - "Galvantech", - "Gadzoox Nteworks", - "Multi Dimensional Cons.", - "GateField", - "Integrated Memory System", - "Triscend", - "XaQti", - "Goldenram", - "Clear Logic", - "Cimaron Communications", - "Nippon Steel Semi. Corp.", - "Advantage Memory", - "AMCC", - "LeCroy", - "Yamaha Corporation", - "Digital Microwave", - "NetLogic Microsystems", - "MIMOS Semiconductor", - "Advanced Fibre", - "BF Goodrich Data.", - "Epigram", - "Acbel Polytech Inc.", - "Apacer Technology", - "Admor Memory", - "FOXCONN", - "Quadratics Superconductor", - "3COM", -}; - -static const char *vendors3[] = {"Camintonn Corporation", - "ISOA Incorporated", - "Agate Semiconductor", - "ADMtek Incorporated", - "HYPERTEC", - "Adhoc Technologies", - "MOSAID Technologies", - "Ardent Technologies", - "Switchcore", - "Cisco Systems, Inc.", - "Allayer Technologies", - "WorkX AG", - "Oasis Semiconductor", - "Novanet Semiconductor", - "E-M Solutions", - "Power General", - "Advanced Hardware Arch.", - "Inova Semiconductors GmbH", - "Telocity", - "Delkin Devices", - "Symagery Microsystems", - "C-Port Corporation", - "SiberCore Technologies", - "Southland Microsystems", - "Malleable Technologies", - "Kendin Communications", - "Great Technology Microcomputer", - "Sanmina Corporation", - "HADCO Corporation", - "Corsair", - "Actrans System Inc.", - "ALPHA Technologies", - "Silicon Laboratories, Inc. (Cygnal)", - "Artesyn Technologies", - "Align Manufacturing", - "Peregrine Semiconductor", - "Chameleon Systems", - "Aplus Flash Technology", - "MIPS Technologies", - "Chrysalis ITS", - "ADTEC Corporation", - "Kentron Technologies", - "Win Technologies", - "Tachyon Semiconductor (former ASIC Designs Inc.)", - "Extreme Packet Devices", - "RF Micro Devices", - "Siemens AG", - "Sarnoff Corporation", - "Itautec Philco SA", - "Radiata Inc.", - "Benchmark Elect. (AVEX)", - "Legend", - "SpecTek Incorporated", - "Hi/fn", - "Enikia Incorporated", - "SwitchOn Networks", - "AANetcom Incorporated", - "Micro Memory Bank", - "ESS Technology", - "Virata Corporation", - "Excess Bandwidth", - "West Bay Semiconductor", - "DSP Group", - "Newport Communications", - "Chip2Chip Incorporated", - "Phobos Corporation", - "Intellitech Corporation", - "Nordic VLSI ASA", - "Ishoni Networks", - "Silicon Spice", - "Alchemy Semiconductor", - "Agilent Technologies", - "Centillium Communications", - "W.L. Gore", - "HanBit Electronics", - "GlobeSpan", - "Element 14", - "Pycon", - "Saifun Semiconductors", - "Sibyte, Incorporated", - "MetaLink Technologies", - "Feiya Technology", - "I & C Technology", - "Shikatronics", - "Elektrobit", - "Megic", - "Com-Tier", - "Malaysia Micro Solutions", - "Hyperchip", - "Gemstone Communications", - "Anadigm (former Anadyne)", - "3ParData", - "Mellanox Technologies", - "Tenx Technologies", - "Helix AG", - "Domosys", - "Skyup Technology", - "HiNT Corporation", - "Chiaro", - "MDT Technologies GmbH (former MCI Computer GMBH)", - "Exbit Technology A/S", - "Integrated Technology Express", - "AVED Memory", - "Legerity", - "Jasmine Networks", - "Caspian Networks", - "nCUBE", - "Silicon Access Networks", - "FDK Corporation", - "High Bandwidth Access", - "MultiLink Technology", - "BRECIS", - "World Wide Packets", - "APW", - "Chicory Systems", - "Xstream Logic", - "Fast-Chip", - "Zucotto Wireless", - "Realchip", - "Galaxy Power", - "eSilicon", - "Morphics Technology", - "Accelerant Networks", - "Silicon Wave", - "SandCraft", - "Elpida"}; - -static const char *vendors4[] = {"Solectron", - "Optosys Technologies", - "Buffalo (former Melco)", - "TriMedia Technologies", - "Cyan Technologies", - "Global Locate", - "Optillion", - "Terago Communications", - "Ikanos Communications", - "Princeton Technology", - "Nanya Technology", - "Elite Flash Storage", - "Mysticom", - "LightSand Communications", - "ATI Technologies", - "Agere Systems", - "NeoMagic", - "AuroraNetics", - "Golden Empire", - "Mushkin", - "Tioga Technologies", - "Netlist", - "TeraLogic", - "Cicada Semiconductor", - "Centon Electronics", - "Tyco Electronics", - "Magis Works", - "Zettacom", - "Cogency Semiconductor", - "Chipcon AS", - "Aspex Technology", - "F5 Networks", - "Programmable Silicon Solutions", - "ChipWrights", - "Acorn Networks", - "Quicklogic", - "Kingmax Semiconductor", - "BOPS", - "Flasys", - "BitBlitz Communications", - "eMemory Technology", - "Procket Networks", - "Purple Ray", - "Trebia Networks", - "Delta Electronics", - "Onex Communications", - "Ample Communications", - "Memory Experts Intl", - "Astute Networks", - "Azanda Network Devices", - "Dibcom", - "Tekmos", - "API NetWorks", - "Bay Microsystems", - "Firecron Ltd", - "Resonext Communications", - "Tachys Technologies", - "Equator Technology", - "Concept Computer", - "SILCOM", - "3Dlabs", - "c't Magazine", - "Sanera Systems", - "Silicon Packets", - "Viasystems Group", - "Simtek", - "Semicon Devices Singapore", - "Satron Handelsges", - "Improv Systems", - "INDUSYS GmbH", - "Corrent", - "Infrant Technologies", - "Ritek Corp", - "empowerTel Networks", - "Hypertec", - "Cavium Networks", - "PLX Technology", - "Massana Design", - "Intrinsity", - "Valence Semiconductor", - "Terawave Communications", - "IceFyre Semiconductor", - "Primarion", - "Picochip Designs Ltd", - "Silverback Systems", - "Jade Star Technologies", - "Pijnenburg Securealink", - "TakeMS International AG", - "Cambridge Silicon Radio", - "Swissbit", - "Nazomi Communications", - "eWave System", - "Rockwell Collins", - "Picocel Co., Ltd.", - "Alphamosaic Ltd", - "Sandburst", - "SiCon Video", - "NanoAmp Solutions", - "Ericsson Technology", - "PrairieComm", - "Mitac International", - "Layer N Networks", - "MtekVision", - "Allegro Networks", - "Marvell Semiconductors", - "Netergy Microelectronic", - "NVIDIA", - "Internet Machines", - "Peak Electronics", - "Litchfield Communication", - "Accton Technology", - "Teradiant Networks", - "Europe Technologies", - "Cortina Systems", - "RAM Components", - "Raqia Networks", - "ClearSpeed", - "Matsushita Battery", - "Xelerated", - "SimpleTech", - "Utron Technology", - "Astec International", - "AVM gmbH", - "Redux Communications", - "Dot Hill Systems", - "TeraChip"}; - -static const char *vendors5[] = {"T-RAM Incorporated", - "Innovics Wireless", - "Teknovus", - "KeyEye Communications", - "Runcom Technologies", - "RedSwitch", - "Dotcast", - "Silicon Mountain Memory", - "Signia Technologies", - "Pixim", - "Galazar Networks", - "White Electronic Designs", - "Patriot Scientific", - "Neoaxiom Corporation", - "3Y Power Technology", - "Europe Technologies", - "Potentia Power Systems", - "C-guys Incorporated", - "Digital Communications Technology Incorporated", - "Silicon-Based Technology", - "Fulcrum Microsystems", - "Positivo Informatica Ltd", - "XIOtech Corporation", - "PortalPlayer", - "Zhiying Software", - "Direct2Data", - "Phonex Broadband", - "Skyworks Solutions", - "Entropic Communications", - "Pacific Force Technology", - "Zensys A/S", - "Legend Silicon Corp.", - "sci-worx GmbH", - "SMSC (former Oasis Silicon Systems)", - "Renesas Technology", - "Raza Microelectronics", - "Phyworks", - "MediaTek", - "Non-cents Productions", - "US Modular", - "Wintegra Ltd", - "Mathstar", - "StarCore", - "Oplus Technologies", - "Mindspeed", - "Just Young Computer", - "Radia Communications", - "OCZ", - "Emuzed", - "LOGIC Devices", - "Inphi Corporation", - "Quake Technologies", - "Vixel", - "SolusTek", - "Kongsberg Maritime", - "Faraday Technology", - "Altium Ltd.", - "Insyte", - "ARM Ltd.", - "DigiVision", - "Vativ Technologies", - "Endicott Interconnect Technologies", - "Pericom", - "Bandspeed", - "LeWiz Communications", - "CPU Technology", - "Ramaxel Technology", - "DSP Group", - "Axis Communications", - "Legacy Electronics", - "Chrontel", - "Powerchip Semiconductor", - "MobilEye Technologies", - "Excel Semiconductor", - "A-DATA Technology", - "VirtualDigm", - "G.Skill Intl", - "Quanta Computer", - "Yield Microelectronics", - "Afa Technologies", - "KINGBOX Technology Co. Ltd.", - "Ceva", - "iStor Networks", - "Advance Modules", - "Microsoft", - "Open-Silicon", - "Goal Semiconductor", - "ARC International", - "Simmtec", - "Metanoia", - "Key Stream", - "Lowrance Electronics", - "Adimos", - "SiGe Semiconductor", - "Fodus Communications", - "Credence Systems Corp.", - "Genesis Microchip Inc.", - "Vihana, Inc.", - "WIS Technologies", - "GateChange Technologies", - "High Density Devices AS", - "Synopsys", - "Gigaram", - "Enigma Semiconductor Inc.", - "Century Micro Inc.", - "Icera Semiconductor", - "Mediaworks Integrated Systems", - "O'Neil Product Development", - "Supreme Top Technology Ltd.", - "MicroDisplay Corporation", - "Team Group Inc.", - "Sinett Corporation", - "Toshiba Corporation", - "Tensilica", - "SiRF Technology", - "Bacoc Inc.", - "SMaL Camera Technologies", - "Thomson SC", - "Airgo Networks", - "Wisair Ltd.", - "SigmaTel", - "Arkados", - "Compete IT gmbH Co. KG", - "Eudar Technology Inc.", - "Focus Enhancements", - "Xyratex"}; - -static const char *vendors6[] = {"Specular Networks", - "Patriot Memory", - "U-Chip Technology Corp.", - "Silicon Optix", - "Greenfield Networks", - "CompuRAM GmbH", - "Stargen, Inc.", - "NetCell Corporation", - "Excalibrus Technologies Ltd", - "SCM Microsystems", - "Xsigo Systems, Inc.", - "CHIPS & Systems Inc", - "Tier 1 Multichip Solutions", - "CWRL Labs", - "Teradici", - "Gigaram, Inc.", - "g2 Microsystems", - "PowerFlash Semiconductor", - "P.A. Semi, Inc.", - "NovaTech Solutions, S.A.", - "c2 Microsystems, Inc.", - "Level5 Networks", - "COS Memory AG", - "Innovasic Semiconductor", - "02IC Co. Ltd", - "Tabula, Inc.", - "Crucial Technology", - "Chelsio Communications", - "Solarflare Communications", - "Xambala Inc.", - "EADS Astrium", - "ATO Semicon Co. Ltd.", - "Imaging Works, Inc.", - "Astute Networks, Inc.", - "Tzero", - "Emulex", - "Power-One", - "Pulse~LINK Inc.", - "Hon Hai Precision Industry", - "White Rock Networks Inc.", - "Telegent Systems USA, Inc.", - "Atrua Technologies, Inc.", - "Acbel Polytech Inc.", - "eRide Inc.", - "ULi Electronics Inc.", - "Magnum Semiconductor Inc.", - "neoOne Technology, Inc.", - "Connex Technology, Inc.", - "Stream Processors, Inc.", - "Focus Enhancements", - "Telecis Wireless, Inc.", - "uNav Microelectronics", - "Tarari, Inc.", - "Ambric, Inc.", - "Newport Media, Inc.", - "VMTS", - "Enuclia Semiconductor, Inc.", - "Virtium Technology Inc.", - "Solid State System Co., Ltd.", - "Kian Tech LLC", - "Artimi", - "Power Quotient International", - "Avago Technologies", - "ADTechnology", - "Sigma Designs", - "SiCortex, Inc.", - "Ventura Technology Group", - "eASIC", - "M.H.S. SAS", - "Micro Star International", - "Rapport Inc.", - "Makway International", - "Broad Reach Engineering Co.", - "Semiconductor Mfg Intl Corp", - "SiConnect", - "FCI USA Inc.", - "Validity Sensors", - "Coney Technology Co. Ltd.", - "Spans Logic", - "Neterion Inc.", - "Qimonda", - "New Japan Radio Co. Ltd.", - "Velogix", - "Montalvo Systems", - "iVivity Inc.", - "Walton Chaintech", - "AENEON", - "Lorom Industrial Co. Ltd.", - "Radiospire Networks", - "Sensio Technologies, Inc.", - "Nethra Imaging", - "Hexon Technology Pte Ltd", - "CompuStocx (CSX)", - "Methode Electronics, Inc.", - "Connect One Ltd.", - "Opulan Technologies", - "Septentrio NV", - "Goldenmars Technology Inc.", - "Kreton Corporation", - "Cochlear Ltd.", - "Altair Semiconductor", - "NetEffect, Inc.", - "Spansion, Inc.", - "Taiwan Semiconductor Mfg", - "Emphany Systems Inc.", - "ApaceWave Technologies", - "Mobilygen Corporation", - "Tego", - "Cswitch Corporation", - "Haier (Beijing) IC Design Co.", - "MetaRAM", - "Axel Electronics Co. Ltd.", - "Tilera Corporation", - "Aquantia", - "Vivace Semiconductor", - "Redpine Signals", - "Octalica", - "InterDigital Communications", - "Avant Technology", - "Asrock, Inc.", - "Availink", - "Quartics, Inc.", - "Element CXI", - "Innovaciones Microelectronicas", - "VeriSilicon Microelectronics", - "W5 Networks"}; - -static const char *vendors7[] = {"MOVEKING", - "Mavrix Technology, Inc.", - "CellGuide Ltd.", - "Faraday Technology", - "Diablo Technologies, Inc.", - "Jennic", - "Octasic", - "Molex Incorporated", - "3Leaf Networks", - "Bright Micron Technology", - "Netxen", - "NextWave Broadband Inc.", - "DisplayLink", - "ZMOS Technology", - "Tec-Hill", - "Multigig, Inc.", - "Amimon", - "Euphonic Technologies, Inc.", - "BRN Phoenix", - "InSilica", - "Ember Corporation", - "Avexir Technologies Corporation", - "Echelon Corporation", - "Edgewater Computer Systems", - "XMOS Semiconductor Ltd.", - "GENUSION, Inc.", - "Memory Corp NV", - "SiliconBlue Technologies", - "Rambus Inc."}; - -#define VENDORS_BANKS 7 -#define VENDORS_LAST_BANK_SIZE sizeof(vendors7) / sizeof(char *) - -static const char **vendors[VENDORS_BANKS] = {vendors1, vendors2, vendors3, vendors4, - vendors5, vendors6, vendors7}; +#include "spd-vendors.c" typedef struct { unsigned char bytes[512]; @@ -1375,12 +577,11 @@ static void decode_ddr3_part_number(unsigned char *bytes, char *part_number) { } } - static void decode_ddr34_manufacturer(unsigned char count, unsigned char code, char **manufacturer) { if (!manufacturer) return; if (code == 0x00 || code == 0xFF) { - *manufacturer = _("Unknown"); + *manufacturer = NULL; return; } @@ -1391,8 +592,8 @@ static void decode_ddr34_manufacturer(unsigned char count, unsigned char code, c int bank = count & 0x7f; int pos = code & 0x7f; - if (bank >= VENDORS_BANKS || (bank == VENDORS_BANKS - 1 && pos > VENDORS_LAST_BANK_SIZE)) { - *manufacturer = _("Unknown"); + if (bank >= VENDORS_BANKS) { + *manufacturer = NULL; return; } |