helper: Add converter from JEP106 ID to manufacturer name 77/3177/3
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>
Mon, 28 Dec 2015 17:05:54 +0000 (18:05 +0100)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Fri, 22 Jan 2016 15:02:16 +0000 (15:02 +0000)
Use it to print the manufacturer of detected TAPs

Change-Id: Ic4384c61c7f6f7ae2a9b860a805a5997542f72cc
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/3177
Tested-by: jenkins
Reviewed-by: Jiri Kastner <cz172638@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
src/helper/Makefile.am
src/helper/jep106.c [new file with mode: 0644]
src/helper/jep106.h [new file with mode: 0644]
src/helper/jep106.inc [new file with mode: 0644]
src/helper/update_jep106.pl [new file with mode: 0755]
src/jtag/core.c

index 9477267..64caf98 100644 (file)
@@ -17,6 +17,7 @@ libhelper_la_SOURCES = \
        replacements.c \
        fileio.c \
        util.c \
+       jep106.c \
        jim-nvp.c
 
 if IOUTIL
@@ -45,6 +46,9 @@ noinst_HEADERS = \
        fileio.h \
        system.h \
        bin2char.sh \
+       jep106.h \
+       jep106.inc \
+       update_jep106.pl \
        jim-nvp.h
 
 EXTRA_DIST = startup.tcl
