From patchwork Wed Dec 10 12:51:25 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 419634 X-Patchwork-Delegate: jagannadh.teki@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 509821400DE for ; Wed, 10 Dec 2014 23:52:14 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A9FE64B7E4; Wed, 10 Dec 2014 13:52:05 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qkEBJps9XTWq; Wed, 10 Dec 2014 13:52:05 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D4E074B7D6; Wed, 10 Dec 2014 13:52:04 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 6B6AA4B7E8 for ; Wed, 10 Dec 2014 13:52:03 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OIMhzhnVHeRK for ; Wed, 10 Dec 2014 13:52:03 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-pd0-f177.google.com (mail-pd0-f177.google.com [209.85.192.177]) by theia.denx.de (Postfix) with ESMTPS id 0DA044B7D9 for ; Wed, 10 Dec 2014 13:51:56 +0100 (CET) Received: by mail-pd0-f177.google.com with SMTP id ft15so2694438pdb.8 for ; Wed, 10 Dec 2014 04:51:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=DxTc+BF1wdQUwn/DY5/5xtXRXaDrLOudwXCcMDW7wjc=; b=kxoZ2vVaGnb+IFqi3YGZCJBzirjO6/4RoHyTg1L8ZnCtcVDnhnRYWYWH/SQ+o3uNmt K8YRLgw2gBKZK8cqOLdwyoXvZLS7L4Vm4xfOPmrmGXV0ZtLIb5Zc+nmb4tJTADyWCQny 2ljhM61ufSJ/4ruMeKracsT/2Vr5N6s3yZHYRb7dRMjgf2cdnOwDIXIEiGnE9WBFMev/ nIO/FuAwGkU1Bm0TKs+u1r+a42cONY3NXFbxVhP74QcqnLMQG36szGThQI/SAChg2HIp gxp2I3GlpnNiaCh5KsvOs9toYZl+j2gz2JAX8MiN/XDz2OzNT+BJf8PfXVHTvGvZTJTw hesw== X-Received: by 10.67.6.233 with SMTP id cx9mr6823984pad.110.1418215915197; Wed, 10 Dec 2014 04:51:55 -0800 (PST) Received: from localhost ([106.120.101.38]) by mx.google.com with ESMTPSA id fu1sm4141863pbb.91.2014.12.10.04.51.53 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 10 Dec 2014 04:51:54 -0800 (PST) From: Bin Meng To: Jagannadha Sutradharudu Teki , U-Boot Mailing List Date: Wed, 10 Dec 2014 20:51:25 +0800 Message-Id: <1418215892-17617-3-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1418215892-17617-1-git-send-email-bmeng.cn@gmail.com> References: <1418215892-17617-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [PATCH v3 2/9] sf: Update Atmel flash params X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.13 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de Update flash sector size to 4KiB as long as flash supports sector erase (20h) command. Correct AT25DF321 JEDEC ID and bulk erase command to 50h instead of D8h. Also add AT25DF321A params per datasheet. Signed-off-by: Bin Meng --- drivers/mtd/spi/sf_internal.h | 5 +++++ drivers/mtd/spi/sf_params.c | 17 +++++++++-------- drivers/mtd/spi/sf_probe.c | 4 ++++ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h index 785f7a9..8010fc5 100644 --- a/drivers/mtd/spi/sf_internal.h +++ b/drivers/mtd/spi/sf_internal.h @@ -106,6 +106,11 @@ enum { #define SPI_FLASH_PAGE_ERASE_TIMEOUT (5 * CONFIG_SYS_HZ) #define SPI_FLASH_SECTOR_ERASE_TIMEOUT (10 * CONFIG_SYS_HZ) +/* Atmel specific */ +#ifdef CONFIG_SPI_FLASH_ATMEL +# define CMD_ATMEL_BLK_ERASE 0x50 +#endif + /* SST specific */ #ifdef CONFIG_SPI_FLASH_SST # define CMD_SST_BP 0x02 /* Byte Program */ diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c index 5482700..cc4cd60 100644 --- a/drivers/mtd/spi/sf_params.c +++ b/drivers/mtd/spi/sf_params.c @@ -15,14 +15,15 @@ /* SPI/QSPI flash device params structure */ const struct spi_flash_params spi_flash_params_table[] = { #ifdef CONFIG_SPI_FLASH_ATMEL /* ATMEL */ - {"AT45DB011D", 0x1f2200, 0x0, 64 * 1024, 4, RD_NORM, SECT_4K}, - {"AT45DB021D", 0x1f2300, 0x0, 64 * 1024, 8, RD_NORM, SECT_4K}, - {"AT45DB041D", 0x1f2400, 0x0, 64 * 1024, 8, RD_NORM, SECT_4K}, - {"AT45DB081D", 0x1f2500, 0x0, 64 * 1024, 16, RD_NORM, SECT_4K}, - {"AT45DB161D", 0x1f2600, 0x0, 64 * 1024, 32, RD_NORM, SECT_4K}, - {"AT45DB321D", 0x1f2700, 0x0, 64 * 1024, 64, RD_NORM, SECT_4K}, - {"AT45DB641D", 0x1f2800, 0x0, 64 * 1024, 128, RD_NORM, SECT_4K}, - {"AT25DF321", 0x1f4701, 0x0, 64 * 1024, 64, RD_NORM, SECT_4K}, + {"AT45DB011D", 0x1f2200, 0x0, 2 * 1024, 64, RD_NORM, 0}, + {"AT45DB021D", 0x1f2300, 0x0, 2 * 1024, 128, RD_NORM, 0}, + {"AT45DB041D", 0x1f2400, 0x0, 2 * 1024, 256, RD_NORM, 0}, + {"AT45DB081D", 0x1f2500, 0x0, 2 * 1024, 512, RD_NORM, 0}, + {"AT45DB161D", 0x1f2600, 0x0, 4 * 1024, 512, RD_NORM, 0}, + {"AT45DB321D", 0x1f2700, 0x0, 4 * 1024, 1024, RD_NORM, 0}, + {"AT45DB641D", 0x1f2800, 0x0, 2 * 1024, 4096, RD_NORM, 0}, + {"AT25DF321", 0x1f4700, 0x0, 4 * 1024, 1024, RD_NORM, SECT_4K}, + {"AT25DF321A", 0x1f4701, 0x0, 4 * 1024, 1024, RD_NORM, SECT_4K}, #endif #ifdef CONFIG_SPI_FLASH_EON /* EON */ {"EN25Q32B", 0x1c3016, 0x0, 64 * 1024, 64, RD_NORM, 0}, diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index ce9987f..13fda44 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -179,7 +179,11 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode, flash->erase_cmd = CMD_ERASE_32K; flash->erase_size = 32768 << flash->shift; } else { +#ifdef CONFIG_SPI_FLASH_ATMEL + flash->erase_cmd = CMD_ATMEL_BLK_ERASE; +#else flash->erase_cmd = CMD_ERASE_64K; +#endif flash->erase_size = flash->sector_size; }