flash/nor/at91samd: Use 32-bit register writes for ST-Link compat
[fw/openocd] / src / flash / nor / at91samd.c
index d4ac4c9981565749d03d9a937dd842d486086414..3b8893252a32d56ffd2467596424aa67abed1915 100644 (file)
@@ -1,19 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2013 by Andrey Yurovsky                                 *
  *   Andrey Yurovsky <yurovsky@gmail.com>                                  *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -23,6 +12,7 @@
 #include "imp.h"
 #include "helper/binarybuffer.h"
 
+#include <jtag/jtag.h>
 #include <target/cortex_m.h>
 
 #define SAMD_NUM_PROT_BLOCKS   16
@@ -250,6 +240,7 @@ static const struct samd_part saml21_parts[] = {
 
     /* SAMR34/R35 parts have integrated SAML21 with a lora radio */
        { 0x28, "SAMR34J18", 256, 32 },
+       { 0x2B, "SAMR35J18", 256, 32 },
 };
 
 /* Known SAML22 parts. */
@@ -552,7 +543,7 @@ static int samd_issue_nvmctrl_command(struct target *target, uint16_t cmd)
        }
 
        /* Issue the NVM command */
-       res = target_write_u16(target,
+       res = target_write_u32(target,
                        SAMD_NVMCTRL + SAMD_NVMCTRL_CTRLA, SAMD_NVM_CMD(cmd));
        if (res != ERROR_OK)
                return res;
@@ -944,11 +935,6 @@ FLASH_BANK_COMMAND_HANDLER(samd_flash_bank_command)
        return ERROR_OK;
 }
 
-COMMAND_HANDLER(samd_handle_info_command)
-{
-       return ERROR_OK;
-}
-
 COMMAND_HANDLER(samd_handle_chip_erase_command)
 {
        struct target *target = get_current_target(CMD_CTX);
@@ -1209,14 +1195,6 @@ static const struct command_registration at91samd_exec_command_handlers[] = {
                .help = "Deassert internal reset held by DSU.",
                .usage = "",
        },
-       {
-               .name = "info",
-               .handler = samd_handle_info_command,
-               .mode = COMMAND_EXEC,
-               .help = "Print information about the current at91samd chip "
-                       "and its flash configuration.",
-               .usage = "",
-       },
        {
                .name = "chip-erase",
                .handler = samd_handle_chip_erase_command,