flash/nor: Add support for Artery devices

Initial driver for Artery devices without flash loader and dual-bank
support. Tested with AT32F415CBT7 and AT32F421C8T7.

Change-Id: I3213f8403d0f3db5d205e200f626e73043f55834
Signed-off-by: Marc Schink <dev@zapb.de>
Reviewed-on: https://review.openocd.org/c/openocd/+/8667
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
Marc Schink
2024-11-30 10:23:01 +00:00
committed by Antonio Borneo
parent d3c25a45f6
commit ef188a30ac
6 changed files with 2784 additions and 0 deletions

View File

@@ -6608,6 +6608,50 @@ the flash.
@end deffn
@end deffn
@deffn {Flash Driver} {artery}
@cindex artery
This driver supports Artery Technology devices from the following series:
@itemize
@item AT32F403A / AT32F407
@item AT32F413
@item AT32F415
@item AT32F421
@item AT32F423
@item AT32F425
@item AT32F435 / AT32F437
@item AT32WB415
@end itemize
Devices with dual-bank flash memory are currently not supported.
Also, access to user data in the user system data (USD) area is not supported.
The driver supports flash write protection and flash access protection (FAP).
For the FAP, only the low-level protection is implemented.
@b{Note:} a change of the flash write protection or FAP requires a device reset for the changes to take effect.
The @var{artery} driver provides the following additional commands:
@deffn {Command} {artery fap enable} <bank>
Enable low-level flash access protection (FAP).
@end deffn
@deffn {Command} {artery fap disable} <bank>
Disable flash access protection (FAP).
@end deffn
@deffn {Command} {artery fap state} <bank>
Get the flash access protection (FAP) state.
The state is a boolean value that indicates whether the FAP is configured in level 'low' or higher.
@end deffn
@deffn {Command} {artery mass_erase} <bank>
Erase entire bank.
@end deffn
@end deffn
@deffn {Flash Driver} {at91samd}
@cindex at91samd
All members of the ATSAM D2x, D1x, D0x, ATSAMR, ATSAML and ATSAMC microcontroller