[prev in list] [next in list] [prev in thread] [next in thread]
List: openocd-development
Subject: [OpenOCD-devel] [PATCH]: d89612b flash/nor: Factor out cfi_spansion_unlock_seq()
From: gerrit () openocd ! org (gerrit)
Date: 2019-04-29 20:45:54
Message-ID: 20190429204554.8AC812522ADF () mail ! openocd ! org
[Download RAW message or body]
This is an automated email from Gerrit.
Marek Vasut (marek.vasut@gmail.com) just uploaded a new patch set to Gerrit, which \
you can find at http://openocd.zylin.com/5144
-- gerrit
commit d89612b0ef9d59a5d77ad8af777f449c1da7e29b
Author: Marek Vasut <marek.vasut@gmail.com>
Date: Fri Apr 19 20:34:36 2019 +0200
flash/nor: Factor out cfi_spansion_unlock_seq()
Factor out the spansion unlock sequence to deduplicate the code.
Change-Id: Id78522e9a2f0e701870ef816772289d08257476a
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c
index 04fa83b..34f200b 100644
--- a/src/flash/nor/cfi.c
+++ b/src/flash/nor/cfi.c
@@ -898,6 +898,23 @@ static int cfi_intel_erase(struct flash_bank *bank, int first, \
int last) return cfi_send_command(bank, 0xff, flash_address(bank, 0, 0x0));
}
+static int cfi_spansion_unlock_seq(struct flash_bank *bank)
+{
+ int retval;
+ struct cfi_flash_bank *cfi_info = bank->driver_priv;
+ struct cfi_spansion_pri_ext *pri_ext = cfi_info->pri_ext;
+
+ retval = cfi_send_command(bank, 0xaa, flash_address(bank, 0, pri_ext->_unlock1));
+ if (retval != ERROR_OK)
+ return retval;
+
+ retval = cfi_send_command(bank, 0x55, flash_address(bank, 0, pri_ext->_unlock2));
+ if (retval != ERROR_OK)
+ return retval;
+
+ return ERROR_OK;
+}
+
static int cfi_spansion_erase(struct flash_bank *bank, int first, int last)
{
int retval;
@@ -906,11 +923,7 @@ static int cfi_spansion_erase(struct flash_bank *bank, int \
first, int last) int i;
for (i = first; i <= last; i++) {
- retval = cfi_send_command(bank, 0xaa, flash_address(bank, 0, pri_ext->_unlock1));
- if (retval != ERROR_OK)
- return retval;
-
- retval = cfi_send_command(bank, 0x55, flash_address(bank, 0, pri_ext->_unlock2));
+ retval = cfi_spansion_unlock_seq(bank);
if (retval != ERROR_OK)
return retval;
@@ -918,11 +931,7 @@ static int cfi_spansion_erase(struct flash_bank *bank, int \
first, int last) if (retval != ERROR_OK)
return retval;
- retval = cfi_send_command(bank, 0xaa, flash_address(bank, 0, pri_ext->_unlock1));
- if (retval != ERROR_OK)
- return retval;
-
- retval = cfi_send_command(bank, 0x55, flash_address(bank, 0, pri_ext->_unlock2));
+ retval = cfi_spansion_unlock_seq(bank);
if (retval != ERROR_OK)
return retval;
@@ -2102,11 +2111,7 @@ static int cfi_spansion_write_word(struct flash_bank *bank, \
uint8_t *word, uint3 struct cfi_spansion_pri_ext *pri_ext = cfi_info->pri_ext;
struct target *target = bank->target;
- retval = cfi_send_command(bank, 0xaa, flash_address(bank, 0, pri_ext->_unlock1));
- if (retval != ERROR_OK)
- return retval;
-
- retval = cfi_send_command(bank, 0x55, flash_address(bank, 0, pri_ext->_unlock2));
+ retval = cfi_spansion_unlock_seq(bank);
if (retval != ERROR_OK)
return retval;
@@ -2137,7 +2142,6 @@ static int cfi_spansion_write_words(struct flash_bank *bank, \
const uint8_t *word int retval;
struct cfi_flash_bank *cfi_info = bank->driver_priv;
struct target *target = bank->target;
- struct cfi_spansion_pri_ext *pri_ext = cfi_info->pri_ext;
/* Calculate buffer size and boundary mask
* buffersize is (buffer size per chip) * (number of chips)
@@ -2163,11 +2167,7 @@ static int cfi_spansion_write_words(struct flash_bank *bank, \
const uint8_t *word }
/* Unlock */
- retval = cfi_send_command(bank, 0xaa, flash_address(bank, 0, pri_ext->_unlock1));
- if (retval != ERROR_OK)
- return retval;
-
- retval = cfi_send_command(bank, 0x55, flash_address(bank, 0, pri_ext->_unlock2));
+ retval = cfi_spansion_unlock_seq(bank);
if (retval != ERROR_OK)
return retval;
@@ -2958,11 +2958,7 @@ static int cfi_spansion_protect_check(struct flash_bank *bank)
struct cfi_spansion_pri_ext *pri_ext = cfi_info->pri_ext;
int i;
- retval = cfi_send_command(bank, 0xaa, flash_address(bank, 0, pri_ext->_unlock1));
- if (retval != ERROR_OK)
- return retval;
-
- retval = cfi_send_command(bank, 0x55, flash_address(bank, 0, pri_ext->_unlock2));
+ retval = cfi_spansion_unlock_seq(bank);
if (retval != ERROR_OK)
return retval;
--
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic