[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