[PATCH 9/9] mtd: nand: detect Samsung K9GBG08U0A, K9GAG08U0F ID
Marek Vasut
marex at denx.de
Thu Oct 4 21:37:11 EDT 2012
Dear Brian Norris,
> Datasheets for the following Samsung NAND parts (both MLC and SLC) describe
> extensions to the Samsung 6-byte extended ID decoding table:
[...]
This breaks my board with K9F2G08 part:
[ 0.860000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND
256MiB 3,3V 8-bit), page size: 2048, OOB size: 64
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 7e93d0d..bcb58ce 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -2939,19 +2939,18 @@ static void nand_decode_ext_id(struct mtd_info
> *mtd, struct nand_chip *chip, /*
> * Field definitions are in the following datasheets:
> * Old style (4,5 byte ID): Samsung K9GAG08U0M (p.32)
> - * New style (6 byte ID): Samsung K9GBG08U0M (p.40)
> + * New style (6 byte ID): Samsung K9GAG08U0F (p.44)
> * Hynix MLC (6 byte ID): Hynix H27UBG8T2B (p.22)
> *
> * Check for ID length, cell type, and Hynix/Samsung ID to decide what
> * to do.
> */
> - if (id_len == 6 && id_data[0] == NAND_MFR_SAMSUNG &&
> - (chip->cellinfo & NAND_CI_CELLTYPE_MSK)) {
> + if (id_len == 6 && id_data[0] == NAND_MFR_SAMSUNG) {
[...]
I believe the above hunk is wrong, reverting it fixes the problem.
Best regards,
Marek Vasut
More information about the linux-mtd
mailing list