openocd: fix SPDX tag format for files .c
[fw/openocd] / src / flash / nor / psoc4.c
index 28c2124221a52a9e4a9f4b1b8171fc2bd64f6286..c935bd5f29167539a35f222b276bccc680e7373f 100644 (file)
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
  *                                                                         *
  *   Copyright (C) 2014 by Tomas Vanek (PSoC 4 support derived from STM32) *
  *   vanekt@fbl.cz                                                         *
- *                                                                         *
- *   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
@@ -320,7 +309,7 @@ static int psoc4_sysreq(struct flash_bank *bank, uint8_t cmd,
                    sysreq_wait_algorithm->address + sysreq_wait_algorithm->size);
 
        struct armv7m_common *armv7m = target_to_armv7m(target);
-       if (armv7m == NULL) {
+       if (!armv7m) {
                /* something is very wrong if armv7m is NULL */
                LOG_ERROR("unable to get armv7m target");
                retval = ERROR_FAIL;
@@ -520,16 +509,9 @@ static int psoc4_mass_erase(struct flash_bank *bank)
 
        /* Call "Erase All" system ROM API */
        uint32_t param = 0;
-       retval = psoc4_sysreq(bank, PSOC4_CMD_ERASE_ALL,
+       return psoc4_sysreq(bank, PSOC4_CMD_ERASE_ALL,
                        0,
                        &param, sizeof(param), NULL);
-
-       if (retval == ERROR_OK)
-               /* set all sectors as erased */
-               for (unsigned int i = 0; i < bank->num_sectors; i++)
-                       bank->sectors[i].is_erased = 1;
-
-       return retval;
 }
 
 
@@ -576,7 +558,7 @@ static int psoc4_protect(struct flash_bank *bank, int set, unsigned int first,
        int prot_sz = num_bits / 8;
 
        sysrq_buffer = malloc(param_sz + prot_sz);
-       if (sysrq_buffer == NULL) {
+       if (!sysrq_buffer) {
                LOG_ERROR("no memory for row buffer");
                return ERROR_FAIL;
        }
@@ -658,7 +640,7 @@ static int psoc4_write(struct flash_bank *bank, const uint8_t *buffer,
                return retval;
 
        sysrq_buffer = malloc(param_sz + psoc4_info->row_size);
-       if (sysrq_buffer == NULL) {
+       if (!sysrq_buffer) {
                LOG_ERROR("no memory for row buffer");
                return ERROR_FAIL;
        }
@@ -669,8 +651,8 @@ static int psoc4_write(struct flash_bank *bank, const uint8_t *buffer,
        if (row_offset)
                memset(row_buffer, bank->default_padded_value, row_offset);
 
-       bool save_poll = jtag_poll_get_enabled();
-       jtag_poll_set_enabled(false);
+       /* Mask automatic polling triggered by execution of halted events */
+       bool save_poll_mask = jtag_poll_mask();
 
        while (count) {
                uint32_t chunk_size = psoc4_info->row_size - row_offset;
@@ -711,7 +693,7 @@ static int psoc4_write(struct flash_bank *bank, const uint8_t *buffer,
        }
 
 cleanup:
-       jtag_poll_set_enabled(save_poll);
+       jtag_poll_unmask(save_poll_mask);
 
        free(sysrq_buffer);
        return retval;
@@ -792,7 +774,7 @@ static int psoc4_probe(struct flash_bank *bank)
                num_macros++;
        }
 
-       LOG_DEBUG("SPCIF geometry: %" PRIu32 " kb flash, row %" PRIu32 " bytes.",
+       LOG_DEBUG("SPCIF geometry: %" PRIu32 " KiB flash, row %" PRIu32 " bytes.",
                 flash_size_in_kb, row_size);
 
        /* if the user sets the size manually then ignore the probed value
@@ -806,7 +788,7 @@ static int psoc4_probe(struct flash_bank *bank)
        if (num_macros > 1)
                snprintf(macros_txt, sizeof(macros_txt), " in %" PRIu32 " macros", num_macros);
 
-       LOG_INFO("flash size = %" PRIu32 " kbytes%s", flash_size_in_kb, macros_txt);
+       LOG_INFO("flash size = %" PRIu32 " KiB%s", flash_size_in_kb, macros_txt);
 
        /* calculate number of pages */
        uint32_t num_rows = flash_size_in_kb * 1024 / row_size;
@@ -833,7 +815,7 @@ static int psoc4_probe(struct flash_bank *bank)
        bank->size = num_rows * row_size;
        bank->num_sectors = num_rows;
        bank->sectors = alloc_block_array(0, row_size, num_rows);
-       if (bank->sectors == NULL)
+       if (!bank->sectors)
                return ERROR_FAIL;
 
        LOG_DEBUG("flash bank set %" PRIu32 " rows", num_rows);