diff mbox

[5/7] mtd: nand: Add Hynix H27UBG8T2BTR-BC to nand_ids table

Message ID 1465208664-9366-6-git-send-email-mamlinav@gmail.com
State Superseded
Headers show

Commit Message

Aleksei Mamlin June 6, 2016, 10:24 a.m. UTC
Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
nand_ids table so that we can later use the NAND ECC infos and ONFI timings
mode in controller drivers.

Signed-off-by: Aleksei Mamlin <mamlinav@gmail.com>
---
 drivers/mtd/nand/nand_ids.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Boris Brezillon June 6, 2016, 6:55 p.m. UTC | #1
On Mon,  6 Jun 2016 13:24:22 +0300
Aleksei Mamlin <mamlinav@gmail.com> wrote:

> Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
> nand_ids table so that we can later use the NAND ECC infos and ONFI timings
> mode in controller drivers.

Still hoping to get this series [1] merged in 4.8, but if that's
not the case, I'll apply your patch.

BTW, that would be great if you could test it on your platforms.

Regards,

Boris

[1]https://lkml.org/lkml/2016/5/27/264

> 
> Signed-off-by: Aleksei Mamlin <mamlinav@gmail.com>
> ---
>  drivers/mtd/nand/nand_ids.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
> index ccc05f5..ccdc773 100644
> --- a/drivers/mtd/nand/nand_ids.c
> +++ b/drivers/mtd/nand/nand_ids.c
> @@ -52,6 +52,10 @@ struct nand_flash_dev nand_flash_ids[] = {
>  		{ .id = {0xad, 0xde, 0x94, 0xda, 0x74, 0xc4} },
>  		  SZ_8K, SZ_8K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
>  		  NAND_ECC_INFO(40, SZ_1K), 4 },
> +	{"H27UBG8T2BTR-BC 32G 3.3V 8-bit",
> +		{ .id = {0xad, 0xd7, 0x94, 0xda, 0x74, 0xc3} },
> +		  SZ_8K, SZ_4K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
> +		  NAND_ECC_INFO(40, SZ_1K), 0 },
>  
>  	LEGACY_ID_NAND("NAND 4MiB 5V 8-bit",   0x6B, 4, SZ_8K, SP_OPTIONS),
>  	LEGACY_ID_NAND("NAND 4MiB 3,3V 8-bit", 0xE3, 4, SZ_8K, SP_OPTIONS),
Aleksei Mamlin June 6, 2016, 7:59 p.m. UTC | #2
On Mon, 6 Jun 2016 20:55:49 +0200
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:

> On Mon,  6 Jun 2016 13:24:22 +0300
> Aleksei Mamlin <mamlinav@gmail.com> wrote:
> 
> > Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
> > nand_ids table so that we can later use the NAND ECC infos and ONFI timings
> > mode in controller drivers.
> 
> Still hoping to get this series [1] merged in 4.8, but if that's
> not the case, I'll apply your patch.
> 
> BTW, that would be great if you could test it on your platforms.
> 

It seems that Hynix-specific initialization code can't handle H27UBG8T2BTR-BC
chip:

[    0.886153] nand: Could not find valid ONFI parameter page; aborting
[    0.892665] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
[    0.899025] nand: Hynix 1c03000.nand
[    0.902596] nand: bus width 8 instead 16 bit
[    0.906858] nand: No NAND device found
[    0.910620] sunxi_nand 1c03000.nand: failed to init nand chips
[    0.916528] sunxi_nand: probe of 1c03000.nand failed with error -22

