From 02050f7e7d5b41f80b138a2d5953e596fd8e0e6a Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Thu, 18 Jan 2018 22:13:09 +0100 Subject: [PATCH] kernel/4.{4, 9}: add manufacturer ID for Winbond NANDs Some MikroTik devices are using a Winbond NAND flash. Linux treats it as an unknown NAND before version 4.11: nand: device found, Manufacturer ID: 0xef, Chip ID: 0xf1 nand: Unknown NAND 128MiB 3,3V 8-bit nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 Backport a patch from 4.11 to show the manufacturer correctly: nand: device found, Manufacturer ID: 0xef, Chip ID: 0xf1 nand: Winbond NAND 128MiB 3,3V 8-bit nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 Tested on a MikroTik R951Ui-2HnD board. Signed-off-by: Gabor Juhos --- ...mtd-nand-Add-Winbond-manufacturer-id.patch | 34 +++++++++++++++++++ ...mtd-nand-Add-Winbond-manufacturer-id.patch | 34 +++++++++++++++++++ ...-to-use-platform-specific-chip-fixup.patch | 2 +- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 target/linux/generic/backport-4.9/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch create mode 100644 target/linux/generic/pending-4.4/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch diff --git a/target/linux/generic/backport-4.9/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch b/target/linux/generic/backport-4.9/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch new file mode 100644 index 0000000000..cbab378b2b --- /dev/null +++ b/target/linux/generic/backport-4.9/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch @@ -0,0 +1,34 @@ +From a4077ce5871304f8a78f80b74b18b6052a410f1a Mon Sep 17 00:00:00 2001 +From: "Andrey Jr. Melnikov" +Date: Thu, 8 Dec 2016 19:57:08 +0300 +Subject: [PATCH] mtd: nand: Add Winbond manufacturer id + +Add WINBOND manufacturer id. + +Signed-off-by: Andrey Jr. Melnikov +Signed-off-by: Boris Brezillon +--- + drivers/mtd/nand/nand_ids.c | 1 + + include/linux/mtd/nand.h | 1 + + 2 files changed, 2 insertions(+) + +--- a/drivers/mtd/nand/nand_ids.c ++++ b/drivers/mtd/nand/nand_ids.c +@@ -182,6 +182,7 @@ struct nand_manufacturers nand_manuf_ids + {NAND_MFR_SANDISK, "SanDisk"}, + {NAND_MFR_INTEL, "Intel"}, + {NAND_MFR_ATO, "ATO"}, ++ {NAND_MFR_WINBOND, "Winbond"}, + {0x0, "Unknown"} + }; + +--- a/include/linux/mtd/nand.h ++++ b/include/linux/mtd/nand.h +@@ -928,6 +928,7 @@ static inline void nand_set_controller_d + #define NAND_MFR_SANDISK 0x45 + #define NAND_MFR_INTEL 0x89 + #define NAND_MFR_ATO 0x9b ++#define NAND_MFR_WINBOND 0xef + + /* The maximum expected count of bytes in the NAND ID sequence */ + #define NAND_MAX_ID_LEN 8 diff --git a/target/linux/generic/pending-4.4/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch b/target/linux/generic/pending-4.4/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch new file mode 100644 index 0000000000..d102d89b20 --- /dev/null +++ b/target/linux/generic/pending-4.4/067-v4.11-mtd-nand-Add-Winbond-manufacturer-id.patch @@ -0,0 +1,34 @@ +From a4077ce5871304f8a78f80b74b18b6052a410f1a Mon Sep 17 00:00:00 2001 +From: "Andrey Jr. Melnikov" +Date: Thu, 8 Dec 2016 19:57:08 +0300 +Subject: [PATCH] mtd: nand: Add Winbond manufacturer id + +Add WINBOND manufacturer id. + +Signed-off-by: Andrey Jr. Melnikov +Signed-off-by: Boris Brezillon +--- + drivers/mtd/nand/nand_ids.c | 1 + + include/linux/mtd/nand.h | 1 + + 2 files changed, 2 insertions(+) + +--- a/drivers/mtd/nand/nand_ids.c ++++ b/drivers/mtd/nand/nand_ids.c +@@ -181,6 +181,7 @@ struct nand_manufacturers nand_manuf_ids + {NAND_MFR_SANDISK, "SanDisk"}, + {NAND_MFR_INTEL, "Intel"}, + {NAND_MFR_ATO, "ATO"}, ++ {NAND_MFR_WINBOND, "Winbond"}, + {0x0, "Unknown"} + }; + +--- a/include/linux/mtd/nand.h ++++ b/include/linux/mtd/nand.h +@@ -736,6 +736,7 @@ struct nand_chip { + #define NAND_MFR_SANDISK 0x45 + #define NAND_MFR_INTEL 0x89 + #define NAND_MFR_ATO 0x9b ++#define NAND_MFR_WINBOND 0xef + + /* The maximum expected count of bytes in the NAND ID sequence */ + #define NAND_MAX_ID_LEN 8 diff --git a/target/linux/generic/pending-4.4/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch b/target/linux/generic/pending-4.4/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch index 3ce7f13dc4..b1072047c3 100644 --- a/target/linux/generic/pending-4.4/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch +++ b/target/linux/generic/pending-4.4/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch @@ -5,7 +5,7 @@ --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h -@@ -863,6 +863,7 @@ struct platform_nand_chip { +@@ -864,6 +864,7 @@ struct platform_nand_chip { unsigned int options; unsigned int bbt_options; const char **part_probe_types; -- 2.30.2