Patchwork [U-Boot] cfi_flash: Use flash_read32() in sector_erased()

login
register
mail settings
Submitter Stefan Roese
Date Oct. 25, 2010, 4:31 p.m.
Message ID <1288024299-6430-1-git-send-email-sr@denx.de>
Download mbox | patch
Permalink /patch/71923/
State Accepted
Commit 4d2ca9d6a0452edeaf5922cbae3b939974114214
Delegated to: Stefan Roese
Headers show

Comments

Stefan Roese - Oct. 25, 2010, 4:31 p.m.
The function sector_erased() is modified to not use pointer
access, but to use the correct accessor functions. This fixes a
problem on the t3corp board with the Xilinx DS617 flash chips. Here
a board specific accessor function is needed to read from flash
in 32bit mode. This patch enables such an operation mode.

Signed-off-by: Stefan Roese <sr@denx.de>
---
 drivers/mtd/cfi_flash.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Stefan Roese - Dec. 17, 2010, 8:59 a.m.
On Monday 25 October 2010 18:31:39 Stefan Roese wrote:
> The function sector_erased() is modified to not use pointer
> access, but to use the correct accessor functions. This fixes a
> problem on the t3corp board with the Xilinx DS617 flash chips. Here
> a board specific accessor function is needed to read from flash
> in 32bit mode. This patch enables such an operation mode.

Applied to u-boot-cfi-flash/next. Thanks.
 
Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office@denx.de

Patch

diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index e2317bd..c17c542 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -1112,18 +1112,18 @@  static int sector_erased(flash_info_t *info, int i)
 {
 	int k;
 	int size;
-	volatile unsigned long *flash;
+	u32 *flash;
 
 	/*
 	 * Check if whole sector is erased
 	 */
 	size = flash_sector_size(info, i);
-	flash = (volatile unsigned long *) info->start[i];
+	flash = (u32 *)info->start[i];
 	/* divide by 4 for longword access */
 	size = size >> 2;
 
 	for (k = 0; k < size; k++) {
-		if (*flash++ != 0xffffffff)
+		if (flash_read32(flash++) != 0xffffffff)
 			return 0;	/* not erased */
 	}