> 
> Regards,
> 
> Boris
> 
> [1]https://lkml.org/lkml/2016/5/27/264
> 
> > 
> > Signed-off-by: Aleksei Mamlin <mamlinav@gmail.com>
> > ---
> >  drivers/mtd/nand/nand_ids.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
> > index ccc05f5..ccdc773 100644
> > --- a/drivers/mtd/nand/nand_ids.c
> > +++ b/drivers/mtd/nand/nand_ids.c
> > @@ -52,6 +52,10 @@ struct nand_flash_dev nand_flash_ids[] = {
> >  		{ .id = {0xad, 0xde, 0x94, 0xda, 0x74, 0xc4} },
> >  		  SZ_8K, SZ_8K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
> >  		  NAND_ECC_INFO(40, SZ_1K), 4 },
> > +	{"H27UBG8T2BTR-BC 32G 3.3V 8-bit",
> > +		{ .id = {0xad, 0xd7, 0x94, 0xda, 0x74, 0xc3} },
> > +		  SZ_8K, SZ_4K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
> > +		  NAND_ECC_INFO(40, SZ_1K), 0 },
> >  
> >  	LEGACY_ID_NAND("NAND 4MiB 5V 8-bit",   0x6B, 4, SZ_8K, SP_OPTIONS),
> >  	LEGACY_ID_NAND("NAND 4MiB 3,3V 8-bit", 0xE3, 4, SZ_8K, SP_OPTIONS),
> 
> 
> 
> -- 
> Boris Brezillon, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
Boris Brezillon June 6, 2016, 8:31 p.m. UTC | #3
On Mon, 6 Jun 2016 22:59:03 +0300
Aleksei Mamlin <mamlinav@gmail.com> wrote:

> On Mon, 6 Jun 2016 20:55:49 +0200
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> 
> > On Mon,  6 Jun 2016 13:24:22 +0300
> > Aleksei Mamlin <mamlinav@gmail.com> wrote:
> >   
> > > Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
> > > nand_ids table so that we can later use the NAND ECC infos and ONFI timings
> > > mode in controller drivers.  
> > 
> > Still hoping to get this series [1] merged in 4.8, but if that's
> > not the case, I'll apply your patch.
> > 
> > BTW, that would be great if you could test it on your platforms.
> >   
> 
> It seems that Hynix-specific initialization code can't handle H27UBG8T2BTR-BC
> chip:
> 
> [    0.886153] nand: Could not find valid ONFI parameter page; aborting
> [    0.892665] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
> [    0.899025] nand: Hynix 1c03000.nand
> [    0.902596] nand: bus width 8 instead 16 bit
> [    0.906858] nand: No NAND device found
> [    0.910620] sunxi_nand 1c03000.nand: failed to init nand chips
> [    0.916528] sunxi_nand: probe of 1c03000.nand failed with error -22

Can you try this patch? It should fix the problem [1].

[1]http://code.bulix.org/6hjww1-100494
Aleksei Mamlin June 6, 2016, 9:06 p.m. UTC | #4
On Mon, 6 Jun 2016 22:31:38 +0200
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:

> On Mon, 6 Jun 2016 22:59:03 +0300
> Aleksei Mamlin <mamlinav@gmail.com> wrote:
> 
> > On Mon, 6 Jun 2016 20:55:49 +0200
> > Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> > 
> > > On Mon,  6 Jun 2016 13:24:22 +0300
> > > Aleksei Mamlin <mamlinav@gmail.com> wrote:
> > >   
> > > > Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
> > > > nand_ids table so that we can later use the NAND ECC infos and ONFI timings
> > > > mode in controller drivers.  
> > > 
> > > Still hoping to get this series [1] merged in 4.8, but if that's
> > > not the case, I'll apply your patch.
> > > 
> > > BTW, that would be great if you could test it on your platforms.
> > >   
> > 
> > It seems that Hynix-specific initialization code can't handle H27UBG8T2BTR-BC
> > chip:
> > 
> > [    0.886153] nand: Could not find valid ONFI parameter page; aborting
> > [    0.892665] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
> > [    0.899025] nand: Hynix 1c03000.nand
> > [    0.902596] nand: bus width 8 instead 16 bit
> > [    0.906858] nand: No NAND device found
> > [    0.910620] sunxi_nand 1c03000.nand: failed to init nand chips
> > [    0.916528] sunxi_nand: probe of 1c03000.nand failed with error -22
> 
> Can you try this patch? It should fix the problem [1].
> 
> [1]http://code.bulix.org/6hjww1-100494
> 

