flash/nor: flash driver and cfg for SAM E54, E53, E51 and D51
[fw/openocd] / src / flash / nor / aduc702x.c
index 60ec7d3863312e5797879ed94d24c2979e89d875..824112b1bc44a57090f73923996a095918f224d6 100644 (file)
@@ -14,9 +14,7 @@
  *   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, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -76,12 +74,6 @@ static int aduc702x_build_sector_list(struct flash_bank *bank)
        return ERROR_OK;
 }
 
-static int aduc702x_protect_check(struct flash_bank *bank)
-{
-       printf("aduc702x_protect_check not implemented yet.\n");
-       return ERROR_OK;
-}
-
 static int aduc702x_erase(struct flash_bank *bank, int first, int last)
 {
        /* int res; */
@@ -132,19 +124,13 @@ static int aduc702x_erase(struct flash_bank *bank, int first, int last)
        return ERROR_OK;
 }
 
-static int aduc702x_protect(struct flash_bank *bank, int set, int first, int last)
-{
-       printf("aduc702x_protect not implemented yet.\n");
-       return ERROR_FLASH_OPERATION_FAILED;
-}
-
 /* If this fn returns ERROR_TARGET_RESOURCE_NOT_AVAILABLE, then the caller can fall
  * back to another mechanism that does not require onboard RAM
  *
  * Caller should not check for other return values specifically
  */
 static int aduc702x_write_block(struct flash_bank *bank,
-       uint8_t *buffer,
+       const uint8_t *buffer,
        uint32_t offset,
        uint32_t count)
 {
@@ -285,7 +271,7 @@ static int aduc702x_write_block(struct flash_bank *bank,
 /* All-JTAG, single-access method.  Very slow.  Used only if there is no
  * working area available. */
 static int aduc702x_write_single(struct flash_bank *bank,
-       uint8_t *buffer,
+       const uint8_t *buffer,
        uint32_t offset,
        uint32_t count)
 {
@@ -326,7 +312,7 @@ static int aduc702x_write_single(struct flash_bank *bank,
        return ERROR_OK;
 }
 
-static int aduc702x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int aduc702x_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count)
 {
        int retval;
 
@@ -373,7 +359,7 @@ static int aduc702x_check_flash_completion(struct target *target, unsigned int t
 {
        uint8_t v = 4;
 
-       long long endtime = timeval_ms() + timeout_ms;
+       int64_t endtime = timeval_ms() + timeout_ms;
        while (1) {
                target_read_u8(target, ADUC702x_FLASH + ADUC702x_FLASH_FEESTA, &v);
                if ((v & 4) == 0)
@@ -396,11 +382,9 @@ struct flash_driver aduc702x_flash = {
        .name = "aduc702x",
        .flash_bank_command = aduc702x_flash_bank_command,
        .erase = aduc702x_erase,
-       .protect = aduc702x_protect,
        .write = aduc702x_write,
        .read = default_flash_read,
        .probe = aduc702x_probe,
        .auto_probe = aduc702x_probe,
        .erase_check = default_flash_blank_check,
-       .protect_check = aduc702x_protect_check,
 };