Skip to content

Commit 7e93341

Browse files
committed
Add read_chip_rev to JTAP programmers
That are set up to communicate with Xmega chips
1 parent 03aeb54 commit 7e93341

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/jtag3.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1431,7 +1431,7 @@ static int jtag3_initialize(const PROGRAMMER *pgm, const AVRPART *p) {
14311431
free(resp);
14321432

14331433
// Read chip silicon revision
1434-
if(pgm->read_chip_rev) {
1434+
if(pgm->read_chip_rev && p->prog_modes & (PM_PDI | PM_UPDI)) {
14351435
char chip_rev[AVR_CHIP_REVLEN];
14361436
pgm->read_chip_rev(pgm, p, chip_rev);
14371437
pmsg_notice("silicon revision: %x.%x\n", chip_rev[0] >> 4, chip_rev[0] & 0x0f);
@@ -2116,17 +2116,17 @@ static int jtag3_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM
21162116
paddr = addr & ~(pagesize - 1);
21172117
paddr_ptr = &PDATA(pgm)->eeprom_pageaddr;
21182118
cache_ptr = PDATA(pgm)->eeprom_pagecache;
2119-
} else if (strcmp(mem->desc, "lfuse") == 0) {
2119+
} else if (str_eq(mem->desc, "lfuse")) {
21202120
cmd[3] = MTYPE_FUSE_BITS;
21212121
addr = 0;
21222122
if (pgm->flag & PGM_FL_IS_DW)
21232123
unsupp = 1;
2124-
} else if (strcmp(mem->desc, "hfuse") == 0) {
2124+
} else if (str_eq(mem->desc, "hfuse")) {
21252125
cmd[3] = MTYPE_FUSE_BITS;
21262126
addr = 1;
21272127
if (pgm->flag & PGM_FL_IS_DW)
21282128
unsupp = 1;
2129-
} else if (strcmp(mem->desc, "efuse") == 0) {
2129+
} else if (str_eq(mem->desc, "efuse")) {
21302130
cmd[3] = MTYPE_FUSE_BITS;
21312131
addr = 2;
21322132
if (pgm->flag & PGM_FL_IS_DW)
@@ -2139,18 +2139,18 @@ static int jtag3_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM
21392139
cmd[3] = MTYPE_FUSE_BITS;
21402140
if (!(p->prog_modes & PM_UPDI))
21412141
addr = mem->offset & 7;
2142-
} else if (strcmp(mem->desc, "usersig") == 0 ||
2143-
strcmp(mem->desc, "userrow") == 0) {
2142+
} else if (str_eq(mem->desc, "usersig") ||
2143+
str_eq(mem->desc, "userrow")) {
21442144
cmd[3] = MTYPE_USERSIG;
2145-
} else if (strcmp(mem->desc, "prodsig") == 0) {
2145+
} else if (str_eq(mem->desc, "prodsig")) {
21462146
cmd[3] = MTYPE_PRODSIG;
2147-
} else if (strcmp(mem->desc, "sernum") == 0) {
2147+
} else if (str_eq(mem->desc, "sernum")) {
21482148
cmd[3] = MTYPE_SIGN_JTAG;
2149-
} else if (strcmp(mem->desc, "osccal16") == 0) {
2149+
} else if (str_eq(mem->desc, "osccal16")) {
21502150
cmd[3] = MTYPE_SIGN_JTAG;
2151-
} else if (strcmp(mem->desc, "osccal20") == 0) {
2151+
} else if (str_eq(mem->desc, "osccal20")) {
21522152
cmd[3] = MTYPE_SIGN_JTAG;
2153-
} else if (strcmp(mem->desc, "tempsense") == 0) {
2153+
} else if (str_eq(mem->desc, "tempsense")) {
21542154
cmd[3] = MTYPE_SIGN_JTAG;
21552155
} else if (strcmp(mem->desc, "osc16err") == 0) {
21562156
cmd[3] = MTYPE_SIGN_JTAG;
@@ -3212,6 +3212,7 @@ void jtag3_initpgm(PROGRAMMER *pgm) {
32123212
pgm->teardown = jtag3_teardown;
32133213
pgm->page_size = 256;
32143214
pgm->flag = PGM_FL_IS_JTAG;
3215+
pgm->read_chip_rev = jtag3_read_chip_rev;
32153216

32163217
/*
32173218
* hardware dependent functions

0 commit comments

Comments
 (0)