Yes, it fixes problem. What about ONFI parameter page? Should it be ignored?
[    0.886068] nand: Could not find valid ONFI parameter page; aborting
[    0.892571] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
[    0.898917] nand: Hynix NAND 4GiB 3,3V 8-bit
[    0.903198] nand: 4096 MiB, MLC, erase size: 2048 KiB, page size: 8192, OOB size: 640
[    0.911908] Bad block table found at page 524032, version 0x01
[    0.918534] Bad block table found at page 523776, version 0x01
[    0.972112] 5 ofpart partitions found on MTD device 1c03000.nand
[    0.978116] Creating 5 MTD partitions on "1c03000.nand":
[    0.983477] 0x000000000000-0x000000200000 : "boot0"
[    0.988803] 0x000000200000-0x000000400000 : "boot0-rescue"
[    0.994692] 0x000000400000-0x000000600000 : "uboot"
[    0.999944] 0x000000600000-0x000000800000 : "uboot-rescue"
[    1.005763] 0x000000800000-0x000100000000 : "main"

> 
> -- 
> Boris Brezillon, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
Boris Brezillon June 7, 2016, 5:48 a.m. UTC | #5
On Tue, 7 Jun 2016 00:06:45 +0300
Aleksei Mamlin <mamlinav@gmail.com> wrote:

> On Mon, 6 Jun 2016 22:31:38 +0200
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> 
> > On Mon, 6 Jun 2016 22:59:03 +0300
> > Aleksei Mamlin <mamlinav@gmail.com> wrote:
> >   
> > > On Mon, 6 Jun 2016 20:55:49 +0200
> > > Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> > >   
> > > > On Mon,  6 Jun 2016 13:24:22 +0300
> > > > Aleksei Mamlin <mamlinav@gmail.com> wrote:
> > > >     
> > > > > Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
> > > > > nand_ids table so that we can later use the NAND ECC infos and ONFI timings
> > > > > mode in controller drivers.    
> > > > 
> > > > Still hoping to get this series [1] merged in 4.8, but if that's
> > > > not the case, I'll apply your patch.
> > > > 
> > > > BTW, that would be great if you could test it on your platforms.
> > > >     
> > > 
> > > It seems that Hynix-specific initialization code can't handle H27UBG8T2BTR-BC
> > > chip:
> > > 
> > > [    0.886153] nand: Could not find valid ONFI parameter page; aborting
> > > [    0.892665] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
> > > [    0.899025] nand: Hynix 1c03000.nand
> > > [    0.902596] nand: bus width 8 instead 16 bit
> > > [    0.906858] nand: No NAND device found
> > > [    0.910620] sunxi_nand 1c03000.nand: failed to init nand chips
> > > [    0.916528] sunxi_nand: probe of 1c03000.nand failed with error -22  
> > 
> > Can you try this patch? It should fix the problem [1].
> > 
> > [1]http://code.bulix.org/6hjww1-100494
> >   
> 
> Yes, it fixes problem. What about ONFI parameter page? Should it be ignored?

It should be ignored: your NAND is not 'ONFI compatible', the datasheet
just says that it supports the' ONFI command set', which is not the
same :).
The trace you're seeing here is just notifying that the core failed to
detect an ONFI NAND, which is expected in your case.

