From d78d7838d32f38a7f5133007123f111845c07bc5 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Thu, 5 Nov 2020 18:53:44 +0100 Subject: [PATCH] stm32f1: Always read DBGMCU_IDCODE for t->idcode (#770) At least STM32F042 has 0x440 as romtable partno vs 0x445 as DBGMCU_IDCODE. Thanks to Andrey Melnikov(aam335) for pointing out! --- src/target/stm32f1.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/target/stm32f1.c b/src/target/stm32f1.c index 731973d1..8c1fd429 100644 --- a/src/target/stm32f1.c +++ b/src/target/stm32f1.c @@ -118,7 +118,10 @@ static void stm32f1_add_flash(target *t, bool stm32f1_probe(target *t) { - if (t->t_designer == AP_DESIGNER_ARM) + uint16_t stored_idcode = t->idcode; + if ((t->cpuid & CPUID_PARTNO_MASK) == CORTEX_M0) + t->idcode = target_mem_read32(t, DBGMCU_IDCODE_F0) & 0xfff; + else t->idcode = target_mem_read32(t, DBGMCU_IDCODE) & 0xfff; size_t flash_size; size_t block_size = 0x400; @@ -191,6 +194,7 @@ bool stm32f1_probe(target *t) block_size = 0x800; break; default: /* NONE */ + t->idcode = stored_idcode; return false; }