diff --git a/tockloader/board_interface.py b/tockloader/board_interface.py index da9cf4d..7c3c855 100644 --- a/tockloader/board_interface.py +++ b/tockloader/board_interface.py @@ -310,6 +310,17 @@ class BoardInterface: "flush_command": "probe-rs download {binary} --binary-format bin --base-address 0x10000000 --chip CY8C624AAZI-S2D44", }, }, + "samv71": { + "description": "Microchip SAM V71 Xplained Ultra evaluation kit", + "arch": "cortex-m7", + "page_size": 16384, + "openocd": { + "prefix": "source [find interface/cmsis-dap.cfg]; \ + transport select swd; \ + set CHIPNAME samv71; \ + source [find target/atsamv.cfg];", + }, + }, } def __init__(self, args): diff --git a/tockloader/openocd.py b/tockloader/openocd.py index 3274234..59881d6 100644 --- a/tockloader/openocd.py +++ b/tockloader/openocd.py @@ -249,6 +249,12 @@ def _list_emulators(self): ) ) + openocd_commands.append( + '{openocd_cmd} -c "source [find interface/cmsis-dap.cfg]; transport select swd; set CHIPNAME samv71; source [find target/atsamv.cfg]; init; exit;"'.format( + openocd_cmd=self.openocd_cmd + ) + ) + # These are the magic strings in the output of openocd we are looking # for. If there is a better way to do this then we should change. But, # this is the best I got for now. Magic string is what we want to see in @@ -259,6 +265,7 @@ def _list_emulators(self): ("(mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)", "arty"), ("SWD DPIDR 0x2ba01477", "microbit_v2"), ("stm32f4x.cpu", "stm32f4discovery"), + ("samv71.cpu", "samv71"), ] emulators = [] diff --git a/tockloader/tockloader.py b/tockloader/tockloader.py index 7542edb..099e24e 100644 --- a/tockloader/tockloader.py +++ b/tockloader/tockloader.py @@ -146,6 +146,9 @@ class TockLoader: "cy8cproto_62_4343_w": { "start_address": 0x10100000, }, + "samv71": { + "start_address": 0x00480000, + }, }, }