> [    0.886068] nand: Could not find valid ONFI parameter page; aborting
> [    0.892571] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
> [    0.898917] nand: Hynix NAND 4GiB 3,3V 8-bit
> [    0.903198] nand: 4096 MiB, MLC, erase size: 2048 KiB, page size: 8192, OOB size: 640
> [    0.911908] Bad block table found at page 524032, version 0x01
> [    0.918534] Bad block table found at page 523776, version 0x01
> [    0.972112] 5 ofpart partitions found on MTD device 1c03000.nand
> [    0.978116] Creating 5 MTD partitions on "1c03000.nand":
> [    0.983477] 0x000000000000-0x000000200000 : "boot0"
> [    0.988803] 0x000000200000-0x000000400000 : "boot0-rescue"
> [    0.994692] 0x000000400000-0x000000600000 : "uboot"
> [    0.999944] 0x000000600000-0x000000800000 : "uboot-rescue"
> [    1.005763] 0x000000800000-0x000100000000 : "main"
> 
> > 
> > -- 
> > Boris Brezillon, Free Electrons
> > Embedded Linux and Kernel engineering
> > http://free-electrons.com  
> 
>
Boris Brezillon June 7, 2016, 5:49 a.m. UTC | #6
On Mon, 6 Jun 2016 22:31:38 +0200
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:

> On Mon, 6 Jun 2016 22:59:03 +0300
> Aleksei Mamlin <mamlinav@gmail.com> wrote:
> 
> > On Mon, 6 Jun 2016 20:55:49 +0200
> > Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> >   
> > > On Mon,  6 Jun 2016 13:24:22 +0300
> > > Aleksei Mamlin <mamlinav@gmail.com> wrote:
> > >     
> > > > Add the full description of the Hynix H27UBG8T2BTR-BC NAND chip in the
> > > > nand_ids table so that we can later use the NAND ECC infos and ONFI timings
> > > > mode in controller drivers.    
> > > 
> > > Still hoping to get this series [1] merged in 4.8, but if that's
> > > not the case, I'll apply your patch.
> > > 
> > > BTW, that would be great if you could test it on your platforms.
> > >     
> > 
> > It seems that Hynix-specific initialization code can't handle H27UBG8T2BTR-BC
> > chip:
> > 
> > [    0.886153] nand: Could not find valid ONFI parameter page; aborting
> > [    0.892665] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xd7
> > [    0.899025] nand: Hynix 1c03000.nand
> > [    0.902596] nand: bus width 8 instead 16 bit
> > [    0.906858] nand: No NAND device found
> > [    0.910620] sunxi_nand 1c03000.nand: failed to init nand chips
> > [    0.916528] sunxi_nand: probe of 1c03000.nand failed with error -22  
> 
> Can you try this patch? It should fix the problem [1].

Brian, I have a question regarding the extended NAND ids (not full-ids)
defined in the nand_ids table. Are they really valid for all vendors?

If that's the case, why are we extracting the bus width from the id[3]
since we already have this information in the options field?

> 
> [1]http://code.bulix.org/6hjww1-100494
> 
>
diff mbox

Patch

diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
index ccc05f5..ccdc773 100644
--- a/drivers/mtd/nand/nand_ids.c
+++ b/drivers/mtd/nand/nand_ids.c
@@ -52,6 +52,10 @@  struct nand_flash_dev nand_flash_ids[] = {
 		{ .id = {0xad, 0xde, 0x94, 0xda, 0x74, 0xc4} },
 		  SZ_8K, SZ_8K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
 		  NAND_ECC_INFO(40, SZ_1K), 4 },
+	{"H27UBG8T2BTR-BC 32G 3.3V 8-bit",
+		{ .id = {0xad, 0xd7, 0x94, 0xda, 0x74, 0xc3} },
+		  SZ_8K, SZ_4K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
+		  NAND_ECC_INFO(40, SZ_1K), 0 },
 
 	LEGACY_ID_NAND("NAND 4MiB 5V 8-bit",   0x6B, 4, SZ_8K, SP_OPTIONS),
 	LEGACY_ID_NAND("NAND 4MiB 3,3V 8-bit", 0xE3, 4, SZ_8K, SP_OPTIONS),