This is an automated email from Gerrit. "Tarek BOCHKATI <[email protected]>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/6535
-- gerrit commit fff092de1e9559c314ed2edf5a77ce4655c04173 Author: Tarek BOCHKATI <[email protected]> Date: Sun Aug 29 16:33:55 2021 +0100 flash/stm32l4x: fix segmentation fault with HLA adapters and STM32WLx devices CPU2 (Cortex-M0+) is supported only with non-hla adapters because it is located on AP1. Then check if the target is not overridden with "hla_target", otherwise cortex_m->armv7m.debug_ap is null and will cause a Segmentation fault. Change-Id: I501f5b69e629aa8d2836b5194063d74d5bfddb12 Signed-off-by: Tarek BOCHKATI <[email protected]> Fixes: https://github.com/STMicroelectronics/OpenOCD/issues/6 diff --git a/src/flash/nor/stm32l4x.c b/src/flash/nor/stm32l4x.c index e4d291e6d..5fd3a2258 100644 --- a/src/flash/nor/stm32l4x.c +++ b/src/flash/nor/stm32l4x.c @@ -1646,7 +1646,11 @@ static int stm32l4_read_idcode(struct flash_bank *bank, uint32_t *id) struct cortex_m_common *cortex_m = target_to_cm(bank->target); - if (cortex_m->core_info->partno == CORTEX_M0P_PARTNO && cortex_m->armv7m.debug_ap->ap_num == 1) { + /* CPU2 (Cortex-M0+) is supported only with non-hla adapters because it is located on AP1. + * Then check if the "cortex_m" target is not overridden with "hla_target", + * otherwise cortex_m->armv7m.debug_ap is null and will cause a Segmentation fault */ + if (cortex_m->core_info->partno == CORTEX_M0P_PARTNO && + !cortex_m->armv7m.is_hla_target && cortex_m->armv7m.debug_ap->ap_num == 1) { uint32_t uid64_ids; /* UID64 is contains @@ -1954,7 +1958,11 @@ static int stm32l4_probe(struct flash_bank *bank) page_size_kb = 2; num_pages = flash_size_kb / page_size_kb; stm32l4_info->bank1_sectors = num_pages; - if (armv7m->debug_ap->ap_num == 1) + + /* CPU2 (Cortex-M0+) is supported only with non-hla adapters because it is located on AP1. + * Then check if the "cortex_m" target is not overridden with "hla_target", + * otherwise armv7m->debug_ap is null and will cause a Segmentation fault */ + if (!armv7m->is_hla_target && armv7m->debug_ap->ap_num == 1) stm32l4_info->flash_regs = stm32wl_cpu2_flash_regs; break; default: --
