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
[email protected]
https://lists.sourceforge.net/lists/listinfo/urjtag-development