Menu

#463 Clarification on the use of the IDCODE

0.12.0
new
None
2025-12-24
2025-12-23
No

The jep106_table_manufacturer function identifies manufacturer information based on the manufid in theidcode. However, when the bank number is greater than or equal to 17, it conflicts with earlier banks. For example,
[0][0x01 - 1] = "AMD" conflicts with
[16][0x01 - 1] = "Shenzhen JIEQING Technology Co Ltd".

const char *jep106_table_manufacturer(unsigned int bank, unsigned int 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])
        return "<unknown>";

    return jep106[bank][id];
}

Discussion

  • Antonio Borneo

    Antonio Borneo - 2025-12-23

    Please check the discussion on https://review.openocd.org/c/openocd/+/8891,
    The overlap is there and due to limited space allocated for JEP106 banks (4 bits) we cannot discriminate between "AMD" and "Shenzhen JIEQING Technology Co Ltd".
    Same issue with all the IDCODE in banks 0 and 16

     
    • Guanghui Cheng

      Guanghui Cheng - 2025-12-24

      Thank you!

       

Log in to post a comment.

MongoDB Logo MongoDB