diff --git a/src/helper/jep106.c b/src/helper/jep106.c
new file mode 100644 (file)
index 0000000..67c4a9a
--- /dev/null
@@ -0,0 +1,41 @@
+/***************************************************************************
+ *   Copyright (C) 2015 Andreas Fritiofson                                 *
+ *   andreas.fritiofson@gmail.com                                          *
+ *                                                                         *
+ *   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.                          *
+ ***************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "jep106.h"
+#include "log.h"
+
+static const char * const jep106[][126] = {
+#include "jep106.inc"
+};
+
+const char *jep106_manufacturer(unsigned bank, unsigned id)
+{
+       if (id < 1 || id > 126) {
+               LOG_DEBUG("BUG: Caller passed out-of-range JEP106 ID!");
+               return "<invalid>";
+       }
+
+       /* index is zero based */
+       id--;
+
+       if (bank >= ARRAY_SIZE(jep106) || jep106[bank][id] == 0)
+               return "<unknown>";
+
+       return jep106[bank][id];
+}
diff --git a/src/helper/jep106.h b/src/helper/jep106.h
new file mode 100644 (file)
index 0000000..b43409a
--- /dev/null
@@ -0,0 +1,29 @@
+/***************************************************************************
+ *   Copyright (C) 2015 Andreas Fritiofson                                 *
+ *   andreas.fritiofson@gmail.com                                          *
+ *                                                                         *
+ *   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.                          *
+ ***************************************************************************/
+
+#ifndef JEP106_H
+#define JEP106_H
+
+/**
+ * Get the manufacturer name associated with a JEP106 ID.
+ * @param bank The bank (number of continuation codes) of the manufacturer ID.
+ * @param id The 7-bit manufacturer ID (i.e. with parity stripped).
+ * @return A pointer to static const storage containing the name of the
+ *         manufacturer associated with bank and id, or one of the strings
+ *         "<invalid>" and "<unknown>".
+ */
+const char *jep106_manufacturer(unsigned bank, unsigned id);
+
+#endif
diff --git a/src/helper/jep106.inc b/src/helper/jep106.inc
new file mode 100644 (file)
index 0000000..1895005
--- /dev/null
@@ -0,0 +1,1119 @@
+/* Autogenerated with update_jep106.pl*/
+[0][0x01 - 1] = "AMD",
+[0][0x02 - 1] = "AMI",
+[0][0x03 - 1] = "Fairchild",
+[0][0x04 - 1] = "Fujitsu",
+[0][0x05 - 1] = "GTE",
+[0][0x06 - 1] = "Harris",
+[0][0x07 - 1] = "Hitachi",
+[0][0x08 - 1] = "Inmos",
+[0][0x09 - 1] = "Intel",
+[0][0x0a - 1] = "I.T.T.",
+[0][0x0b - 1] = "Intersil",
+[0][0x0c - 1] = "Monolithic Memories",
+[0][0x0d - 1] = "Mostek",
+[0][0x0e - 1] = "Freescale (Motorola)",
+[0][0x0f - 1] = "National",
+[0][0x10 - 1] = "NEC",
+[0][0x11 - 1] = "RCA",
+[0][0x12 - 1] = "Raytheon",
+[0][0x13 - 1] = "Conexant (Rockwell)",
+[0][0x14 - 1] = "Seeq",
+[0][0x15 - 1] = "NXP (Philips)",
+[0][0x16 - 1] = "Synertek",
+[0][0x17 - 1] = "Texas Instruments",
+[0][0x18 - 1] = "Toshiba",
+[0][0x19 - 1] = "Xicor",
+[0][0x1a - 1] = "Zilog",
+[0][0x1b - 1] = "Eurotechnique",
+[0][0x1c - 1] = "Mitsubishi",
+[0][0x1d - 1] = "Lucent (AT&T)",
+[0][0x1e - 1] = "Exel",
+[0][0x1f - 1] = "Atmel",
+[0][0x20 - 1] = "STMicroelectronics",
+[0][0x21 - 1] = "Lattice Semi.",
+[0][0x22 - 1] = "NCR",
+[0][0x23 - 1] = "Wafer Scale Integration",
+[0][0x24 - 1] = "IBM",
+[0][0x25 - 1] = "Tristar",
+[0][0x26 - 1] = "Visic",
+[0][0x27 - 1] = "Intl. CMOS Technology",
+[0][0x28 - 1] = "SSSI",
+[0][0x29 - 1] = "MicrochipTechnology",
+[0][0x2a - 1] = "Ricoh Ltd.",
+[0][0x2b - 1] = "VLSI",
+[0][0x2c - 1] = "Micron Technology",
+[0][0x2d - 1] = "SK Hynix",
+[0][0x2e - 1] = "OKI Semiconductor",
+[0][0x2f - 1] = "ACTEL",
+[0][0x30 - 1] = "Sharp",
+[0][0x31 - 1] = "Catalyst",
+[0][0x32 - 1] = "Panasonic",
+[0][0x33 - 1] = "IDT",
+[0][0x34 - 1] = "Cypress",
+[0][0x35 - 1] = "DEC",
+[0][0x36 - 1] = "LSI Logic",
+[0][0x37 - 1] = "Zarlink (Plessey)",
+[0][0x38 - 1] = "UTMC",
+[0][0x39 - 1] = "Thinking Machine",
+[0][0x3a - 1] = "Thomson CSF",
+[0][0x3b - 1] = "Integrated CMOS (Vertex)",
+[0][0x3c - 1] = "Honeywell",
+[0][0x3d - 1] = "Tektronix",
+[0][0x3e - 1] = "Oracle Corporation",
+[0][0x3f - 1] = "Silicon Storage Technology",
+[0][0x40 - 1] = "ProMos/Mosel Vitelic",
+[0][0x41 - 1] = "Infineon (Siemens)",
+[0][0x42 - 1] = "Macronix",
+[0][0x43 - 1] = "Xerox",
+[0][0x44 - 1] = "Plus Logic",
+[0][0x45 - 1] = "SanDisk Corporation",
+[0][0x46 - 1] = "Elan Circuit Tech.",
+[0][0x47 - 1] = "European Silicon Str.",
+[0][0x48 - 1] = "Apple Computer",
+[0][0x49 - 1] = "Xilinx",
+[0][0x4a - 1] = "Compaq",
+[0][0x4b - 1] = "Protocol Engines",
+[0][0x4c - 1] = "SCI",
+[0][0x4d - 1] = "Seiko Instruments",
+[0][0x4e - 1] = "Samsung",
+[0][0x4f - 1] = "I3 Design System",
+[0][0x50 - 1] = "Klic",
+[0][0x51 - 1] = "Crosspoint Solutions",
+[0][0x52 - 1] = "Alliance Semiconductor",
+[0][0x53 - 1] = "Tandem",
+[0][0x54 - 1] = "Hewlett-Packard",
+[0][0x55 - 1] = "Integrated Silicon Solutions",
+[0][0x56 - 1] = "Brooktree",
+[0][0x57 - 1] = "New Media",
+[0][0x58 - 1] = "MHS Electronic",
+[0][0x59 - 1] = "Performance Semi.",
+[0][0x5a - 1] = "Winbond Electronic",
+[0][0x5b - 1] = "Kawasaki Steel",
+[0][0x5c - 1] = "Bright Micro",
+[0][0x5d - 1] = "TECMAR",
+[0][0x5e - 1] = "Exar",
+[0][0x5f - 1] = "PCMCIA",
+[0][0x60 - 1] = "LG Semi (Goldstar)",
+[0][0x61 - 1] = "Northern Telecom",
+[0][0x62 - 1] = "Sanyo",
+[0][0x63 - 1] = "Array Microsystems",
+[0][0x64 - 1] = "Crystal Semiconductor",
+[0][0x65 - 1] = "Analog Devices",
+[0][0x66 - 1] = "PMC-Sierra",
+[0][0x67 - 1] = "Asparix",
+[0][0x68 - 1] = "Convex Computer",
+[0][0x69 - 1] = "Quality Semiconductor",
+[0][0x6a - 1] = "Nimbus Technology",
+[0][0x6b - 1] = "Transwitch",
+[0][0x6c - 1] = "Micronas (ITT Intermetall)",
+[0][0x6d - 1] = "Cannon",
+[0][0x6e - 1] = "Altera",
+[0][0x6f - 1] = "NEXCOM",
+[0][0x70 - 1] = "Qualcomm",
+[0][0x71 - 1] = "Sony",
+[0][0x72 - 1] = "Cray Research",
+[0][0x73 - 1] = "AMS(Austria Micro)",
+[0][0x74 - 1] = "Vitesse",
+[0][0x75 - 1] = "Aster Electronics",
+[0][0x76 - 1] = "Bay Networks (Synoptic)",
+[0][0x77 - 1] = "Zentrum/ZMD",
+[0][0x78 - 1] = "TRW",
+[0][0x79 - 1] = "Thesys",
+[0][0x7a - 1] = "Solbourne Computer",
+[0][0x7b - 1] = "Allied-Signal",
+[0][0x7c - 1] = "Dialog Semiconductor",
+[0][0x7d - 1] = "Media Vision",
+[0][0x7e - 1] = "Numonyx Corporation",
+[1][0x01 - 1] = "Cirrus Logic",
+[1][0x02 - 1] = "National Instruments",
+[1][0x03 - 1] = "ILC Data Device",
+[1][0x04 - 1] = "Alcatel Mietec",
+[1][0x05 - 1] = "Micro Linear",
+[1][0x06 - 1] = "Univ. of NC",
+[1][0x07 - 1] = "JTAG Technologies",
+[1][0x08 - 1] = "BAE Systems (Loral)",
+[1][0x09 - 1] = "Nchip",
+[1][0x0a - 1] = "Galileo Tech",
+[1][0x0b - 1] = "Bestlink Systems",
+[1][0x0c - 1] = "Graychip",
+[1][0x0d - 1] = "GENNUM",
+[1][0x0e - 1] = "VideoLogic",
+[1][0x0f - 1] = "Robert Bosch",
+[1][0x10 - 1] = "Chip Express",
+[1][0x11 - 1] = "DATARAM",
+[1][0x12 - 1] = "United Microelectronics Corp.",
+[1][0x13 - 1] = "TCSI",
+[1][0x14 - 1] = "Smart Modular",
+[1][0x15 - 1] = "Hughes Aircraft",
+[1][0x16 - 1] = "Lanstar Semiconductor",
+[1][0x17 - 1] = "Qlogic",
+[1][0x18 - 1] = "Kingston",
+[1][0x19 - 1] = "Music Semi",
+[1][0x1a - 1] = "Ericsson Components",
+[1][0x1b - 1] = "SpaSE",
+[1][0x1c - 1] = "Eon Silicon Devices",
+[1][0x1d - 1] = "Integrated Silicon Solution (ISSI)",
+[1][0x1e - 1] = "DoD",
+[1][0x1f - 1] = "Integ. Memories Tech.",
+[1][0x20 - 1] = "Corollary Inc.",
+[1][0x21 - 1] = "Dallas Semiconductor",
+[1][0x22 - 1] = "Omnivision",
+[1][0x23 - 1] = "EIV(Switzerland)",
+[1][0x24 - 1] = "Novatel Wireless",
+[1][0x25 - 1] = "Zarlink (Mitel)",
+[1][0x26 - 1] = "Clearpoint",
+[1][0x27 - 1] = "Cabletron",
+[1][0x28 - 1] = "STEC (Silicon Tech)",
+[1][0x29 - 1] = "Vanguard",
+[1][0x2a - 1] = "Hagiwara Sys-Com",
+[1][0x2b - 1] = "Vantis",
+[1][0x2c - 1] = "Celestica",
+[1][0x2d - 1] = "Century",
+[1][0x2e - 1] = "Hal Computers",
+[1][0x2f - 1] = "Rohm Company Ltd.",
+[1][0x30 - 1] = "Juniper Networks",
+[1][0x31 - 1] = "Libit Signal Processing",
+[1][0x32 - 1] = "Mushkin Enhanced Memory",
+[1][0x33 - 1] = "Tundra Semiconductor",
+[1][0x34 - 1] = "Adaptec Inc.",
+[1][0x35 - 1] = "LightSpeed Semi.",
+[1][0x36 - 1] = "ZSP Corp.",
+[1][0x37 - 1] = "AMIC Technology",
+[1][0x38 - 1] = "Adobe Systems",
+[1][0x39 - 1] = "Dynachip",
+[1][0x3a - 1] = "PNY Technologies, Inc.",
+[1][0x3b - 1] = "Newport Digital",
+[1][0x3c - 1] = "MMC Networks",
+[1][0x3d - 1] = "T Square",
+[1][0x3e - 1] = "Seiko Epson",
+[1][0x3f - 1] = "Broadcom",
+[1][0x40 - 1] = "Viking Components",
+[1][0x41 - 1] = "V3 Semiconductor",
+[1][0x42 - 1] = "Flextronics (Orbit Semiconductor)",
+[1][0x43 - 1] = "Suwa Electronics",
+[1][0x44 - 1] = "Transmeta",
+[1][0x45 - 1] = "Micron CMS",
+[1][0x46 - 1] = "American Computer & Digital",
+[1][0x47 - 1] = "Enhance 3000 Inc.",
+[1][0x48 - 1] = "Tower Semiconductor",
+[1][0x49 - 1] = "CPU Design",
+[1][0x4a - 1] = "Price Point",
+[1][0x4b - 1] = "Maxim Integrated Product",
+[1][0x4c - 1] = "Tellabs",
+[1][0x4d - 1] = "Centaur Technology",
+[1][0x4e - 1] = "Unigen Corporation",
+[1][0x4f - 1] = "Transcend Information",
+[1][0x50 - 1] = "Memory Card Technology",
+[1][0x51 - 1] = "CKD Corporation Ltd.",
+[1][0x52 - 1] = "Capital Instruments, Inc.",
+[1][0x53 - 1] = "Aica Kogyo, Ltd.",
+[1][0x54 - 1] = "Linvex Technology",
+[1][0x55 - 1] = "MSC Vertriebs GmbH",
+[1][0x56 - 1] = "AKM Company, Ltd.",
+[1][0x57 - 1] = "Dynamem, Inc.",
+[1][0x58 - 1] = "NERA ASA",
+[1][0x59 - 1] = "GSI Technology",
+[1][0x5a - 1] = "Dane-Elec (C Memory)",
+[1][0x5b - 1] = "Acorn Computers",
+[1][0x5c - 1] = "Lara Technology",
+[1][0x5d - 1] = "Oak Technology, Inc.",
+[1][0x5e - 1] = "Itec Memory",
+[1][0x5f - 1] = "Tanisys Technology",
+[1][0x60 - 1] = "Truevision",
+[1][0x61 - 1] = "Wintec Industries",
+[1][0x62 - 1] = "Super PC Memory",
+[1][0x63 - 1] = "MGV Memory",
+[1][0x64 - 1] = "Galvantech",
+[1][0x65 - 1] = "Gadzoox Networks",
+[1][0x66 - 1] = "Multi Dimensional Cons.",
+[1][0x67 - 1] = "GateField",
+[1][0x68 - 1] = "Integrated Memory System",
+[1][0x69 - 1] = "Triscend",
+[1][0x6a - 1] = "XaQti",
+[1][0x6b - 1] = "Goldenram",
+[1][0x6c - 1] = "Clear Logic",
+[1][0x6d - 1] = "Cimaron Communications",
+[1][0x6e - 1] = "Nippon Steel Semi. Corp.",
+[1][0x6f - 1] = "Advantage Memory",
+[1][0x70 - 1] = "AMCC",
+[1][0x71 - 1] = "LeCroy",
+[1][0x72 - 1] = "Yamaha Corporation",
+[1][0x73 - 1] = "Digital Microwave",
+[1][0x74 - 1] = "NetLogic Microsystems",
+[1][0x75 - 1] = "MIMOS Semiconductor",
+[1][0x76 - 1] = "Advanced Fibre",
+[1][0x77 - 1] = "BF Goodrich Data.",
+[1][0x78 - 1] = "Epigram",
+[1][0x79 - 1] = "Acbel Polytech Inc.",
+[1][0x7a - 1] = "Apacer Technology",
+[1][0x7b - 1] = "Admor Memory",
+[1][0x7c - 1] = "FOXCONN",
+[1][0x7d - 1] = "Quadratics Superconductor",
+[1][0x7e - 1] = "3COM",
+[2][0x01 - 1] = "Camintonn Corporation",
+[2][0x02 - 1] = "ISOA Incorporated",
+[2][0x03 - 1] = "Agate Semiconductor",
+[2][0x04 - 1] = "ADMtek Incorporated",
+[2][0x05 - 1] = "HYPERTEC",
+[2][0x06 - 1] = "Adhoc Technologies",
+[2][0x07 - 1] = "MOSAID Technologies",
+[2][0x08 - 1] = "Ardent Technologies",
+[2][0x09 - 1] = "Switchcore",
+[2][0x0a - 1] = "Cisco Systems, Inc.",
+[2][0x0b - 1] = "Allayer Technologies",
+[2][0x0c - 1] = "WorkX AG (Wichman)",
+[2][0x0d - 1] = "Oasis Semiconductor",
+[2][0x0e - 1] = "Novanet Semiconductor",
+[2][0x0f - 1] = "E-M Solutions",
+[2][0x10 - 1] = "Power General",
+[2][0x11 - 1] = "Advanced Hardware Arch.",
+[2][0x12 - 1] = "Inova Semiconductors GmbH",
+[2][0x13 - 1] = "Telocity",
+[2][0x14 - 1] = "Delkin Devices",
+[2][0x15 - 1] = "Symagery Microsystems",
+[2][0x16 - 1] = "C-Port Corporation",
+[2][0x17 - 1] = "SiberCore Technologies",
+[2][0x18 - 1] = "Southland Microsystems",
+[2][0x19 - 1] = "Malleable Technologies",
+[2][0x1a - 1] = "Kendin Communications",
+[2][0x1b - 1] = "Great Technology Microcomputer",
+[2][0x1c - 1] = "Sanmina Corporation",
+[2][0x1d - 1] = "HADCO Corporation",
+[2][0x1e - 1] = "Corsair",
+[2][0x1f - 1] = "Actrans System Inc.",
+[2][0x20 - 1] = "ALPHA Technologies",
+[2][0x21 - 1] = "Silicon Laboratories, Inc. (Cygnal)",
+[2][0x22 - 1] = "Artesyn Technologies",
+[2][0x23 - 1] = "Align Manufacturing",
+[2][0x24 - 1] = "Peregrine Semiconductor",
+[2][0x25 - 1] = "Chameleon Systems",
+[2][0x26 - 1] = "Aplus Flash Technology",
+[2][0x27 - 1] = "MIPS Technologies",
+[2][0x28 - 1] = "Chrysalis ITS",
+[2][0x29 - 1] = "ADTEC Corporation",
+[2][0x2a - 1] = "Kentron Technologies",
+[2][0x2b - 1] = "Win Technologies",
+[2][0x2c - 1] = "Tezzaron Semiconductor",
+[2][0x2d - 1] = "Extreme Packet Devices",
+[2][0x2e - 1] = "RF Micro Devices",
+[2][0x2f - 1] = "Siemens AG",
+[2][0x30 - 1] = "Sarnoff Corporation",
+[2][0x31 - 1] = "Itautec SA",
+[2][0x32 - 1] = "Radiata Inc.",
+[2][0x33 - 1] = "Benchmark Elect. (AVEX)",
+[2][0x34 - 1] = "Legend",
+[2][0x35 - 1] = "SpecTek Incorporated",
+[2][0x36 - 1] = "Hi/fn",
+[2][0x37 - 1] = "Enikia Incorporated",
+[2][0x38 - 1] = "SwitchOn Networks",
+[2][0x39 - 1] = "AANetcom Incorporated",
+[2][0x3a - 1] = "Micro Memory Bank",
+[2][0x3b - 1] = "ESS Technology",
+[2][0x3c - 1] = "Virata Corporation",
+[2][0x3d - 1] = "Excess Bandwidth",
+[2][0x3e - 1] = "West Bay Semiconductor",
+[2][0x3f - 1] = "DSP Group",
+[2][0x40 - 1] = "Newport Communications",
+[2][0x41 - 1] = "Chip2Chip Incorporated",
+[2][0x42 - 1] = "Phobos Corporation",
+[2][0x43 - 1] = "Intellitech Corporation",
+[2][0x44 - 1] = "Nordic VLSI ASA",
+[2][0x45 - 1] = "Ishoni Networks",
+[2][0x46 - 1] = "Silicon Spice",
+[2][0x47 - 1] = "Alchemy Semiconductor",
+[2][0x48 - 1] = "Agilent Technologies",
+[2][0x49 - 1] = "Centillium Communications",
+[2][0x4a - 1] = "W.L. Gore",
+[2][0x4b - 1] = "HanBit Electronics",
+[2][0x4c - 1] = "GlobeSpan",
+[2][0x4d - 1] = "Element 14",
+[2][0x4e - 1] = "Pycon",
+[2][0x4f - 1] = "Saifun Semiconductors",
+[2][0x50 - 1] = "Sibyte, Incorporated",
+[2][0x51 - 1] = "MetaLink Technologies",
+[2][0x52 - 1] = "Feiya Technology",
+[2][0x53 - 1] = "I & C Technology",
+[2][0x54 - 1] = "Shikatronics",
+[2][0x55 - 1] = "Elektrobit",
+[2][0x56 - 1] = "Megic",
+[2][0x57 - 1] = "Com-Tier",
+[2][0x58 - 1] = "Malaysia Micro Solutions",
+[2][0x59 - 1] = "Hyperchip",
+[2][0x5a - 1] = "Gemstone Communications",
+[2][0x5b - 1] = "Anadigm (Anadyne)",
+[2][0x5c - 1] = "3ParData",
+[2][0x5d - 1] = "Mellanox Technologies",
+[2][0x5e - 1] = "Tenx Technologies",
+[2][0x5f - 1] = "Helix AG",
+[2][0x60 - 1] = "Domosys",
+[2][0x61 - 1] = "Skyup Technology",
+[2][0x62 - 1] = "HiNT Corporation",
+[2][0x63 - 1] = "Chiaro",
+[2][0x64 - 1] = "MDT Technologies GmbH",
+[2][0x65 - 1] = "Exbit Technology A/S",
+[2][0x66 - 1] = "Integrated Technology Express",
+[2][0x67 - 1] = "AVED Memory",
+[2][0x68 - 1] = "Legerity",
+[2][0x69 - 1] = "Jasmine Networks",
+[2][0x6a - 1] = "Caspian Networks",
+[2][0x6b - 1] = "nCUBE",
+[2][0x6c - 1] = "Silicon Access Networks",
+[2][0x6d - 1] = "FDK Corporation",
+[2][0x6e - 1] = "High Bandwidth Access",
+[2][0x6f - 1] = "MultiLink Technology",
+[2][0x70 - 1] = "BRECIS",
+[2][0x71 - 1] = "World Wide Packets",
+[2][0x72 - 1] = "APW",
+[2][0x73 - 1] = "Chicory Systems",
+[2][0x74 - 1] = "Xstream Logic",
+[2][0x75 - 1] = "Fast-Chip",
+[2][0x76 - 1] = "Zucotto Wireless",
+[2][0x77 - 1] = "Realchip",
+[2][0x78 - 1] = "Galaxy Power",
+[2][0x79 - 1] = "eSilicon",
+[2][0x7a - 1] = "Morphics Technology",
+[2][0x7b - 1] = "Accelerant Networks",
+[2][0x7c - 1] = "Silicon Wave",
+[2][0x7d - 1] = "SandCraft",
+[2][0x7e - 1] = "Elpida",
+[3][0x01 - 1] = "Solectron",
+[3][0x02 - 1] = "Optosys Technologies",
+[3][0x03 - 1] = "Buffalo (Formerly Melco)",
+[3][0x04 - 1] = "TriMedia Technologies",
+[3][0x05 - 1] = "Cyan Technologies",
+[3][0x06 - 1] = "Global Locate",
+[3][0x07 - 1] = "Optillion",
+[3][0x08 - 1] = "Terago Communications",
+[3][0x09 - 1] = "Ikanos Communications",
+[3][0x0a - 1] = "Princeton Technology",
+[3][0x0b - 1] = "Nanya Technology",
+[3][0x0c - 1] = "Elite Flash Storage",
+[3][0x0d - 1] = "Mysticom",
+[3][0x0e - 1] = "LightSand Communications",
+[3][0x0f - 1] = "ATI Technologies",
+[3][0x10 - 1] = "Agere Systems",
+[3][0x11 - 1] = "NeoMagic",
+[3][0x12 - 1] = "AuroraNetics",
+[3][0x13 - 1] = "Golden Empire",
+[3][0x14 - 1] = "Mushkin",
+[3][0x15 - 1] = "Tioga Technologies",
+[3][0x16 - 1] = "Netlist",
+[3][0x17 - 1] = "TeraLogic",
+[3][0x18 - 1] = "Cicada Semiconductor",
+[3][0x19 - 1] = "Centon Electronics",
+[3][0x1a - 1] = "Tyco Electronics",
+[3][0x1b - 1] = "Magis Works",
+[3][0x1c - 1] = "Zettacom",
+[3][0x1d - 1] = "Cogency Semiconductor",
+[3][0x1e - 1] = "Chipcon AS",
+[3][0x1f - 1] = "Aspex Technology",
+[3][0x20 - 1] = "F5 Networks",
+[3][0x21 - 1] = "Programmable Silicon Solutions",
+[3][0x22 - 1] = "ChipWrights",
+[3][0x23 - 1] = "Acorn Networks",
+[3][0x24 - 1] = "Quicklogic",
+[3][0x25 - 1] = "Kingmax Semiconductor",
+[3][0x26 - 1] = "BOPS",
+[3][0x27 - 1] = "Flasys",
+[3][0x28 - 1] = "BitBlitz Communications",
+[3][0x29 - 1] = "eMemory Technology",
+[3][0x2a - 1] = "Procket Networks",
+[3][0x2b - 1] = "Purple Ray",
+[3][0x2c - 1] = "Trebia Networks",
+[3][0x2d - 1] = "Delta Electronics",
+[3][0x2e - 1] = "Onex Communications",
+[3][0x2f - 1] = "Ample Communications",
+[3][0x30 - 1] = "Memory Experts Intl",
+[3][0x31 - 1] = "Astute Networks",
+[3][0x32 - 1] = "Azanda Network Devices",
+[3][0x33 - 1] = "Dibcom",
+[3][0x34 - 1] = "Tekmos",
+[3][0x35 - 1] = "API NetWorks",
+[3][0x36 - 1] = "Bay Microsystems",
+[3][0x37 - 1] = "Firecron Ltd",
+[3][0x38 - 1] = "Resonext Communications",
+[3][0x39 - 1] = "Tachys Technologies",
+[3][0x3a - 1] = "Equator Technology",
+[3][0x3b - 1] = "Concept Computer",
+[3][0x3c - 1] = "SILCOM",
+[3][0x3d - 1] = "3Dlabs",
+[3][0x3e - 1] = "c’t Magazine",
+[3][0x3f - 1] = "Sanera Systems",
+[3][0x40 - 1] = "Silicon Packets",
+[3][0x41 - 1] = "Viasystems Group",
+[3][0x42 - 1] = "Simtek",
+[3][0x43 - 1] = "Semicon Devices Singapore",
+[3][0x44 - 1] = "Satron Handelsges",
+[3][0x45 - 1] = "Improv Systems",
+[3][0x46 - 1] = "INDUSYS GmbH",
+[3][0x47 - 1] = "Corrent",
+[3][0x48 - 1] = "Infrant Technologies",
+[3][0x49 - 1] = "Ritek Corp",
+[3][0x4a - 1] = "empowerTel Networks",
+[3][0x4b - 1] = "Hypertec",
+[3][0x4c - 1] = "Cavium Networks",
+[3][0x4d - 1] = "PLX Technology",
+[3][0x4e - 1] = "Massana Design",
+[3][0x4f - 1] = "Intrinsity",
+[3][0x50 - 1] = "Valence Semiconductor",
+[3][0x51 - 1] = "Terawave Communications",
+[3][0x52 - 1] = "IceFyre Semiconductor",
+[3][0x53 - 1] = "Primarion",
+[3][0x54 - 1] = "Picochip Designs Ltd",
+[3][0x55 - 1] = "Silverback Systems",
+[3][0x56 - 1] = "Jade Star Technologies",
+[3][0x57 - 1] = "Pijnenburg Securealink",
+[3][0x58 - 1] = "takeMS - Ultron AG",
+[3][0x59 - 1] = "Cambridge Silicon Radio",
+[3][0x5a - 1] = "Swissbit",
+[3][0x5b - 1] = "Nazomi Communications",
+[3][0x5c - 1] = "eWave System",
+[3][0x5d - 1] = "Rockwell Collins",
+[3][0x5e - 1] = "Picocel Co. Ltd. (Paion)",
+[3][0x5f - 1] = "Alphamosaic Ltd",
+[3][0x60 - 1] = "Sandburst",
+[3][0x61 - 1] = "SiCon Video",
+[3][0x62 - 1] = "NanoAmp Solutions",
+[3][0x63 - 1] = "Ericsson Technology",
+[3][0x64 - 1] = "PrairieComm",
+[3][0x65 - 1] = "Mitac International",
+[3][0x66 - 1] = "Layer N Networks",
+[3][0x67 - 1] = "MtekVision (Atsana)",
+[3][0x68 - 1] = "Allegro Networks",
+[3][0x69 - 1] = "Marvell Semiconductors",
+[3][0x6a - 1] = "Netergy Microelectronic",
+[3][0x6b - 1] = "NVIDIA",
+[3][0x6c - 1] = "Internet Machines",
+[3][0x6d - 1] = "Memorysolution GmbH",
+[3][0x6e - 1] = "Litchfield Communication",
+[3][0x6f - 1] = "Accton Technology",
+[3][0x70 - 1] = "Teradiant Networks",
+[3][0x71 - 1] = "Scaleo Chip",
+[3][0x72 - 1] = "Cortina Systems",
+[3][0x73 - 1] = "RAM Components",
+[3][0x74 - 1] = "Raqia Networks",
+[3][0x75 - 1] = "ClearSpeed",
+[3][0x76 - 1] = "Matsushita Battery",
+[3][0x77 - 1] = "Xelerated",
+[3][0x78 - 1] = "SimpleTech",
+[3][0x79 - 1] = "Utron Technology",
+[3][0x7a - 1] = "Astec International",
+[3][0x7b - 1] = "AVM gmbH",
+[3][0x7c - 1] = "Redux Communications",
+[3][0x7d - 1] = "Dot Hill Systems",
+[3][0x7e - 1] = "TeraChip",
+[4][0x01 - 1] = "T-RAM Incorporated",
+[4][0x02 - 1] = "Innovics Wireless",
+[4][0x03 - 1] = "Teknovus",
+[4][0x04 - 1] = "KeyEye Communications",
+[4][0x05 - 1] = "Runcom Technologies",
+[4][0x06 - 1] = "RedSwitch",
+[4][0x07 - 1] = "Dotcast",
+[4][0x08 - 1] = "Silicon Mountain Memory",
+[4][0x09 - 1] = "Signia Technologies",
+[4][0x0a - 1] = "Pixim",
+[4][0x0b - 1] = "Galazar Networks",
+[4][0x0c - 1] = "White Electronic Designs",
+[4][0x0d - 1] = "Patriot Scientific",
+[4][0x0e - 1] = "Neoaxiom Corporation",
+[4][0x0f - 1] = "3Y Power Technology",
+[4][0x10 - 1] = "Scaleo Chip",
+[4][0x11 - 1] = "Potentia Power Systems",
+[4][0x12 - 1] = "C-guys Incorporated",
+[4][0x13 - 1] = "Digital Communications Technology",
+[4][0x14 - 1] = "Silicon-Based Technology",
+[4][0x15 - 1] = "Fulcrum Microsystems",
+[4][0x16 - 1] = "Positivo Informatica Ltd",
+[4][0x17 - 1] = "XIOtech Corporation",
+[4][0x18 - 1] = "PortalPlayer",
+[4][0x19 - 1] = "Zhiying Software",
+[4][0x1a - 1] = "ParkerVision, Inc.",
+[4][0x1b - 1] = "Phonex Broadband",
+[4][0x1c - 1] = "Skyworks Solutions",
+[4][0x1d - 1] = "Entropic Communications",
+[4][0x1e - 1] = "I’M Intelligent Memory Ltd.",
+[4][0x1f - 1] = "Zensys A/S",
+[4][0x20 - 1] = "Legend Silicon Corp.",
+[4][0x21 - 1] = "Sci-worx GmbH",
+[4][0x22 - 1] = "SMSC (Standard Microsystems)",
+[4][0x23 - 1] = "Renesas Electronics",
+[4][0x24 - 1] = "Raza Microelectronics",
+[4][0x25 - 1] = "Phyworks",
+[4][0x26 - 1] = "MediaTek",
+[4][0x27 - 1] = "Non-cents Productions",
+[4][0x28 - 1] = "US Modular",
+[4][0x29 - 1] = "Wintegra Ltd.",
+[4][0x2a - 1] = "Mathstar",
+[4][0x2b - 1] = "StarCore",
+[4][0x2c - 1] = "Oplus Technologies",
+[4][0x2d - 1] = "Mindspeed",
+[4][0x2e - 1] = "Just Young Computer",
+[4][0x2f - 1] = "Radia Communications",
+[4][0x30 - 1] = "OCZ",
+[4][0x31 - 1] = "Emuzed",
+[4][0x32 - 1] = "LOGIC Devices",
+[4][0x33 - 1] = "Inphi Corporation",
+[4][0x34 - 1] = "Quake Technologies",
+[4][0x35 - 1] = "Vixel",
+[4][0x36 - 1] = "SolusTek",
+[4][0x37 - 1] = "Kongsberg Maritime",
+[4][0x38 - 1] = "Faraday Technology",
+[4][0x39 - 1] = "Altium Ltd.",
+[4][0x3a - 1] = "Insyte",
+[4][0x3b - 1] = "ARM Ltd.",
+[4][0x3c - 1] = "DigiVision",
+[4][0x3d - 1] = "Vativ Technologies",
+[4][0x3e - 1] = "Endicott Interconnect Technologies",
+[4][0x3f - 1] = "Pericom",
+[4][0x40 - 1] = "Bandspeed",
+[4][0x41 - 1] = "LeWiz Communications",
+[4][0x42 - 1] = "CPU Technology",
+[4][0x43 - 1] = "Ramaxel Technology",
+[4][0x44 - 1] = "DSP Group",
+[4][0x45 - 1] = "Axis Communications",
+[4][0x46 - 1] = "Legacy Electronics",
+[4][0x47 - 1] = "Chrontel",
+[4][0x48 - 1] = "Powerchip Semiconductor",
+[4][0x49 - 1] = "MobilEye Technologies",
+[4][0x4a - 1] = "Excel Semiconductor",
+[4][0x4b - 1] = "A-DATA Technology",
+[4][0x4c - 1] = "VirtualDigm",
+[4][0x4d - 1] = "G Skill Intl",
+[4][0x4e - 1] = "Quanta Computer",
+[4][0x4f - 1] = "Yield Microelectronics",
+[4][0x50 - 1] = "Afa Technologies",
+[4][0x51 - 1] = "KINGBOX Technology Co. Ltd.",
+[4][0x52 - 1] = "Ceva",
+[4][0x53 - 1] = "iStor Networks",
+[4][0x54 - 1] = "Advance Modules",
+[4][0x55 - 1] = "Microsoft",
+[4][0x56 - 1] = "Open-Silicon",
+[4][0x57 - 1] = "Goal Semiconductor",
+[4][0x58 - 1] = "ARC International",
+[4][0x59 - 1] = "Simmtec",
+[4][0x5a - 1] = "Metanoia",
+[4][0x5b - 1] = "Key Stream",
+[4][0x5c - 1] = "Lowrance Electronics",
+[4][0x5d - 1] = "Adimos",
+[4][0x5e - 1] = "SiGe Semiconductor",
+[4][0x5f - 1] = "Fodus Communications",
+[4][0x60 - 1] = "Credence Systems Corp.",
+[4][0x61 - 1] = "Genesis Microchip Inc.",
+[4][0x62 - 1] = "Vihana, Inc.",
+[4][0x63 - 1] = "WIS Technologies",
+[4][0x64 - 1] = "GateChange Technologies",
+[4][0x65 - 1] = "High Density Devices AS",
+[4][0x66 - 1] = "Synopsys",
+[4][0x67 - 1] = "Gigaram",
+[4][0x68 - 1] = "Enigma Semiconductor Inc.",
+[4][0x69 - 1] = "Century Micro Inc.",
+[4][0x6a - 1] = "Icera Semiconductor",
+[4][0x6b - 1] = "Mediaworks Integrated Systems",
+[4][0x6c - 1] = "O’Neil Product Development",
+[4][0x6d - 1] = "Supreme Top Technology Ltd.",
+[4][0x6e - 1] = "MicroDisplay Corporation",
+[4][0x6f - 1] = "Team Group Inc.",
+[4][0x70 - 1] = "Sinett Corporation",
+[4][0x71 - 1] = "Toshiba Corporation",
+[4][0x72 - 1] = "Tensilica",
+[4][0x73 - 1] = "SiRF Technology",
+[4][0x74 - 1] = "Bacoc Inc.",
+[4][0x75 - 1] = "SMaL Camera Technologies",
+[4][0x76 - 1] = "Thomson SC",
+[4][0x77 - 1] = "Airgo Networks",
+[4][0x78 - 1] = "Wisair Ltd.",
+[4][0x79 - 1] = "SigmaTel",
+[4][0x7a - 1] = "Arkados",
+[4][0x7b - 1] = "Compete IT gmbH Co. KG",
+[4][0x7c - 1] = "Eudar Technology Inc.",
+[4][0x7d - 1] = "Focus Enhancements",
+[4][0x7e - 1] = "Xyratex",
+[5][0x01 - 1] = "Specular Networks",
+[5][0x02 - 1] = "Patriot Memory (PDP Systems)",
+[5][0x03 - 1] = "U-Chip Technology Corp.",
+[5][0x04 - 1] = "Silicon Optix",
+[5][0x05 - 1] = "Greenfield Networks",
+[5][0x06 - 1] = "CompuRAM GmbH",
+[5][0x07 - 1] = "Stargen, Inc.",
+[5][0x08 - 1] = "NetCell Corporation",
+[5][0x09 - 1] = "Excalibrus Technologies Ltd",
+[5][0x0a - 1] = "SCM Microsystems",
+[5][0x0b - 1] = "Xsigo Systems, Inc.",
+[5][0x0c - 1] = "CHIPS & Systems Inc",
+[5][0x0d - 1] = "Tier 1 Multichip Solutions",
+[5][0x0e - 1] = "CWRL Labs",
+[5][0x0f - 1] = "Teradici",
+[5][0x10 - 1] = "Gigaram, Inc.",
+[5][0x11 - 1] = "g2 Microsystems",
+[5][0x12 - 1] = "PowerFlash Semiconductor",
+[5][0x13 - 1] = "P.A. Semi, Inc.",
+[5][0x14 - 1] = "NovaTech Solutions, S.A.",
+[5][0x15 - 1] = "c2 Microsystems, Inc.",
+[5][0x16 - 1] = "Level5 Networks",
+[5][0x17 - 1] = "COS Memory AG",
+[5][0x18 - 1] = "Innovasic Semiconductor",
+[5][0x19 - 1] = "02IC Co. Ltd",
+[5][0x1a - 1] = "Tabula, Inc.",
+[5][0x1b - 1] = "Crucial Technology",
+[5][0x1c - 1] = "Chelsio Communications",
+[5][0x1d - 1] = "Solarflare Communications",
+[5][0x1e - 1] = "Xambala Inc.",
+[5][0x1f - 1] = "EADS Astrium",
+[5][0x20 - 1] = "Terra Semiconductor, Inc.",
+[5][0x21 - 1] = "Imaging Works, Inc.",
+[5][0x22 - 1] = "Astute Networks, Inc.",
+[5][0x23 - 1] = "Tzero",
+[5][0x24 - 1] = "Emulex",
+[5][0x25 - 1] = "Power-One",
+[5][0x26 - 1] = "Pulse~LINK Inc.",
+[5][0x27 - 1] = "Hon Hai Precision Industry",
+[5][0x28 - 1] = "White Rock Networks Inc.",
+[5][0x29 - 1] = "Telegent Systems USA, Inc.",
+[5][0x2a - 1] = "Atrua Technologies, Inc.",
+[5][0x2b - 1] = "Acbel Polytech Inc.",
+[5][0x2c - 1] = "eRide Inc.",
+[5][0x2d - 1] = "ULi Electronics Inc.",
+[5][0x2e - 1] = "Magnum Semiconductor Inc.",
+[5][0x2f - 1] = "neoOne Technology, Inc.",
+[5][0x30 - 1] = "Connex Technology, Inc.",
+[5][0x31 - 1] = "Stream Processors, Inc.",
+[5][0x32 - 1] = "Focus Enhancements",
+[5][0x33 - 1] = "Telecis Wireless, Inc.",
+[5][0x34 - 1] = "uNav Microelectronics",
+[5][0x35 - 1] = "Tarari, Inc.",
+[5][0x36 - 1] = "Ambric, Inc.",
+[5][0x37 - 1] = "Newport Media, Inc.",
+[5][0x38 - 1] = "VMTS",
+[5][0x39 - 1] = "Enuclia Semiconductor, Inc.",
+[5][0x3a - 1] = "Virtium Technology Inc.",
+[5][0x3b - 1] = "Solid State System Co., Ltd.",
+[5][0x3c - 1] = "Kian Tech LLC",
+[5][0x3d - 1] = "Artimi",
+[5][0x3e - 1] = "Power Quotient International",
+[5][0x3f - 1] = "Avago Technologies",
+[5][0x40 - 1] = "ADTechnology",
+[5][0x41 - 1] = "Sigma Designs",
+[5][0x42 - 1] = "SiCortex, Inc.",
+[5][0x43 - 1] = "Ventura Technology Group",
+[5][0x44 - 1] = "eASIC",
+[5][0x45 - 1] = "M.H.S. SAS",
+[5][0x46 - 1] = "Micro Star International",
+[5][0x47 - 1] = "Rapport Inc.",
+[5][0x48 - 1] = "Makway International",
+[5][0x49 - 1] = "Broad Reach Engineering Co.",
+[5][0x4a - 1] = "Semiconductor Mfg Intl Corp",
+[5][0x4b - 1] = "SiConnect",
+[5][0x4c - 1] = "FCI USA Inc.",
+[5][0x4d - 1] = "Validity Sensors",
+[5][0x4e - 1] = "Coney Technology Co. Ltd.",
+[5][0x4f - 1] = "Spans Logic",
+[5][0x50 - 1] = "Neterion Inc.",
+[5][0x51 - 1] = "Qimonda",
+[5][0x52 - 1] = "New Japan Radio Co. Ltd.",
+[5][0x53 - 1] = "Velogix",
+[5][0x54 - 1] = "Montalvo Systems",
+[5][0x55 - 1] = "iVivity Inc.",
+[5][0x56 - 1] = "Walton Chaintech",
+[5][0x57 - 1] = "AENEON",
+[5][0x58 - 1] = "Lorom Industrial Co. Ltd.",
+[5][0x59 - 1] = "Radiospire Networks",
+[5][0x5a - 1] = "Sensio Technologies, Inc.",
+[5][0x5b - 1] = "Nethra Imaging",
+[5][0x5c - 1] = "Hexon Technology Pte Ltd",
+[5][0x5d - 1] = "CompuStocx (CSX)",
+[5][0x5e - 1] = "Methode Electronics, Inc.",
+[5][0x5f - 1] = "Connect One Ltd.",
+[5][0x60 - 1] = "Opulan Technologies",
+[5][0x61 - 1] = "Septentrio NV",
+[5][0x62 - 1] = "Goldenmars Technology Inc.",
+[5][0x63 - 1] = "Kreton Corporation",
+[5][0x64 - 1] = "Cochlear Ltd.",
+[5][0x65 - 1] = "Altair Semiconductor",
+[5][0x66 - 1] = "NetEffect, Inc.",
+[5][0x67 - 1] = "Spansion, Inc.",
+[5][0x68 - 1] = "Taiwan Semiconductor Mfg",
+[5][0x69 - 1] = "Emphany Systems Inc.",
+[5][0x6a - 1] = "ApaceWave Technologies",
+[5][0x6b - 1] = "Mobilygen Corporation",
+[5][0x6c - 1] = "Tego",
+[5][0x6d - 1] = "Cswitch Corporation",
+[5][0x6e - 1] = "Haier (Beijing) IC Design Co.",
+[5][0x6f - 1] = "MetaRAM",
+[5][0x70 - 1] = "Axel Electronics Co. Ltd.",
+[5][0x71 - 1] = "Tilera Corporation",
+[5][0x72 - 1] = "Aquantia",
+[5][0x73 - 1] = "Vivace Semiconductor",
+[5][0x74 - 1] = "Redpine Signals",
+[5][0x75 - 1] = "Octalica",
+[5][0x76 - 1] = "InterDigital Communications",
+[5][0x77 - 1] = "Avant Technology",
+[5][0x78 - 1] = "Asrock, Inc.",
+[5][0x79 - 1] = "Availink",
+[5][0x7a - 1] = "Quartics, Inc.",
+[5][0x7b - 1] = "Element CXI",
+[5][0x7c - 1] = "Innovaciones Microelectronicas",
+[5][0x7d - 1] = "VeriSilicon Microelectronics",
+[5][0x7e - 1] = "W5 Networks",
+[6][0x01 - 1] = "MOVEKING",
+[6][0x02 - 1] = "Mavrix Technology, Inc.",
+[6][0x03 - 1] = "CellGuide Ltd.",
+[6][0x04 - 1] = "Faraday Technology",
+[6][0x05 - 1] = "Diablo Technologies, Inc.",
+[6][0x06 - 1] = "Jennic",
+[6][0x07 - 1] = "Octasic",
+[6][0x08 - 1] = "Molex Incorporated",
+[6][0x09 - 1] = "3Leaf Networks",
+[6][0x0a - 1] = "Bright Micron Technology",
+[6][0x0b - 1] = "Netxen",
+[6][0x0c - 1] = "NextWave Broadband Inc.",
+[6][0x0d - 1] = "DisplayLink",
+[6][0x0e - 1] = "ZMOS Technology",
+[6][0x0f - 1] = "Tec-Hill",
+[6][0x10 - 1] = "Multigig, Inc.",
+[6][0x11 - 1] = "Amimon",
+[6][0x12 - 1] = "Euphonic Technologies, Inc.",
+[6][0x13 - 1] = "BRN Phoenix",
+[6][0x14 - 1] = "InSilica",
+[6][0x15 - 1] = "Ember Corporation",
+[6][0x16 - 1] = "Avexir Technologies Corporation",
+[6][0x17 - 1] = "Echelon Corporation",
+[6][0x18 - 1] = "Edgewater Computer Systems",
+[6][0x19 - 1] = "XMOS Semiconductor Ltd.",
+[6][0x1a - 1] = "GENUSION, Inc.",
+[6][0x1b - 1] = "Memory Corp NV",
+[6][0x1c - 1] = "SiliconBlue Technologies",
+[6][0x1d - 1] = "Rambus Inc.",
+[6][0x1e - 1] = "Andes Technology Corporation",
+[6][0x1f - 1] = "Coronis Systems",
+[6][0x20 - 1] = "Achronix Semiconductor",
+[6][0x21 - 1] = "Siano Mobile Silicon Ltd.",
+[6][0x22 - 1] = "Semtech Corporation",
+[6][0x23 - 1] = "Pixelworks Inc.",
+[6][0x24 - 1] = "Gaisler Research AB",
+[6][0x25 - 1] = "Teranetics",
+[6][0x26 - 1] = "Toppan Printing Co. Ltd.",
+[6][0x27 - 1] = "Kingxcon",
+[6][0x28 - 1] = "Silicon Integrated Systems",
+[6][0x29 - 1] = "I-O Data Device, Inc.",
+[6][0x2a - 1] = "NDS Americas Inc.",
+[6][0x2b - 1] = "Solomon Systech Limited",
+[6][0x2c - 1] = "On Demand Microelectronics",
+[6][0x2d - 1] = "Amicus Wireless Inc.",
+[6][0x2e - 1] = "SMARDTV SNC",
+[6][0x2f - 1] = "Comsys Communication Ltd.",
+[6][0x30 - 1] = "Movidia Ltd.",
+[6][0x31 - 1] = "Javad GNSS, Inc.",
+[6][0x32 - 1] = "Montage Technology Group",
+[6][0x33 - 1] = "Trident Microsystems",
+[6][0x34 - 1] = "Super Talent",
+[6][0x35 - 1] = "Optichron, Inc.",
+[6][0x36 - 1] = "Future Waves UK Ltd.",
+[6][0x37 - 1] = "SiBEAM, Inc.",
+[6][0x38 - 1] = "Inicore,Inc.",
+[6][0x39 - 1] = "Virident Systems",
+[6][0x3a - 1] = "M2000, Inc.",
+[6][0x3b - 1] = "ZeroG Wireless, Inc.",
+[6][0x3c - 1] = "Gingle Technology Co. Ltd.",
+[6][0x3d - 1] = "Space Micro Inc.",
+[6][0x3e - 1] = "Wilocity",
+[6][0x3f - 1] = "Novafora, Inc.",
+[6][0x40 - 1] = "iKoa Corporation",
+[6][0x41 - 1] = "ASint Technology",
+[6][0x42 - 1] = "Ramtron",
+[6][0x43 - 1] = "Plato Networks Inc.",
+[6][0x44 - 1] = "IPtronics AS",
+[6][0x45 - 1] = "Infinite-Memories",
+[6][0x46 - 1] = "Parade Technologies Inc.",
+[6][0x47 - 1] = "Dune Networks",
+[6][0x48 - 1] = "GigaDevice Semiconductor",
+[6][0x49 - 1] = "Modu Ltd.",
+[6][0x4a - 1] = "CEITEC",
+[6][0x4b - 1] = "Northrop Grumman",
+[6][0x4c - 1] = "XRONET Corporation",
+[6][0x4d - 1] = "Sicon Semiconductor AB",
+[6][0x4e - 1] = "Atla Electronics Co. Ltd.",
+[6][0x4f - 1] = "TOPRAM Technology",
+[6][0x50 - 1] = "Silego Technology Inc.",
+[6][0x51 - 1] = "Kinglife",
+[6][0x52 - 1] = "Ability Industries Ltd.",
+[6][0x53 - 1] = "Silicon Power Computer &",
+[6][0x54 - 1] = "Augusta Technology, Inc.",
+[6][0x55 - 1] = "Nantronics Semiconductors",
+[6][0x56 - 1] = "Hilscher Gesellschaft",
+[6][0x57 - 1] = "Quixant Ltd.",
+[6][0x58 - 1] = "Percello Ltd.",
+[6][0x59 - 1] = "NextIO Inc.",
+[6][0x5a - 1] = "Scanimetrics Inc.",
+[6][0x5b - 1] = "FS-Semi Company Ltd.",
+[6][0x5c - 1] = "Infinera Corporation",
+[6][0x5d - 1] = "SandForce Inc.",
+[6][0x5e - 1] = "Lexar Media",
+[6][0x5f - 1] = "Teradyne Inc.",
+[6][0x60 - 1] = "Memory Exchange Corp.",
+[6][0x61 - 1] = "Suzhou Smartek Electronics",
+[6][0x62 - 1] = "Avantium Corporation",
+[6][0x63 - 1] = "ATP Electronics Inc.",
+[6][0x64 - 1] = "Valens Semiconductor Ltd",
+[6][0x65 - 1] = "Agate Logic, Inc.",
+[6][0x66 - 1] = "Netronome",
+[6][0x67 - 1] = "Zenverge, Inc.",
+[6][0x68 - 1] = "N-trig Ltd",
+[6][0x69 - 1] = "SanMax Technologies Inc.",
+[6][0x6a - 1] = "Contour Semiconductor Inc.",
+[6][0x6b - 1] = "TwinMOS",
+[6][0x6c - 1] = "Silicon Systems, Inc.",
+[6][0x6d - 1] = "V-Color Technology Inc.",
+[6][0x6e - 1] = "Certicom Corporation",
+[6][0x6f - 1] = "JSC ICC Milandr",
+[6][0x70 - 1] = "PhotoFast Global Inc.",
+[6][0x71 - 1] = "InnoDisk Corporation",
+[6][0x72 - 1] = "Muscle Power",
+[6][0x73 - 1] = "Energy Micro",
+[6][0x74 - 1] = "Innofidei",
+[6][0x75 - 1] = "CopperGate Communications",
+[6][0x76 - 1] = "Holtek Semiconductor Inc.",
+[6][0x77 - 1] = "Myson Century, Inc.",
+[6][0x78 - 1] = "FIDELIX",
+[6][0x79 - 1] = "Red Digital Cinema",
+[6][0x7a - 1] = "Densbits Technology",
+[6][0x7b - 1] = "Zempro",
+[6][0x7c - 1] = "MoSys",
+[6][0x7d - 1] = "Provigent",
+[6][0x7e - 1] = "Triad Semiconductor, Inc.",
+[7][0x01 - 1] = "Siklu Communication Ltd.",
+[7][0x02 - 1] = "A Force Manufacturing Ltd.",
+[7][0x03 - 1] = "Strontium",
+[7][0x04 - 1] = "Abilis Systems",
+[7][0x05 - 1] = "Siglead, Inc.",
+[7][0x06 - 1] = "Ubicom, Inc.",
+[7][0x07 - 1] = "Unifosa Corporation",
+[7][0x08 - 1] = "Stretch, Inc.",
+[7][0x09 - 1] = "Lantiq Deutschland GmbH",
+[7][0x0a - 1] = "Visipro.",
+[7][0x0b - 1] = "EKMemory",
+[7][0x0c - 1] = "Microelectronics Institute ZTE",
+[7][0x0d - 1] = "Cognovo Ltd.",
+[7][0x0e - 1] = "Carry Technology Co. Ltd.",
+[7][0x0f - 1] = "Nokia",
+[7][0x10 - 1] = "King Tiger Technology",
+[7][0x11 - 1] = "Sierra Wireless",
+[7][0x12 - 1] = "HT Micron",
+[7][0x13 - 1] = "Albatron Technology Co. Ltd.",
+[7][0x14 - 1] = "Leica Geosystems AG",
+[7][0x15 - 1] = "BroadLight",
+[7][0x16 - 1] = "AEXEA",
+[7][0x17 - 1] = "ClariPhy Communications, Inc.",
+[7][0x18 - 1] = "Green Plug",
+[7][0x19 - 1] = "Design Art Networks",
+[7][0x1a - 1] = "Mach Xtreme Technology Ltd.",
+[7][0x1b - 1] = "ATO Solutions Co. Ltd.",
+[7][0x1c - 1] = "Ramsta",
+[7][0x1d - 1] = "Greenliant Systems, Ltd.",
+[7][0x1e - 1] = "Teikon",
+[7][0x1f - 1] = "Antec Hadron",
+[7][0x20 - 1] = "NavCom Technology, Inc.",
+[7][0x21 - 1] = "Shanghai Fudan Microelectronics",
+[7][0x22 - 1] = "Calxeda, Inc.",
+[7][0x23 - 1] = "JSC EDC Electronics",
+[7][0x24 - 1] = "Kandit Technology Co. Ltd.",
+[7][0x25 - 1] = "Ramos Technology",
+[7][0x26 - 1] = "Goldenmars Technology",
+[7][0x27 - 1] = "XeL Technology Inc.",
+[7][0x28 - 1] = "Newzone Corporation",
+[7][0x29 - 1] = "ShenZhen MercyPower Tech",
+[7][0x2a - 1] = "Nanjing Yihuo Technology",
+[7][0x2b - 1] = "Nethra Imaging Inc.",
+[7][0x2c - 1] = "SiTel Semiconductor BV",
+[7][0x2d - 1] = "SolidGear Corporation",
+[7][0x2e - 1] = "Topower Computer Ind Co Ltd.",
+[7][0x2f - 1] = "Wilocity",
+[7][0x30 - 1] = "Profichip GmbH",
+[7][0x31 - 1] = "Gerad Technologies",
+[7][0x32 - 1] = "Ritek Corporation",
+[7][0x33 - 1] = "Gomos Technology Limited",
+[7][0x34 - 1] = "Memoright Corporation",
+[7][0x35 - 1] = "D-Broad, Inc.",
+[7][0x36 - 1] = "HiSilicon Technologies",
+[7][0x37 - 1] = "Syndiant Inc..",
+[7][0x38 - 1] = "Enverv Inc.",
+[7][0x39 - 1] = "Cognex",
+[7][0x3a - 1] = "Xinnova Technology Inc.",
+[7][0x3b - 1] = "Ultron AG",
+[7][0x3c - 1] = "Concord Idea Corporation",
+[7][0x3d - 1] = "AIM Corporation",
+[7][0x3e - 1] = "Lifetime Memory Products",
+[7][0x3f - 1] = "Ramsway",
+[7][0x40 - 1] = "Recore Systems B.V.",
+[7][0x41 - 1] = "Haotian Jinshibo Science Tech",
+[7][0x42 - 1] = "Being Advanced Memory",
+[7][0x43 - 1] = "Adesto Technologies",
+[7][0x44 - 1] = "Giantec Semiconductor, Inc.",
+[7][0x45 - 1] = "HMD Electronics AG",
+[7][0x46 - 1] = "Gloway International (HK)",
+[7][0x47 - 1] = "Kingcore",
+[7][0x48 - 1] = "Anucell Technology Holding",
+[7][0x49 - 1] = "Accord Software & Systems Pvt. Ltd.",
+[7][0x4a - 1] = "Active-Semi Inc.",
+[7][0x4b - 1] = "Denso Corporation",
+[7][0x4c - 1] = "TLSI Inc.",
+[7][0x4d - 1] = "Qidan",
+[7][0x4e - 1] = "Mustang",
+[7][0x4f - 1] = "Orca Systems",
+[7][0x50 - 1] = "Passif Semiconductor",
+[7][0x51 - 1] = "GigaDevice Semiconductor (Beijing)",
+[7][0x52 - 1] = "Memphis Electronic",
+[7][0x53 - 1] = "Beckhoff Automation GmbH",
+[7][0x54 - 1] = "Harmony Semiconductor Corp",
+[7][0x55 - 1] = "Air Computers SRL",
+[7][0x56 - 1] = "TMT Memory",
+[7][0x57 - 1] = "Eorex Corporation",
+[7][0x58 - 1] = "Xingtera",
+[7][0x59 - 1] = "Netsol",
+[7][0x5a - 1] = "Bestdon Technology Co. Ltd.",
+[7][0x5b - 1] = "Baysand Inc.",
+[7][0x5c - 1] = "Uroad Technology Co. Ltd.",
+[7][0x5d - 1] = "Wilk Elektronik S.A.",
+[7][0x5e - 1] = "AAI",
+[7][0x5f - 1] = "Harman",
+[7][0x60 - 1] = "Berg Microelectronics Inc.",
+[7][0x61 - 1] = "ASSIA, Inc.",
+[7][0x62 - 1] = "Visiontek Products LLC",
+[7][0x63 - 1] = "OCMEMORY",
+[7][0x64 - 1] = "Welink Solution Inc.",
+[7][0x65 - 1] = "Shark Gaming",
+[7][0x66 - 1] = "Avalanche Technology",
+[7][0x67 - 1] = "R&D Center ELVEES OJSC",
+[7][0x68 - 1] = "KingboMars Technology Co. Ltd.",
+[7][0x69 - 1] = "High Bridge Solutions Industria",
+[7][0x6a - 1] = "Transcend Technology Co. Ltd.",
+[7][0x6b - 1] = "Everspin Technologies",
+[7][0x6c - 1] = "Hon-Hai Precision",
+[7][0x6d - 1] = "Smart Storage Systems",
+[7][0x6e - 1] = "Toumaz Group",
+[7][0x6f - 1] = "Zentel Electronics Corporation",
+[7][0x70 - 1] = "Panram International Corporation",
+[7][0x71 - 1] = "Silicon Space Technology",
+[7][0x72 - 1] = "LITE-ON IT Corporation",
+[7][0x73 - 1] = "Inuitive",
+[7][0x74 - 1] = "HMicro",
+[7][0x75 - 1] = "BittWare, Inc.",
+[7][0x76 - 1] = "GLOBALFOUNDRIES",
+[7][0x77 - 1] = "ACPI Digital Co. Ltd.",
+[7][0x78 - 1] = "Annapurna Labs",
+[7][0x79 - 1] = "AcSiP Technology Corporation",
+[7][0x7a - 1] = "Idea! Electronic Systems",
+[7][0x7b - 1] = "Gowe Technology Co. Ltd.",
+[7][0x7c - 1] = "Hermes Testing Solutions, Inc.",
+[7][0x7d - 1] = "Positivo BGH",
+[7][0x7e - 1] = "Intelligence Silicon Technology",
+[8][0x01 - 1] = "3D PLUS",
+[8][0x02 - 1] = "Diehl Aerospace",
+[8][0x03 - 1] = "Fairchild",
+[8][0x04 - 1] = "Mercury Systems",
+[8][0x05 - 1] = "Sonics, Inc.",
+[8][0x06 - 1] = "GE Intelligent Platforms GmbH & Co.",
+[8][0x07 - 1] = "Shenzhen Jinge Information Co. Ltd.",
+[8][0x08 - 1] = "SCWW",
+[8][0x09 - 1] = "Silicon Motion Inc.",
+[8][0x0a - 1] = "Anurag",
+[8][0x0b - 1] = "King Kong",
+[8][0x0c - 1] = "FROM30 Co. Ltd.",
+[8][0x0d - 1] = "Gowin Semiconductor Corp",
+[8][0x0e - 1] = "Fremont Micro Devices Ltd.",
+[8][0x0f - 1] = "Ericsson Modems",
+[8][0x10 - 1] = "Exelis",
+[8][0x11 - 1] = "Satixfy Ltd.",
+[8][0x12 - 1] = "Galaxy Microsystems Ltd.",
+[8][0x13 - 1] = "Gloway International Co. Ltd.",
+[8][0x14 - 1] = "Lab",
+[8][0x15 - 1] = "Smart Energy Instruments",
+[8][0x16 - 1] = "Approved Memory Corporation",
+[8][0x17 - 1] = "Axell Corporation",
+[8][0x18 - 1] = "Essencore Limited",
+[8][0x19 - 1] = "Phytium",
+[8][0x1a - 1] = "Xi’an SinoChip Semiconductor",
+[8][0x1b - 1] = "Ambiq Micro",
+[8][0x1c - 1] = "eveRAM Technology, Inc.",
+[8][0x1d - 1] = "Infomax",
+[8][0x1e - 1] = "Butterfly Network, Inc.",
+[8][0x1f - 1] = "Shenzhen City Gcai Electronics",
+[8][0x20 - 1] = "Stack Devices Corporation",
+[8][0x21 - 1] = "ADK Media Group",
+[8][0x22 - 1] = "TSP Global Co., Ltd.",
+[8][0x23 - 1] = "HighX",
+[8][0x24 - 1] = "Shenzhen Elicks Technology",
+[8][0x25 - 1] = "ISSI/Chingis",
+[8][0x26 - 1] = "Google, Inc.",
+[8][0x27 - 1] = "Dasima International Development",
+[8][0x28 - 1] = "Leahkinn Technology Limited",
+[8][0x29 - 1] = "HIMA Paul Hildebrandt GmbH Co KG",
+[8][0x2a - 1] = "Keysight Technologies",
+[8][0x2b - 1] = "Techcomp International (Fastable)",
+[8][0x2c - 1] = "Ancore Technology Corporation",
+[8][0x2d - 1] = "Nuvoton",
+[8][0x2e - 1] = "Korea Uhbele International Group Ltd.",
+[8][0x2f - 1] = "Ikegami Tsushinki Co Ltd.",
+[8][0x30 - 1] = "RelChip, Inc.",
+[8][0x31 - 1] = "Baikal Electronics",
+[8][0x32 - 1] = "Nemostech Inc.",
+[8][0x33 - 1] = "Memorysolution GmbH",
+[8][0x34 - 1] = "Silicon Integrated Systems Corporation",
+[8][0x35 - 1] = "Xiede",
+[8][0x36 - 1] = "Multilaser Components",
+[8][0x37 - 1] = "Flash Chi",
+[8][0x38 - 1] = "Jone",
+[8][0x39 - 1] = "GCT Semiconductor Inc.",
+[8][0x3a - 1] = "Hong Kong Zetta Device Technology",
+[8][0x3b - 1] = "Unimemory Technology(s) Pte Ltd.",
+[8][0x3c - 1] = "Cuso",
+[8][0x3d - 1] = "Kuso",
+[8][0x3e - 1] = "Uniquify Inc.",
+[8][0x3f - 1] = "Skymedi Corporation",
+[8][0x40 - 1] = "Core Chance Co. Ltd.",
+[8][0x41 - 1] = "Tekism Co. Ltd.",
+[8][0x42 - 1] = "Seagate Technology PLC",
+[8][0x43 - 1] = "Hong Kong Gaia Group Co. Limited",
+[8][0x44 - 1] = "Gigacom Semiconductor LLC",
+[8][0x45 - 1] = "V2 Technologies",
+[8][0x46 - 1] = "TLi",
+[8][0x47 - 1] = "Neotion",
+[8][0x48 - 1] = "Lenovo",
+[8][0x49 - 1] = "Shenzhen Zhongteng Electronic Corp. Ltd.",
+[8][0x4a - 1] = "Compound Photonics",
+[8][0x4b - 1] = "in2H2 inc",
+[8][0x4c - 1] = "Shenzhen Pango Microsystems Co. Ltd",
+[8][0x4d - 1] = "Vasekey",
+[8][0x4e - 1] = "Cal-Comp Industria de Semicondutores",
+[8][0x4f - 1] = "Eyenix Co., Ltd.",
+[8][0x50 - 1] = "Heoriady",
+[8][0x51 - 1] = "Accelerated Memory Production Inc.",
+[8][0x52 - 1] = "INVECAS, Inc.",
+[8][0x53 - 1] = "AP Memory",
+[8][0x54 - 1] = "Douqi Technology",
+[8][0x55 - 1] = "Etron Technology, Inc.",
+[8][0x56 - 1] = "Indie Semiconductor",
+[8][0x57 - 1] = "Socionext Inc.",
+[8][0x58 - 1] = "HGST",
+[8][0x59 - 1] = "EVGA",
+[8][0x5a - 1] = "Audience Inc.",
+[8][0x5b - 1] = "EpicGear",
+[8][0x5c - 1] = "Vitesse Enterprise Co.",
+[8][0x5d - 1] = "Foxtronn International Corporation",
+[8][0x5e - 1] = "Bretelon Inc.",
+[8][0x5f - 1] = "Zbit Semiconductor, Inc.",
+[8][0x60 - 1] = "Eoplex Inc",
+[8][0x61 - 1] = "MaxLinear, Inc.",
+[8][0x62 - 1] = "ETA Devices",
+[8][0x63 - 1] = "LOKI",
+[8][0x64 - 1] = "IMS Semiconductor Co., Ltd",
+[8][0x65 - 1] = "Dosilicon Co., Ltd.",
+[8][0x66 - 1] = "Dolphin Integration",
+[8][0x67 - 1] = "Shenzhen Mic Electronics Technology",
+[8][0x68 - 1] = "Boya Microelectronics Inc.",
+[8][0x69 - 1] = "Geniachip (Roche)",
+[8][0x6a - 1] = "Axign",
+[8][0x6b - 1] = "Kingred Electronic Technology Ltd.",
+[8][0x6c - 1] = "Chao Yue Zhuo Computer Business Dept.",
+[8][0x6d - 1] = "Guangzhou Si Nuo Electronic Technology.",
+/* EOF */
diff --git a/src/helper/update_jep106.pl b/src/helper/update_jep106.pl
new file mode 100755 (executable)
index 0000000..caec066
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use File::Basename;
+
+if (@ARGV != 1) {
+       die "Usage: $0 <JEP106 PDF document>\n\n"
+       . "Convert the JEDEC document containing manufacturer identification codes\n"
+       . "to an array initializer suitable for incusion into jep106.c. The latest\n"
+       . "version of the document can be found here:\n"
+       . "http://www.jedec.org/standards-documents/results/jep106\n";
+};
+
+my $outfile = dirname($0) . "/jep106.inc";
+
+open(my $out, ">", $outfile) || die "Cannot open $outfile: $!\n";
+open(my $pdftotext, "pdftotext -layout $ARGV[0] - |") || die "Cannot fork: $!\n";
+
+print $out "/* Autogenerated with " . basename($0) . "*/\n";
+
+my $bank = -1;
+
+while (<$pdftotext>) {
+       if (/^[0-9]+[[:space:]]+(.*?)[[:space:]]+([01][[:space:]]+){8}([0-9A-F]{2})$/) {
+               if ($3 eq "01") {
+                       $bank++
+               }
+               my $id=sprintf("0x%02x",hex($3)&0x7f);
+               print $out "[$bank][$id - 1] = \"$1\",\n";
+       }
+}
+
+close $pdftotext || die "Error: $! $?\n";
+
+print $out "/* EOF */\n";
index 74c2731..fd4370f 100644 (file)
@@ -36,6 +36,7 @@
 #include "swd.h"
 #include "interface.h"
 #include <transport/transport.h>
