This patch just includes some code to look up a manufacturer name given parts of idcode. You use it like:
uint64_t idcode = urj_tap_register_get_value (did); unsigned int Mfg = (unsigned int) EXTRACT_MFG(idcode); unsigned int Bank = (unsigned int) EXTRACT_JEP106_BANK(idcode); unsigned int Id = (unsigned int) EXTRACT_JEP106_ID(idcode); unsigned int Part = (unsigned int) EXTRACT_PART(idcode); unsigned int Ver = (unsigned int) EXTRACT_VER(idcode); if (part->manufacturer_name[0] == '\0') { const char *str = jep106_manufacturer(Bank, Id); if (str == NULL) { snprintf(part->manufacturer_name, URJ_PART_MANUFACTURER_MAXLEN + 1, "0x%04x", Mfg); } else { snprintf(part->manufacturer_name, URJ_PART_MANUFACTURER_MAXLEN + 1, "%s", str); } } if (part->part_name[0] == '\0') { snprintf(part->part_name, URJ_PART_PART_MAXLEN + 1, "0x%04x", Part); } if (part->stepping[0] == '\0') { snprintf(part->stepping, URJ_PART_STEPPING_MAXLEN + 1, "0x%02x", Ver); } where part is the current active part: urj_part_t *part = chain->parts->parts[chain->active_part]; and did is the detected id (as in src/tap/detect.c line 272). Regards, /Karl Hammar _______________________________________________ UrJTAG-development mailing list UrJTAG-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/urjtag-development