flash/stm32l4x: STM32L5 support programming when TZEN=1 and RDP=0x55
[fw/openocd] / src / flash / nor / stm32l4x.c
index db8d5e78d3175d5ecf010b5e06ce7acf37c594c0..de36d56c71796af5130835af7010190577e7dd17 100644 (file)
@@ -1434,6 +1434,13 @@ static int stm32l4_write(struct flash_bank *bank, const uint8_t *buffer,
        if (retval != ERROR_OK)
                goto err_lock;
 
+       /* For TrustZone enabled devices, when TZEN is set and RDP level is 0.5,
+        * the debug is possible only in non-secure state.
+        * Thus means the flashloader will run in non-secure mode,
+        * and the workarea need to be in non-secure RAM */
+       if (stm32l4_info->tzen && (stm32l4_info->rdp == RDP_LEVEL_0_5))
+               LOG_INFO("RDP level is 0.5, the work-area should reside in non-secure RAM");
+
        retval = stm32l4_write_block(bank, buffer, offset, count / 8);
 
 err_lock: