mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-25 16:13:05 +00:00
Revert "generic: 5.4: Add 4B_OPCODES flag to w25q256"
This reverts commit d7f21940bc
.
Winbond W25Q256FV and W25Q256JV both uses 0xef4019 as JEDEC ID,
but only the latter has proper 4B_OPCODES support.
W25Q256FV has all 4B read instructions but it lacks a 4B page program
instruction, causing the entire flash to be read-only.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
This commit is contained in:
parent
d24e43a7f6
commit
f0f35fdac1
@ -1,27 +0,0 @@
|
||||
From 10050a02f7d508fa88f70fcfceefbacd13488ca7 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Marko <robimarko@gmail.com>
|
||||
Date: Mon, 23 Dec 2019 17:05:49 +0200
|
||||
Subject: [PATCH] mtd: spi-nor: Add 4B_OPCODES flag to w25q256
|
||||
|
||||
The w25q256 supports 4-byte opcodes so lets add the flag.
|
||||
Tested on OpenWrt under 4.19.82 kernel on 8devices Habanero.
|
||||
|
||||
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
|
||||
---
|
||||
drivers/mtd/spi-nor/spi-nor.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -2480,7 +2480,9 @@ static const struct flash_info spi_nor_i
|
||||
{ "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) },
|
||||
{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K) },
|
||||
{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
|
||||
- { "w25q256", INFO(0xef4019, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
+ { "w25q256", INFO(0xef4019, 0, 64 * 1024, 512,
|
||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
+ SPI_NOR_4B_OPCODES) },
|
||||
{ "w25q256jvm", INFO(0xef7019, 0, 64 * 1024, 512,
|
||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024,
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -2706,7 +2706,7 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -2704,7 +2704,7 @@ static int spi_nor_write(struct mtd_info
|
||||
|
||||
write_enable(nor);
|
||||
ret = spi_nor_write_data(nor, addr, page_remain, buf + i);
|
||||
|
@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -4886,6 +4886,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -4884,6 +4884,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
*/
|
||||
if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL ||
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_INTEL ||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -4399,6 +4399,7 @@ static void st_micron_set_default_init(s
|
||||
@@ -4397,6 +4397,7 @@ static void st_micron_set_default_init(s
|
||||
|
||||
static void winbond_set_default_init(struct spi_nor *nor)
|
||||
{
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
nor->params.set_4byte = winbond_set_4byte;
|
||||
}
|
||||
|
||||
@@ -4888,6 +4889,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -4886,6 +4887,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_INTEL ||
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_MACRONIX ||
|
||||
JEDEC_MFR(nor->info) == SNOR_MFR_SST ||
|
||||
|
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
depends on OF && (ARM || ARM64 || COMPILE_TEST)
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -4466,6 +4466,7 @@ static void spi_nor_info_init_params(str
|
||||
@@ -4464,6 +4464,7 @@ static void spi_nor_info_init_params(str
|
||||
struct spi_nor_erase_map *map = ¶ms->erase_map;
|
||||
const struct flash_info *info = nor->info;
|
||||
struct device_node *np = spi_nor_get_flash_node(nor);
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
u8 i, erase_mask;
|
||||
|
||||
/* Initialize legacy flash parameters and settings. */
|
||||
@@ -4529,6 +4530,21 @@ static void spi_nor_info_init_params(str
|
||||
@@ -4527,6 +4528,21 @@ static void spi_nor_info_init_params(str
|
||||
*/
|
||||
erase_mask = 0;
|
||||
i = 0;
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (info->flags & SECT_4K_PMC) {
|
||||
erase_mask |= BIT(i);
|
||||
spi_nor_set_erase_type(&map->erase_type[i], 4096u,
|
||||
@@ -4540,6 +4556,7 @@ static void spi_nor_info_init_params(str
|
||||
@@ -4538,6 +4554,7 @@ static void spi_nor_info_init_params(str
|
||||
SPINOR_OP_BE_4K);
|
||||
i++;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -2506,6 +2506,9 @@ static const struct flash_info spi_nor_i
|
||||
@@ -2504,6 +2504,9 @@ static const struct flash_info spi_nor_i
|
||||
/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
|
||||
{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
|
Loading…
Reference in New Issue
Block a user