GPMI-NAND: Define ecc.strength
Subsystems (2)
PATCH v2 1/1 GPMI-NAND: Define ecc.strength
The ecc.strength wasn't set, resulting in the following crash:
[ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347! [ 2.550000] Internal error: Oops - BUG: 0 [#1] ARM [ 2.550000] Modules linked in: [ 2.550000] CPU: 0 Not tainted (3.4.0-rc7-next-20120518-dirty #1211) [ 2.550000] PC is at nand_scan_tail+0x328/0x650 [ 2.550000] LR is at nand_scan_tail+0x328/0x650 [ 2.550000] pc : [<c020841c>] lr : [<c020841c>] psr: 20000013 [ 2.550000] sp : c7443ea8 ip : c7448000 fp : c043dc70 [ 2.550000] r10: 00000000 r9 : c059dd20 r8 : c7526300 [ 2.550000] r7 : 00000001 r6 : c7479c08 r5 : c7526300 r4 : c7526098 [ 2.550000] r3 : c7448000 r2 : 00000000 r1 : 00000001 r0 : 00000034 [ 2.550000] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 2.550000] Control: 0005317f Table: 40004000 DAC: 00000017 [ 2.550000] Process swapper (pid: 1, stack limit = 0xc7442270) [ 2.550000] Stack: (0xc7443ea8 to 0xc7444000) [ 2.550000] 3ea0: c7526000 00000000 c7479c08 c02f68e0 c03d50ec c7526000 [ 2.550000] 3ec0: c747c6e0 00000000 c0ae7720 00000004 00000000 00000000 c7479c08 c0ae7720 [ 2.550000] 3ee0: c7479c3c c0593e20 c7572200 c01f6618 c01f6604 c01f55b0 c7479c08 c0593e20 [ 2.550000] 3f00: c7479c3c c059dd20 c7572200 c01f57cc 00000000 c0593e20 c01f5738 c01f3d40 [ 2.550000] 3f20: c74038a8 c74767d0 c0593e20 c04475ec c05901b8 c01f4e18 c03d50e0 c019d438 [ 2.550000] 3f40: c7403800 c0593e20 c04475ec 00000000 c059dd20 c04475f8 c7442000 c01f5a70 [ 2.550000] 3f60: 00000000 c044e98c c04475ec 00000000 c059dd20 c04475f8 c7442000 c043dc7c [ 2.550000] 3f80: c044e98c c0008824 c03d6c30 c040c4e4 00000006 00000006 c03b0ce4 c0bf54e0 [ 2.550000] 3fa0: c044e98c c04475ec 00000006 c04475f8 0000004c c042a21c 00000000 c042a8b8 [ 2.550000] 3fc0: 00000006 00000006 c042a21c 00000000 00000000 00000000 00000000 c042a7bc [ 2.550000] 3fe0: c000fab4 00000013 00000000 00000000 00000000 c000fab4 efbbfaa5 eaeafefe [ 2.550000] [<c020841c>] (nand_scan_tail+0x328/0x650) from [<c02f68e0>] (gpmi_nand_probe+0x43c/0x5a4) [ 2.550000] [<c02f68e0>] (gpmi_nand_probe+0x43c/0x5a4) from [<c01f6618>] (platform_drv_probe+0x14/0x18) [ 2.550000] [<c01f6618>] (platform_drv_probe+0x14/0x18) from [<c01f55b0>] (driver_probe_device+0x74/0x1fc) [ 2.550000] [<c01f55b0>] (driver_probe_device+0x74/0x1fc) from [<c01f57cc>] (__driver_attach+0x94/0x98) [ 2.550000] [<c01f57cc>] (__driver_attach+0x94/0x98) from [<c01f3d40>] (bus_for_each_dev+0x50/0x80) [ 2.550000] [<c01f3d40>] (bus_for_each_dev+0x50/0x80) from [<c01f4e18>] (bus_add_driver+0x188/0x25c) [ 2.550000] [<c01f4e18>] (bus_add_driver+0x188/0x25c) from [<c01f5a70>] (driver_register+0x78/0x138) [ 2.550000] [<c01f5a70>] (driver_register+0x78/0x138) from [<c043dc7c>] (gpmi_nand_init+0xc/0x30) [ 2.550000] [<c043dc7c>] (gpmi_nand_init+0xc/0x30) from [<c0008824>] (do_one_initcall+0x108/0x17c) [ 2.550000] [<c0008824>] (do_one_initcall+0x108/0x17c) from [<c042a8b8>] (kernel_init+0xfc/0x1bc) [ 2.550000] [<c042a8b8>] (kernel_init+0xfc/0x1bc) from [<c000fab4>] (kernel_thread_exit+0x0/0x8) [ 2.550000] Code: e3530000 1affff76 e59f02d0 eb03c16a (e7f001f2) [ 2.830000] ---[ end trace 3f05d4c0039432f1 ]--- [ 2.840000] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
--- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 5 +++++ 1 file changed, 5 insertions(+)
V2: Also configure mtd.ecc_strength
drivers/mtd/nand/gpmi-nand/gpmi-nand.c +5 -0
@@ -1436,6 +1436,10 @@ static int gpmi_pre_bbt_scan(struct gpmi_nand_data *this)if (ret)return ret; +/* Adjust the ECC strength according to the chip. */ + this->nand.ecc.strength = this->bch_geometry.ecc_strength; + this->mtd.ecc_strength = this->bch_geometry.ecc_strength; +/* NAND boot init, depends on the gpmi_set_geometry(). */ return nand_boot_init (this); }
@@ -1494,6 +1498,7 @@ static int __devinit gpmi_nfc_init(struct gpmi_nand_data *this) chip->options |=NAND_NO_SUBPAGE_WRITE ; chip->ecc.mode =NAND_ECC_HW ; chip->ecc.size =1 ; + chip->ecc.strength =8 ; chip->ecc.layout = &gpmi_hw_ecclayout;/* Allocate a temporary DMA buffer for reading ID in the nand_scan() */
Signature · 1 line
1.7.10
PATCH v2 1/1 GPMI-NAND: Define ecc.strength
? 2012?05?22? 04:59, Marek Vasut ??:
Quoted 71 lines
The ecc.strength wasn't set, resulting in the following crash:
[ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347! [ 2.550000] Internal error: Oops - BUG: 0 [#1] ARM [ 2.550000] Modules linked in: [ 2.550000] CPU: 0 Not tainted (3.4.0-rc7-next-20120518-dirty #1211) [ 2.550000] PC is at nand_scan_tail+0x328/0x650 [ 2.550000] LR is at nand_scan_tail+0x328/0x650 [ 2.550000] pc : [<c020841c>] lr : [<c020841c>] psr: 20000013 [ 2.550000] sp : c7443ea8 ip : c7448000 fp : c043dc70 [ 2.550000] r10: 00000000 r9 : c059dd20 r8 : c7526300 [ 2.550000] r7 : 00000001 r6 : c7479c08 r5 : c7526300 r4 : c7526098 [ 2.550000] r3 : c7448000 r2 : 00000000 r1 : 00000001 r0 : 00000034 [ 2.550000] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 2.550000] Control: 0005317f Table: 40004000 DAC: 00000017 [ 2.550000] Process swapper (pid: 1, stack limit = 0xc7442270) [ 2.550000] Stack: (0xc7443ea8 to 0xc7444000) [ 2.550000] 3ea0: c7526000 00000000 c7479c08 c02f68e0 c03d50ec c7526000 [ 2.550000] 3ec0: c747c6e0 00000000 c0ae7720 00000004 00000000 00000000 c7479c08 c0ae7720 [ 2.550000] 3ee0: c7479c3c c0593e20 c7572200 c01f6618 c01f6604 c01f55b0 c7479c08 c0593e20 [ 2.550000] 3f00: c7479c3c c059dd20 c7572200 c01f57cc 00000000 c0593e20 c01f5738 c01f3d40 [ 2.550000] 3f20: c74038a8 c74767d0 c0593e20 c04475ec c05901b8 c01f4e18 c03d50e0 c019d438 [ 2.550000] 3f40: c7403800 c0593e20 c04475ec 00000000 c059dd20 c04475f8 c7442000 c01f5a70 [ 2.550000] 3f60: 00000000 c044e98c c04475ec 00000000 c059dd20 c04475f8 c7442000 c043dc7c [ 2.550000] 3f80: c044e98c c0008824 c03d6c30 c040c4e4 00000006 00000006 c03b0ce4 c0bf54e0 [ 2.550000] 3fa0: c044e98c c04475ec 00000006 c04475f8 0000004c c042a21c 00000000 c042a8b8 [ 2.550000] 3fc0: 00000006 00000006 c042a21c 00000000 00000000 00000000 00000000 c042a7bc [ 2.550000] 3fe0: c000fab4 00000013 00000000 00000000 00000000 c000fab4 efbbfaa5 eaeafefe [ 2.550000] [<c020841c>] (nand_scan_tail+0x328/0x650) from [<c02f68e0>] (gpmi_nand_probe+0x43c/0x5a4) [ 2.550000] [<c02f68e0>] (gpmi_nand_probe+0x43c/0x5a4) from [<c01f6618>] (platform_drv_probe+0x14/0x18) [ 2.550000] [<c01f6618>] (platform_drv_probe+0x14/0x18) from [<c01f55b0>] (driver_probe_device+0x74/0x1fc) [ 2.550000] [<c01f55b0>] (driver_probe_device+0x74/0x1fc) from [<c01f57cc>] (__driver_attach+0x94/0x98) [ 2.550000] [<c01f57cc>] (__driver_attach+0x94/0x98) from [<c01f3d40>] (bus_for_each_dev+0x50/0x80) [ 2.550000] [<c01f3d40>] (bus_for_each_dev+0x50/0x80) from [<c01f4e18>] (bus_add_driver+0x188/0x25c) [ 2.550000] [<c01f4e18>] (bus_add_driver+0x188/0x25c) from [<c01f5a70>] (driver_register+0x78/0x138) [ 2.550000] [<c01f5a70>] (driver_register+0x78/0x138) from [<c043dc7c>] (gpmi_nand_init+0xc/0x30) [ 2.550000] [<c043dc7c>] (gpmi_nand_init+0xc/0x30) from [<c0008824>] (do_one_initcall+0x108/0x17c) [ 2.550000] [<c0008824>] (do_one_initcall+0x108/0x17c) from [<c042a8b8>] (kernel_init+0xfc/0x1bc) [ 2.550000] [<c042a8b8>] (kernel_init+0xfc/0x1bc) from [<c000fab4>] (kernel_thread_exit+0x0/0x8) [ 2.550000] Code: e3530000 1affff76 e59f02d0 eb03c16a (e7f001f2) [ 2.830000] ---[ end trace 3f05d4c0039432f1 ]--- [ 2.840000] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000bSigned-off-by Marek Vasut <[email protected]>Cc Huang Shijie <[email protected]>Cc Shawn Guo <[email protected]>Cc Fabio Estevam <[email protected]>Cc linux-mtd at lists.infradead.orgCc Artem Bityutskiy <[email protected]>--- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 5 +++++ 1 file changed, 5 insertions(+)V2: Also configure mtd.ecc_strength
drivers/mtd/nand/gpmi-nand/gpmi-nand.c +4
-0@@ -1436,6 +1436,10 @@ static int gpmi_pre_bbt_scan(struct gpmi_nand_data *this)if (ret)return ret; +/* Adjust the ECC strength according to the chip. */ + this->nand.ecc.strength = this->bch_geometry.ecc_strength; + this->mtd.ecc_strength = this->bch_geometry.ecc_strength; +/* NAND boot init, depends on the gpmi_set_geometry(). */ return nand_boot_init (this); }
drivers/mtd/nand/gpmi-nand/gpmi-nand.c static int __devinit gpmi_nfc_init(struct gpmi_nand_data *this) · line 1504
Quoted 7 lines
drivers/mtd/nand/gpmi-nand/gpmi-nand.c +1
-0@@ -1494,6 +1498,7 @@ static int __devinit gpmi_nfc_init(struct gpmi_nand_data *this) chip->options |=NAND_NO_SUBPAGE_WRITE ; chip->ecc.mode =NAND_ECC_HW ; chip->ecc.size =1 ; + chip->ecc.strength =8 ; chip->ecc.layout = &gpmi_hw_ecclayout;/* Allocate a temporary DMA buffer for reading ID in the nand_scan() */
Artem Bityutskiy
AppliedPATCH v2 1/1 GPMI-NAND: Define ecc.strength
In reply to Marek VasutQuoted 3 lines · Marek Vasut
The ecc.strength wasn't set, resulting in the following crash:
[ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347! [ 2.550000] Internal error: Oops - BUG: 0 [#1] ARM
Pushed to l2-mtd.git, thanks!
Signature · 9 lines
Best Regards, Artem Bityutskiy -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120522/03e8cb1d/attachment.sig>
PATCH v2 1/1 GPMI-NAND: Define ecc.strength
Dear Artem Bityutskiy,
Quoted 6 lines · Marek Vasut
Quoted 3 lines
The ecc.strength wasn't set, resulting in the following crash:
[ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347! [ 2.550000] Internal error: Oops - BUG: 0 [#1] ARMPushed to l2-mtd.git, thanks!
Thank you!
Best regards,
Marek Vasut
PATCH v2 1/1 GPMI-NAND: Define ecc.strength
Quoted 10 lines · Marek Vasut
Dear Artem Bityutskiy,
Quoted 6 lines · Marek Vasut
Quoted 3 lines
The ecc.strength wasn't set, resulting in the following crash:
[ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347! [ 2.550000] Internal error: Oops - BUG: 0 [#1] ARMPushed to l2-mtd.git, thanks!
Thank you!
Yes, thanks much Marek. I must have missed this one while doing the EUCLEAN patches (maybe because it's in its own directory). Sorry to everyone for the confusion it caused.
Mike
PATCH v2 1/1 GPMI-NAND: Define ecc.strength
Dear Mike Dunn,
Quoted 8 lines · Marek Vasut
Quoted 7 lines
Dear Artem Bityutskiy,
Quoted 5 lines · Marek Vasut
Quoted 3 lines
The ecc.strength wasn't set, resulting in the following crash:
[ 2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347! [ 2.550000] Internal error: Oops - BUG: 0 [#1] ARM
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Pushed to l2-mtd.git, thanks!
Thank you!
Yes, thanks much Marek. I must have missed this one while doing the EUCLEAN patches (maybe because it's in its own directory). Sorry to everyone for the confusion it caused.
Mike, nice to see you became more involved with the MTD :-) How's the DoCG3/G4 thing turned out btw?
Quoted 1 line
Mike
Best regards,
Marek Vasut