From: Pavel Machek <pavel@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCHv3] mtd: sf: Add CONFIG_SPI_N25Q256A_RESET for software-reset
Date: Fri, 15 May 2015 10:47:46 +0200 [thread overview]
Message-ID: <20150515084746.GA26883@amd> (raw)
In-Reply-To: <CAD6G_RTsiS5bOteMz2SJJyqhgyzQP=jypn7cJQYaFmM8D2VL7w@mail.gmail.com>
> >> Seems like nothing much doing in micron side
> >> switch (JEDEC_MFR(info)) {
> >> case CFI_MFR_ST: /* Micron, actually */
> >> /* Some Micron need WREN command; all will accept it */
> >> need_wren = true;
> >
> > Umm. Take a closer look.
> >
> > There's no break, so it continues below.
>
> Ohh.. So Linux works for you.. then is it?
Well, yes, but this code patch is actually not tested in my case,
because u-boot already resets it for Linux.
Anyway, is this what you'd like to see?
Pavel
diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index 4158e13..5379f18 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -43,6 +43,7 @@ enum {
SST_BP = 1 << 3,
SST_WP = 1 << 4,
WR_QPP = 1 << 5,
+ MICRON_RESET = 1 << 6,
};
#define SST_WR (SST_BP | SST_WP)
diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index c12e8c6..45525b5 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -85,7 +85,7 @@ const struct spi_flash_params spi_flash_params_table[] = {
{"N25Q128A", 0x20bb18, 0x0, 64 * 1024, 256, RD_FULL, WR_QPP},
{"N25Q256", 0x20ba19, 0x0, 64 * 1024, 512, RD_FULL, WR_QPP | SECT_4K},
{"N25Q256A", 0x20bb19, 0x0, 64 * 1024, 512, RD_FULL, WR_QPP | SECT_4K},
- {"N25Q512", 0x20ba20, 0x0, 64 * 1024, 1024, RD_FULL, WR_QPP | E_FSR | SECT_4K},
+ {"N25Q512", 0x20ba20, 0x0, 64 * 1024, 1024, RD_FULL, WR_QPP | E_FSR | SECT_4K | MICRON_RESET},
{"N25Q512A", 0x20bb20, 0x0, 64 * 1024, 1024, RD_FULL, WR_QPP | E_FSR | SECT_4K},
{"N25Q1024", 0x20ba21, 0x0, 64 * 1024, 2048, RD_FULL, WR_QPP | E_FSR | SECT_4K},
{"N25Q1024A", 0x20bb21, 0x0, 64 * 1024, 2048, RD_FULL, WR_QPP | E_FSR | SECT_4K},
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index 201471c..04666b9 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -8,6 +8,7 @@
* SPDX-License-Identifier: GPL-2.0+
*/
+#define DEBUG
#include <common.h>
#include <dm.h>
#include <errno.h>
@@ -233,6 +234,30 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
flash->poll_cmd = CMD_FLAG_STATUS;
#endif
+ if (params->flags & MICRON_RESET) {
+#define CMD_RESET_ENABLE 0x66
+#define CMD_RESET_MEMORY 0x99
+ int ret;
+ /*
+ * This is needed for the SoCFPGA booting from SPI NOR flash
+ * e.g. (N25Q256A), as U-Boot SPL 2013-socfpga (only version
+ * working on that board) sets 4-byte addressing mode.
+ */
+ ret = spi_flash_cmd(spi, CMD_RESET_ENABLE, NULL, 0);
+ if (ret) {
+ printf("SF: Failed issue enable reset command\n");
+ return ret;
+ }
+
+ ret = spi_flash_cmd(spi, CMD_RESET_MEMORY, NULL, 0);
+ if (ret) {
+ printf("SF: Failed issue reset command\n");
+ return ret;
+ }
+
+ printf("SF: Device software reset\n");
+ }
+
/* Configure the BAR - discover bank cmds and read current bank */
#ifdef CONFIG_SPI_FLASH_BAR
u8 curr_bank = 0;
@@ -369,7 +394,7 @@ int spi_flash_probe_slave(struct spi_slave *spi, struct spi_flash *flash)
((flash->dual_flash > SF_SINGLE_FLASH) &&
(flash->size > SPI_FLASH_16MB_BOUN << 1))) {
puts("SF: Warning - Only lower 16MiB accessible,");
- puts(" Full access #define CONFIG_SPI_FLASH_BAR\n");
+ puts(" For full access, #define CONFIG_SPI_FLASH_BAR\n");
}
#endif
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2015-05-15 8:47 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-01 15:13 [U-Boot] [PATCH 0/2 v3] arm: socfpga: Add Cadence QSPI support Stefan Roese
2014-10-01 15:13 ` [U-Boot] [PATCH 1/4 v3] spi: Add Cadence QSPI driver used by SoCFPGA Stefan Roese
2014-10-01 15:13 ` [U-Boot] [PATCH 2/4 v3] arm: socfpga: Add Cadence QSPI support to config header Stefan Roese
2014-10-01 15:13 ` [U-Boot] [PATCH 3/4 v3] arm: socfpga: Don't define CONFIG_SPI_FLASH_QUAD Stefan Roese
2014-10-01 15:13 ` [U-Boot] [RFC PATCH 4/4 v3] mtd: sf: Add CONFIG_SPI_N25Q256A_RESET for software-reset Stefan Roese
2014-10-01 18:25 ` Marek Vasut
2014-10-01 18:57 ` Stefan Roese
2014-10-01 19:04 ` Jagan Teki
2014-10-01 19:25 ` Stefan Roese
2014-10-01 23:07 ` Pavel Machek
2014-10-02 6:13 ` Stefan Roese
2014-10-02 2:47 ` Marek Vasut
2014-10-02 8:40 ` Pavel Machek
2014-10-02 11:23 ` Marek Vasut
2015-04-25 19:48 ` Pavel Machek
2015-04-27 16:35 ` Marek Vasut
2015-05-01 9:01 ` [U-Boot] [PATCH] " Pavel Machek
2015-05-01 14:24 ` Marek Vasut
2015-05-01 14:49 ` Pavel Machek
2015-05-01 17:26 ` Marek Vasut
2015-05-10 9:07 ` Pavel Machek
2015-05-10 9:15 ` [U-Boot] [PATCHv2] " Pavel Machek
2015-05-10 9:48 ` Marek Vasut
2015-05-10 10:49 ` [U-Boot] [PATCHv3] " Pavel Machek
2015-05-10 12:24 ` Jagan Teki
2015-05-10 16:25 ` Marek Vasut
2015-05-10 17:43 ` Pavel Machek
2015-05-11 7:47 ` Marek Vasut
2015-05-10 17:53 ` Pavel Machek
2015-05-11 7:48 ` Marek Vasut
2015-05-11 8:05 ` Jagan Teki
2015-05-11 8:29 ` Pavel Machek
2015-05-11 8:33 ` Jagan Teki
2015-05-11 8:39 ` Pavel Machek
2015-05-11 8:44 ` Jagan Teki
2015-05-11 8:50 ` Pavel Machek
2015-05-11 9:05 ` Jagan Teki
2015-05-11 9:56 ` Pavel Machek
2015-05-11 10:03 ` Jagan Teki
2015-05-15 8:47 ` Pavel Machek [this message]
2015-05-15 9:36 ` Marek Vasut
2015-05-15 9:55 ` Pavel Machek
2015-05-10 9:48 ` [U-Boot] [PATCH] " Marek Vasut
2015-04-25 19:44 ` [U-Boot] [RFC PATCH 4/4 v3] " Pavel Machek
2014-10-01 18:43 ` Jagan Teki
2014-10-03 20:58 ` [U-Boot] [PATCH 0/2 v3] arm: socfpga: Add Cadence QSPI support Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150515084746.GA26883@amd \
--to=pavel@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox