Support GD32E23x

This commit is contained in:
Aaron Lindsay 2020-12-07 15:46:02 -08:00 committed by UweBonnes
parent 14498decd9
commit 518529a772
2 changed files with 12 additions and 5 deletions

View File

@ -448,6 +448,8 @@ bool cortexm_probe(ADIv5_AP_t *ap)
PROBE(lpc43xx_probe); PROBE(lpc43xx_probe);
PROBE(lpc546xx_probe); PROBE(lpc546xx_probe);
PROBE(kinetis_probe); /* Older K-series */ PROBE(kinetis_probe); /* Older K-series */
} else if (ap->ap_partno == 0x4cb) { /* Cortex-M23 ROM */
PROBE(gd32f1_probe); /* GD32E23x uses GD32F1 peripherals */
} }
/* Info on PIDR of these parts wanted! */ /* Info on PIDR of these parts wanted! */
PROBE(sam3x_probe); PROBE(sam3x_probe);

View File

@ -123,8 +123,10 @@ static void stm32f1_add_flash(target *t,
bool gd32f1_probe(target *t) bool gd32f1_probe(target *t)
{ {
uint16_t stored_idcode = t->idcode; uint16_t stored_idcode = t->idcode;
// M3 & M4 & riscV only afaik if ((t->cpuid & CPUID_PARTNO_MASK) == CORTEX_M23)
t->idcode = target_mem_read32(t, DBGMCU_IDCODE) & 0xfff; t->idcode = target_mem_read32(t, DBGMCU_IDCODE_F0) & 0xfff;
else
t->idcode = target_mem_read32(t, DBGMCU_IDCODE) & 0xfff;
uint32_t signature= target_mem_read32(t, FLASHSIZE); uint32_t signature= target_mem_read32(t, FLASHSIZE);
uint32_t flashSize=signature & 0xFFFF; uint32_t flashSize=signature & 0xFFFF;
uint32_t ramSize=signature >>16 ; uint32_t ramSize=signature >>16 ;
@ -132,11 +134,14 @@ bool gd32f1_probe(target *t)
case 0x414: /* Gigadevice gd32f303 */ case 0x414: /* Gigadevice gd32f303 */
t->driver = "GD32F3"; t->driver = "GD32F3";
break; break;
case 0x410: /* Gigadevice gd32f103 */ case 0x410: /* Gigadevice gd32f103, gd32e230 */
t->driver = "GD32F1"; if ((t->cpuid & CPUID_PARTNO_MASK) == CORTEX_M23)
t->driver = "GD32E230";
else
t->driver = "GD32F1";
break; break;
default: default:
t->idcode = stored_idcode; t->idcode = stored_idcode;
return false; return false;
} }
target_add_ram(t, 0x20000000, ramSize*1024); target_add_ram(t, 0x20000000, ramSize*1024);