+#include <helper/jep106.h>
 
 #ifdef HAVE_STRINGS_H
 #include <strings.h>
@@ -894,6 +895,8 @@ void jtag_sleep(uint32_t us)
 
 #define JTAG_MAX_AUTO_TAPS 20
 
+#define EXTRACT_JEP106_BANK(X) (((X) & 0xf00) >> 8)
+#define EXTRACT_JEP106_ID(X)   (((X) & 0xfe) >> 1)
 #define EXTRACT_MFG(X)  (((X) & 0xffe) >> 1)
 #define EXTRACT_PART(X) (((X) & 0xffff000) >> 12)
 #define EXTRACT_VER(X)  (((X) & 0xf0000000) >> 28)
@@ -957,10 +960,11 @@ static void jtag_examine_chain_display(enum log_levels level, const char *msg,
 {
        log_printf_lf(level, __FILE__, __LINE__, __func__,
                "JTAG tap: %s %16.16s: 0x%08x "
-               "(mfg: 0x%3.3x, part: 0x%4.4x, ver: 0x%1.1x)",
+               "(mfg: 0x%3.3x (%s), part: 0x%4.4x, ver: 0x%1.1x)",
                name, msg,
                (unsigned int)idcode,
                (unsigned int)EXTRACT_MFG(idcode),
+               jep106_manufacturer(EXTRACT_JEP106_BANK(idcode), EXTRACT_JEP106_ID(idcode)),
                (unsigned int)EXTRACT_PART(idcode),
                (unsigned int)EXTRACT_VER(idcode));
 }