All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: Miquel Raynal <miquel.raynal@bootlin.com>,
	mark.rutland@arm.com, devicetree@vger.kernel.org,
	jianxin.pan@amlogic.com, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, linux-mtd@lists.infradead.org,
	linux-amlogic@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH nand-next 0/2] meson-nand: support for older SoCs
Date: Sat, 16 Mar 2019 11:55:00 +0100	[thread overview]
Message-ID: <CAFBinCBd=dOZjv4KEDY9ODOONDO=WtaBqAMRi_a+gH3_iZEAHQ@mail.gmail.com> (raw)
In-Reply-To: <ccb95e75-e62f-c510-cabd-853481f77fc8@amlogic.com>

[-- Attachment #1: Type: text/plain, Size: 4989 bytes --]

Hi Liang,

On Tue, Mar 12, 2019 at 10:05 AM Liang Yang <liang.yang@amlogic.com> wrote:
>
> Hi Martin and Miquel,
>
> On 2019/3/7 21:09, Miquel Raynal wrote:
> > Hello,
> >
> > Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote on Tue,
> > 5 Mar 2019 23:12:51 +0100:
> >
> >> Hi Liang,
> >>
> >> On Mon, Mar 4, 2019 at 5:55 AM Liang Yang <liang.yang@amlogic.com> wrote:
> >>>
> >>> Hello Martin,
> >>>
> >>> On 2019/3/2 2:29, Martin Blumenstingl wrote:
> >>>> Hi Liang,
> >>>>
> >>>> I am trying to add support for older SoCs to the meson-nand driver.
> >>>> Back when the driver was in development I used an early revision (of
> >>>> your driver) and did some modifications to make it work on older SoCs.
> >>>>
> >>>> Now that the driver is upstream I wanted to give it another try and
> >>>> make a real patch out of it. Unfortunately it's not working anymore.
> >>>>
> >>>> As far as I know the NFC IP block revision on GXL is similar (or even
> >>>> the same?) as on all older SoCs. As far as I can tell only the clock
> >>>> setup is different on the older SoCs (which have a dedicated NAND
> >>>> clock):
> >>>> - we don't need the "amlogic,mmc-syscon" property on the older SoCs
> >>>>     because we don't need to setup any muxing (common clock framework
> >>>>     will do everything for us)
> >>>> - "rx" and "tx" clocks don't exist
> >>>> - I could not find any other differences between Meson8, Meson8b,
> >>>>     Meson8m2, GXBB and GXL
> >>>>
> >>> That is right. the serials NFC is almost the same except:
> >>> 1) The clock control and source that M8-serials are not share with EMMC.
> >>> 2) The base register address
> >>> 3) DMA encryption option which we don't care on NFC driver.
> >> great, thank you for confirming this!
> >>
> >>>> In this series I'm sending two patches which add support for the older
> >>>> SoCs.
> >>>>
> >>>> Unfortunately these patches are currently not working for me (hence the
> >>>> "RFC" prefix). I get a (strange) crash which is triggered by the
> >>>> kzalloc() in meson_nfc_read_buf() - see below for more details.
> >>>>
> >>>> Can you please help me on this one? I'd like to know whether:
> >>>> - the meson-nand driver works for you on GXL or AXG on linux-next?
> >>>>     (I was running these patches on top of next-20190301 on my M8S
> >>>>     board which uses a 32-bit Meson8m2 SoC. I don't have any board using
> >>>>     a GXL SoC which also has NAND)
> >>> Yes, it works on AXG platform using a MXIC slc nand flash(MX30LF4G); but
> >>> i an not sure it runs the same flow with yours. because i see the print
> >>> "Counld not find a valid ONFI parameter page, ...." in yours. i will try
> >>> to reproduce it on AXG(i don't have a M8 platform now).
> >> I'm looking forward to hear about the test results on your AXG boards
> >> for reference: my board has a SK Hynix H27UCG8T2B (ID bytes: 0xad 0xde
> >> 0x94 0xeb 0x74 0x44, 20nm MLC)
> >> I have another board (where I haven't tested the NFC driver yet) with
> >> a SK Hynix H27UCG8T2E (ID bytes: 0xad 0xde 0x14 0xa7 0x42 0x4a, 1Ynm
> >> MLC). if it helps with your analysis I can test on that board as well
> >
> > Liang, you just have to fake the output of the ONFI page detection and
> > you will probably run into this error which will then be easy to
> > reproduce.
> >
> i don't reproduce it by using a SK Hynix nand flash H27UCG8T2E on gxl
> platform. it runs well.
> [......]
> [    0.977127] loop: module loaded
> [    0.998625] Could not find a valid ONFI parameter page, trying
> bit-wise majority to recover it
> [    1.001619] ONFI parameter recovery failed, aborting
> [    1.006684] Could not find valid JEDEC parameter page; aborting
> [    1.012391] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xde
> [    1.018660] nand: Hynix NAND 8GiB 3,3V 8-bit
> [    1.022885] nand: 8192 MiB, MLC, erase size: 4096 KiB, page size:
> 16384, OOB size: 1664
> [    1.047033] Bad block table not found for chip 0
> [    1.054950] Bad block table not found for chip 0
> [    1.054970] Scanning device for bad blocks
> [    1.522664] random: fast init done
> [    4.893731] Bad eraseblock 1985 at 0x0001f07fc000
> [    5.020637] Bad block table written to 0x0001ffc00000, version 0x01
> [    5.028258] Bad block table written to 0x0001ff800000, version 0x01
> [    5.029905] 5 fixed-partitions partitions found on MTD device
> d0074800.nfc
> [    5.035714] Creating 5 MTD partitions on "d0074800.nfc":
> [......]
>
> Martin, Now i am not sure whether NFC driver leads to kernel panic when
> calling kmem_cache_alloc_trace.
thank you for confirming that it works for you on GXL

I'm not sure that this is a NFC driver problem.
after enabling CONFIG_SLAB_FREELIST_HARDENED in my kernel config the
crash moves. it's now crashing in slub.c's kfree() at
BUG_ON(!PageCompound(page));

maybe this is related to some difference in 32-bit ARM and arm64
or it could even be some memory management issue
I'm not sure yet so I'll try to dig deeper


Regards
Martin

[-- Attachment #2: meson-nfc-32bit-crash.txt --]
[-- Type: text/plain, Size: 6059 bytes --]

[    2.080461] Could not find a valid ONFI parameter page, trying bit-wise majority to recover it
[    2.084140] ONFI parameter recovery failed, aborting
[    2.089154] ------------[ cut here ]------------
[    2.093631] kernel BUG at mm/slub.c:3950!
[    2.097619] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[    2.103427] Modules linked in:
[    2.106464] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.0.0-11944-g4479fa4728e9-dirty #4196
[    2.114781] Hardware name: Amlogic Meson platform
[    2.119470] PC is at kfree+0x298/0x2c4
[    2.123195] LR is at meson_nfc_exec_op+0x34c/0x3e8
[    2.127958] pc : [<c048e9b4>]    lr : [<c08c2108>]    psr: 40000013
[    2.134199] sp : c02afc60  ip : eafd9000  fp : e9e36e40
[    2.139400] r10: 00000002  r9 : e9d6c048  r8 : ee36434b
[    2.144601] r7 : eb59fc80  r6 : ee36434b  r5 : c08c2108  r4 : c02afd18
[    2.151102] r3 : eb59fc84  r2 : c12089c0  r1 : ee364340  r0 : ee36434b
[    2.157605] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    2.164712] Control: 10c5387d  Table: 0020404a  DAC: 00000051
[    2.170433] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[    2.176413] Stack: (0xc02afc60 to 0xc02b0000)
[    2.180752] fc60: ee36434b c08c0c74 00000000 c02afd18 00000028 e9e92680 c02afcf0 ee36434b
[    2.188899] fc80: e9d6c048 c08c2108 00000008 00000002 10624dd3 c02afce4 10624dd3 00000005
[    2.197047] fca0: e9e36e40 c0f67310 00220005 c0f152e8 00000005 e9d6c048 00000005 c02afd57
[    2.205195] fcc0: c1108c88 e9e36e40 c02afcf0 e9d6c428 e9d6c3b0 c08adb18 00000000 40000000
[    2.213343] fce0: c02afce8 00000000 c02afcf0 00000003 00000000 00000090 00000000 00000000
[    2.221491] fd00: 00000000 00000001 00000001 c02afcdf 00000000 00000190 00000002 00000005
[    2.229639] fd20: c02afd57 00000001 00000000 5b1da8e9 00000000 c1108c88 c11812f0 e9d6c3c0
[    2.237787] fd40: 00000001 000000de 00000000 c08b89d4 c0f14704 00d6c3c0 00000000 5b1da8e9
[    2.245936] fd60: 00000015 e9d6c048 c1108c88 c08b8d30 e9d6c048 c08b4174 00000000 60000013
[    2.254084] fd80: c0ef7604 000000ad c0da27ac 00000000 e9e36e8c c0cf8950 c121b50c 5b1da8e9
[    2.262232] fda0: e9e36e40 e9e36e40 e9d6c040 c0ef7604 e987f810 eafd6a00 e9d6c048 c1108c88
[    2.270380] fdc0: e9e36e8c c08c1530 00000000 e9874e80 e9e36e40 c0517fd0 00000000 eafd6774
[    2.278528] fde0: e9e36f34 00000000 00000000 00000000 00000001 5b1da8e9 00000000 e987f810
[    2.286676] fe00: 00000000 c11817c8 00000000 00000000 c11817c8 00000000 c1071854 c0828b28
[    2.294824] fe20: c1216c78 e987f810 c1216c7c 00000000 00000000 c0826bb0 e987f810 c11817c8
[    2.302973] fe40: c11817c8 c08270b0 00000000 c1071834 c10004a8 c0826dfc c10004a8 c0abf0ac
[    2.311121] fe60: c0da3f14 e987f810 00000000 c11817c8 c08270b0 00000000 c1071834 c10004a8
[    2.319269] fe80: c1071854 c08270a8 00000000 c11817c8 e987f810 c0827108 e98bafb4 c1108c88
[    2.327417] fea0: c11817c8 c0824f78 c1176300 c029c958 e98bafb4 5b1da8e9 c029c96c c11817c8
[    2.335565] fec0: e9e39e80 c1176300 00000000 c0825fe8 c0f155b4 c1108c88 ffffe000 c11817c8
[    2.343713] fee0: c1108c88 ffffe000 c103b854 c0827c34 c11c3e40 c1108c88 ffffe000 c0302f54
[    2.351861] ff00: ebfffdc0 c0347218 c0fb6d80 c0f36800 00000000 00000006 00000006 c0ea6330
[    2.360010] ff20: 00000000 c1108c88 c0eb3dc4 c0ea63a4 c11da500 ebfffdae ebfffdb3 5b1da8e9
[    2.368158] ff40: c1071838 c11c3e40 c10914a4 5b1da8e9 c11c3e40 c10917f0 00000007 c11da500
[    2.376306] ff60: c11da500 c1001180 00000006 00000006 00000000 c10004a8 0000013d 00000000
[    2.384454] ff80: c02c0504 00000000 c0cf12e8 00000000 00000000 00000000 00000000 00000000
[    2.392602] ffa0: 00000000 c0cf12f0 00000000 c03010e8 00000000 00000000 00000000 00000000
[    2.400750] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.408898] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    2.417052] [<c048e9b4>] (kfree) from [<c08c2108>] (meson_nfc_exec_op+0x34c/0x3e8)
[    2.424592] [<c08c2108>] (meson_nfc_exec_op) from [<c08adb18>] (nand_readid_op+0x128/0x1c4)
[    2.432914] [<c08adb18>] (nand_readid_op) from [<c08b89d4>] (hynix_nand_has_valid_jedecid+0x34/0x78)
[    2.442013] [<c08b89d4>] (hynix_nand_has_valid_jedecid) from [<c08b8d30>] (hynix_nand_decode_id+0x64/0x3fc)
[    2.451721] [<c08b8d30>] (hynix_nand_decode_id) from [<c08b4174>] (nand_scan_with_ids+0xa04/0x171c)
[    2.460735] [<c08b4174>] (nand_scan_with_ids) from [<c08c1530>] (meson_nfc_probe+0x460/0x690)
[    2.469232] [<c08c1530>] (meson_nfc_probe) from [<c0828b28>] (platform_drv_probe+0x48/0x98)
[    2.477553] [<c0828b28>] (platform_drv_probe) from [<c0826bb0>] (really_probe+0x1e0/0x2cc)
[    2.485786] [<c0826bb0>] (really_probe) from [<c0826dfc>] (driver_probe_device+0x60/0x16c)
[    2.494021] [<c0826dfc>] (driver_probe_device) from [<c08270a8>] (device_driver_attach+0x58/0x60)
[    2.502862] [<c08270a8>] (device_driver_attach) from [<c0827108>] (__driver_attach+0x58/0xcc)
[    2.511357] [<c0827108>] (__driver_attach) from [<c0824f78>] (bus_for_each_dev+0x74/0xb4)
[    2.519505] [<c0824f78>] (bus_for_each_dev) from [<c0825fe8>] (bus_add_driver+0x1b8/0x1d8)
[    2.527740] [<c0825fe8>] (bus_add_driver) from [<c0827c34>] (driver_register+0x74/0x108)
[    2.535804] [<c0827c34>] (driver_register) from [<c0302f54>] (do_one_initcall+0x54/0x284)
[    2.543956] [<c0302f54>] (do_one_initcall) from [<c1001180>] (kernel_init_freeable+0x2d4/0x36c)
[    2.552621] [<c1001180>] (kernel_init_freeable) from [<c0cf12f0>] (kernel_init+0x8/0x110)
[    2.560768] [<c0cf12f0>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    2.568304] Exception stack(0xc02affb0 to 0xc02afff8)
[    2.573333] ffa0:                                     00000000 00000000 00000000 00000000
[    2.581483] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.589630] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    2.596220] Code: 1a000003 e5973004 e3130001 1a000000 (e7f001f2)  
[    2.602295] ---[ end trace 0bdf5d4bfd4b3fb1 ]---

WARNING: multiple messages have this Message-ID (diff)
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	jianxin.pan@amlogic.com, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, linux-mtd@lists.infradead.org,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	linux-amlogic@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH nand-next 0/2] meson-nand: support for older SoCs
Date: Sat, 16 Mar 2019 11:55:00 +0100	[thread overview]
Message-ID: <CAFBinCBd=dOZjv4KEDY9ODOONDO=WtaBqAMRi_a+gH3_iZEAHQ@mail.gmail.com> (raw)
In-Reply-To: <ccb95e75-e62f-c510-cabd-853481f77fc8@amlogic.com>

[-- Attachment #1: Type: text/plain, Size: 4989 bytes --]

Hi Liang,

On Tue, Mar 12, 2019 at 10:05 AM Liang Yang <liang.yang@amlogic.com> wrote:
>
> Hi Martin and Miquel,
>
> On 2019/3/7 21:09, Miquel Raynal wrote:
> > Hello,
> >
> > Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote on Tue,
> > 5 Mar 2019 23:12:51 +0100:
> >
> >> Hi Liang,
> >>
> >> On Mon, Mar 4, 2019 at 5:55 AM Liang Yang <liang.yang@amlogic.com> wrote:
> >>>
> >>> Hello Martin,
> >>>
> >>> On 2019/3/2 2:29, Martin Blumenstingl wrote:
> >>>> Hi Liang,
> >>>>
> >>>> I am trying to add support for older SoCs to the meson-nand driver.
> >>>> Back when the driver was in development I used an early revision (of
> >>>> your driver) and did some modifications to make it work on older SoCs.
> >>>>
> >>>> Now that the driver is upstream I wanted to give it another try and
> >>>> make a real patch out of it. Unfortunately it's not working anymore.
> >>>>
> >>>> As far as I know the NFC IP block revision on GXL is similar (or even
> >>>> the same?) as on all older SoCs. As far as I can tell only the clock
> >>>> setup is different on the older SoCs (which have a dedicated NAND
> >>>> clock):
> >>>> - we don't need the "amlogic,mmc-syscon" property on the older SoCs
> >>>>     because we don't need to setup any muxing (common clock framework
> >>>>     will do everything for us)
> >>>> - "rx" and "tx" clocks don't exist
> >>>> - I could not find any other differences between Meson8, Meson8b,
> >>>>     Meson8m2, GXBB and GXL
> >>>>
> >>> That is right. the serials NFC is almost the same except:
> >>> 1) The clock control and source that M8-serials are not share with EMMC.
> >>> 2) The base register address
> >>> 3) DMA encryption option which we don't care on NFC driver.
> >> great, thank you for confirming this!
> >>
> >>>> In this series I'm sending two patches which add support for the older
> >>>> SoCs.
> >>>>
> >>>> Unfortunately these patches are currently not working for me (hence the
> >>>> "RFC" prefix). I get a (strange) crash which is triggered by the
> >>>> kzalloc() in meson_nfc_read_buf() - see below for more details.
> >>>>
> >>>> Can you please help me on this one? I'd like to know whether:
> >>>> - the meson-nand driver works for you on GXL or AXG on linux-next?
> >>>>     (I was running these patches on top of next-20190301 on my M8S
> >>>>     board which uses a 32-bit Meson8m2 SoC. I don't have any board using
> >>>>     a GXL SoC which also has NAND)
> >>> Yes, it works on AXG platform using a MXIC slc nand flash(MX30LF4G); but
> >>> i an not sure it runs the same flow with yours. because i see the print
> >>> "Counld not find a valid ONFI parameter page, ...." in yours. i will try
> >>> to reproduce it on AXG(i don't have a M8 platform now).
> >> I'm looking forward to hear about the test results on your AXG boards
> >> for reference: my board has a SK Hynix H27UCG8T2B (ID bytes: 0xad 0xde
> >> 0x94 0xeb 0x74 0x44, 20nm MLC)
> >> I have another board (where I haven't tested the NFC driver yet) with
> >> a SK Hynix H27UCG8T2E (ID bytes: 0xad 0xde 0x14 0xa7 0x42 0x4a, 1Ynm
> >> MLC). if it helps with your analysis I can test on that board as well
> >
> > Liang, you just have to fake the output of the ONFI page detection and
> > you will probably run into this error which will then be easy to
> > reproduce.
> >
> i don't reproduce it by using a SK Hynix nand flash H27UCG8T2E on gxl
> platform. it runs well.
> [......]
> [    0.977127] loop: module loaded
> [    0.998625] Could not find a valid ONFI parameter page, trying
> bit-wise majority to recover it
> [    1.001619] ONFI parameter recovery failed, aborting
> [    1.006684] Could not find valid JEDEC parameter page; aborting
> [    1.012391] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xde
> [    1.018660] nand: Hynix NAND 8GiB 3,3V 8-bit
> [    1.022885] nand: 8192 MiB, MLC, erase size: 4096 KiB, page size:
> 16384, OOB size: 1664
> [    1.047033] Bad block table not found for chip 0
> [    1.054950] Bad block table not found for chip 0
> [    1.054970] Scanning device for bad blocks
> [    1.522664] random: fast init done
> [    4.893731] Bad eraseblock 1985 at 0x0001f07fc000
> [    5.020637] Bad block table written to 0x0001ffc00000, version 0x01
> [    5.028258] Bad block table written to 0x0001ff800000, version 0x01
> [    5.029905] 5 fixed-partitions partitions found on MTD device
> d0074800.nfc
> [    5.035714] Creating 5 MTD partitions on "d0074800.nfc":
> [......]
>
> Martin, Now i am not sure whether NFC driver leads to kernel panic when
> calling kmem_cache_alloc_trace.
thank you for confirming that it works for you on GXL

I'm not sure that this is a NFC driver problem.
after enabling CONFIG_SLAB_FREELIST_HARDENED in my kernel config the
crash moves. it's now crashing in slub.c's kfree() at
BUG_ON(!PageCompound(page));

maybe this is related to some difference in 32-bit ARM and arm64
or it could even be some memory management issue
I'm not sure yet so I'll try to dig deeper


Regards
Martin

[-- Attachment #2: meson-nfc-32bit-crash.txt --]
[-- Type: text/plain, Size: 6059 bytes --]

[    2.080461] Could not find a valid ONFI parameter page, trying bit-wise majority to recover it
[    2.084140] ONFI parameter recovery failed, aborting
[    2.089154] ------------[ cut here ]------------
[    2.093631] kernel BUG at mm/slub.c:3950!
[    2.097619] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[    2.103427] Modules linked in:
[    2.106464] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.0.0-11944-g4479fa4728e9-dirty #4196
[    2.114781] Hardware name: Amlogic Meson platform
[    2.119470] PC is at kfree+0x298/0x2c4
[    2.123195] LR is at meson_nfc_exec_op+0x34c/0x3e8
[    2.127958] pc : [<c048e9b4>]    lr : [<c08c2108>]    psr: 40000013
[    2.134199] sp : c02afc60  ip : eafd9000  fp : e9e36e40
[    2.139400] r10: 00000002  r9 : e9d6c048  r8 : ee36434b
[    2.144601] r7 : eb59fc80  r6 : ee36434b  r5 : c08c2108  r4 : c02afd18
[    2.151102] r3 : eb59fc84  r2 : c12089c0  r1 : ee364340  r0 : ee36434b
[    2.157605] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    2.164712] Control: 10c5387d  Table: 0020404a  DAC: 00000051
[    2.170433] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[    2.176413] Stack: (0xc02afc60 to 0xc02b0000)
[    2.180752] fc60: ee36434b c08c0c74 00000000 c02afd18 00000028 e9e92680 c02afcf0 ee36434b
[    2.188899] fc80: e9d6c048 c08c2108 00000008 00000002 10624dd3 c02afce4 10624dd3 00000005
[    2.197047] fca0: e9e36e40 c0f67310 00220005 c0f152e8 00000005 e9d6c048 00000005 c02afd57
[    2.205195] fcc0: c1108c88 e9e36e40 c02afcf0 e9d6c428 e9d6c3b0 c08adb18 00000000 40000000
[    2.213343] fce0: c02afce8 00000000 c02afcf0 00000003 00000000 00000090 00000000 00000000
[    2.221491] fd00: 00000000 00000001 00000001 c02afcdf 00000000 00000190 00000002 00000005
[    2.229639] fd20: c02afd57 00000001 00000000 5b1da8e9 00000000 c1108c88 c11812f0 e9d6c3c0
[    2.237787] fd40: 00000001 000000de 00000000 c08b89d4 c0f14704 00d6c3c0 00000000 5b1da8e9
[    2.245936] fd60: 00000015 e9d6c048 c1108c88 c08b8d30 e9d6c048 c08b4174 00000000 60000013
[    2.254084] fd80: c0ef7604 000000ad c0da27ac 00000000 e9e36e8c c0cf8950 c121b50c 5b1da8e9
[    2.262232] fda0: e9e36e40 e9e36e40 e9d6c040 c0ef7604 e987f810 eafd6a00 e9d6c048 c1108c88
[    2.270380] fdc0: e9e36e8c c08c1530 00000000 e9874e80 e9e36e40 c0517fd0 00000000 eafd6774
[    2.278528] fde0: e9e36f34 00000000 00000000 00000000 00000001 5b1da8e9 00000000 e987f810
[    2.286676] fe00: 00000000 c11817c8 00000000 00000000 c11817c8 00000000 c1071854 c0828b28
[    2.294824] fe20: c1216c78 e987f810 c1216c7c 00000000 00000000 c0826bb0 e987f810 c11817c8
[    2.302973] fe40: c11817c8 c08270b0 00000000 c1071834 c10004a8 c0826dfc c10004a8 c0abf0ac
[    2.311121] fe60: c0da3f14 e987f810 00000000 c11817c8 c08270b0 00000000 c1071834 c10004a8
[    2.319269] fe80: c1071854 c08270a8 00000000 c11817c8 e987f810 c0827108 e98bafb4 c1108c88
[    2.327417] fea0: c11817c8 c0824f78 c1176300 c029c958 e98bafb4 5b1da8e9 c029c96c c11817c8
[    2.335565] fec0: e9e39e80 c1176300 00000000 c0825fe8 c0f155b4 c1108c88 ffffe000 c11817c8
[    2.343713] fee0: c1108c88 ffffe000 c103b854 c0827c34 c11c3e40 c1108c88 ffffe000 c0302f54
[    2.351861] ff00: ebfffdc0 c0347218 c0fb6d80 c0f36800 00000000 00000006 00000006 c0ea6330
[    2.360010] ff20: 00000000 c1108c88 c0eb3dc4 c0ea63a4 c11da500 ebfffdae ebfffdb3 5b1da8e9
[    2.368158] ff40: c1071838 c11c3e40 c10914a4 5b1da8e9 c11c3e40 c10917f0 00000007 c11da500
[    2.376306] ff60: c11da500 c1001180 00000006 00000006 00000000 c10004a8 0000013d 00000000
[    2.384454] ff80: c02c0504 00000000 c0cf12e8 00000000 00000000 00000000 00000000 00000000
[    2.392602] ffa0: 00000000 c0cf12f0 00000000 c03010e8 00000000 00000000 00000000 00000000
[    2.400750] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.408898] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    2.417052] [<c048e9b4>] (kfree) from [<c08c2108>] (meson_nfc_exec_op+0x34c/0x3e8)
[    2.424592] [<c08c2108>] (meson_nfc_exec_op) from [<c08adb18>] (nand_readid_op+0x128/0x1c4)
[    2.432914] [<c08adb18>] (nand_readid_op) from [<c08b89d4>] (hynix_nand_has_valid_jedecid+0x34/0x78)
[    2.442013] [<c08b89d4>] (hynix_nand_has_valid_jedecid) from [<c08b8d30>] (hynix_nand_decode_id+0x64/0x3fc)
[    2.451721] [<c08b8d30>] (hynix_nand_decode_id) from [<c08b4174>] (nand_scan_with_ids+0xa04/0x171c)
[    2.460735] [<c08b4174>] (nand_scan_with_ids) from [<c08c1530>] (meson_nfc_probe+0x460/0x690)
[    2.469232] [<c08c1530>] (meson_nfc_probe) from [<c0828b28>] (platform_drv_probe+0x48/0x98)
[    2.477553] [<c0828b28>] (platform_drv_probe) from [<c0826bb0>] (really_probe+0x1e0/0x2cc)
[    2.485786] [<c0826bb0>] (really_probe) from [<c0826dfc>] (driver_probe_device+0x60/0x16c)
[    2.494021] [<c0826dfc>] (driver_probe_device) from [<c08270a8>] (device_driver_attach+0x58/0x60)
[    2.502862] [<c08270a8>] (device_driver_attach) from [<c0827108>] (__driver_attach+0x58/0xcc)
[    2.511357] [<c0827108>] (__driver_attach) from [<c0824f78>] (bus_for_each_dev+0x74/0xb4)
[    2.519505] [<c0824f78>] (bus_for_each_dev) from [<c0825fe8>] (bus_add_driver+0x1b8/0x1d8)
[    2.527740] [<c0825fe8>] (bus_add_driver) from [<c0827c34>] (driver_register+0x74/0x108)
[    2.535804] [<c0827c34>] (driver_register) from [<c0302f54>] (do_one_initcall+0x54/0x284)
[    2.543956] [<c0302f54>] (do_one_initcall) from [<c1001180>] (kernel_init_freeable+0x2d4/0x36c)
[    2.552621] [<c1001180>] (kernel_init_freeable) from [<c0cf12f0>] (kernel_init+0x8/0x110)
[    2.560768] [<c0cf12f0>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    2.568304] Exception stack(0xc02affb0 to 0xc02afff8)
[    2.573333] ffa0:                                     00000000 00000000 00000000 00000000
[    2.581483] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.589630] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    2.596220] Code: 1a000003 e5973004 e3130001 1a000000 (e7f001f2)  
[    2.602295] ---[ end trace 0bdf5d4bfd4b3fb1 ]---

[-- Attachment #3: Type: text/plain, Size: 144 bytes --]

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	jianxin.pan@amlogic.com, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, linux-mtd@lists.infradead.org,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	linux-amlogic@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH nand-next 0/2] meson-nand: support for older SoCs
Date: Sat, 16 Mar 2019 11:55:00 +0100	[thread overview]
Message-ID: <CAFBinCBd=dOZjv4KEDY9ODOONDO=WtaBqAMRi_a+gH3_iZEAHQ@mail.gmail.com> (raw)
In-Reply-To: <ccb95e75-e62f-c510-cabd-853481f77fc8@amlogic.com>

[-- Attachment #1: Type: text/plain, Size: 4989 bytes --]

Hi Liang,

On Tue, Mar 12, 2019 at 10:05 AM Liang Yang <liang.yang@amlogic.com> wrote:
>
> Hi Martin and Miquel,
>
> On 2019/3/7 21:09, Miquel Raynal wrote:
> > Hello,
> >
> > Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote on Tue,
> > 5 Mar 2019 23:12:51 +0100:
> >
> >> Hi Liang,
> >>
> >> On Mon, Mar 4, 2019 at 5:55 AM Liang Yang <liang.yang@amlogic.com> wrote:
> >>>
> >>> Hello Martin,
> >>>
> >>> On 2019/3/2 2:29, Martin Blumenstingl wrote:
> >>>> Hi Liang,
> >>>>
> >>>> I am trying to add support for older SoCs to the meson-nand driver.
> >>>> Back when the driver was in development I used an early revision (of
> >>>> your driver) and did some modifications to make it work on older SoCs.
> >>>>
> >>>> Now that the driver is upstream I wanted to give it another try and
> >>>> make a real patch out of it. Unfortunately it's not working anymore.
> >>>>
> >>>> As far as I know the NFC IP block revision on GXL is similar (or even
> >>>> the same?) as on all older SoCs. As far as I can tell only the clock
> >>>> setup is different on the older SoCs (which have a dedicated NAND
> >>>> clock):
> >>>> - we don't need the "amlogic,mmc-syscon" property on the older SoCs
> >>>>     because we don't need to setup any muxing (common clock framework
> >>>>     will do everything for us)
> >>>> - "rx" and "tx" clocks don't exist
> >>>> - I could not find any other differences between Meson8, Meson8b,
> >>>>     Meson8m2, GXBB and GXL
> >>>>
> >>> That is right. the serials NFC is almost the same except:
> >>> 1) The clock control and source that M8-serials are not share with EMMC.
> >>> 2) The base register address
> >>> 3) DMA encryption option which we don't care on NFC driver.
> >> great, thank you for confirming this!
> >>
> >>>> In this series I'm sending two patches which add support for the older
> >>>> SoCs.
> >>>>
> >>>> Unfortunately these patches are currently not working for me (hence the
> >>>> "RFC" prefix). I get a (strange) crash which is triggered by the
> >>>> kzalloc() in meson_nfc_read_buf() - see below for more details.
> >>>>
> >>>> Can you please help me on this one? I'd like to know whether:
> >>>> - the meson-nand driver works for you on GXL or AXG on linux-next?
> >>>>     (I was running these patches on top of next-20190301 on my M8S
> >>>>     board which uses a 32-bit Meson8m2 SoC. I don't have any board using
> >>>>     a GXL SoC which also has NAND)
> >>> Yes, it works on AXG platform using a MXIC slc nand flash(MX30LF4G); but
> >>> i an not sure it runs the same flow with yours. because i see the print
> >>> "Counld not find a valid ONFI parameter page, ...." in yours. i will try
> >>> to reproduce it on AXG(i don't have a M8 platform now).
> >> I'm looking forward to hear about the test results on your AXG boards
> >> for reference: my board has a SK Hynix H27UCG8T2B (ID bytes: 0xad 0xde
> >> 0x94 0xeb 0x74 0x44, 20nm MLC)
> >> I have another board (where I haven't tested the NFC driver yet) with
> >> a SK Hynix H27UCG8T2E (ID bytes: 0xad 0xde 0x14 0xa7 0x42 0x4a, 1Ynm
> >> MLC). if it helps with your analysis I can test on that board as well
> >
> > Liang, you just have to fake the output of the ONFI page detection and
> > you will probably run into this error which will then be easy to
> > reproduce.
> >
> i don't reproduce it by using a SK Hynix nand flash H27UCG8T2E on gxl
> platform. it runs well.
> [......]
> [    0.977127] loop: module loaded
> [    0.998625] Could not find a valid ONFI parameter page, trying
> bit-wise majority to recover it
> [    1.001619] ONFI parameter recovery failed, aborting
> [    1.006684] Could not find valid JEDEC parameter page; aborting
> [    1.012391] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xde
> [    1.018660] nand: Hynix NAND 8GiB 3,3V 8-bit
> [    1.022885] nand: 8192 MiB, MLC, erase size: 4096 KiB, page size:
> 16384, OOB size: 1664
> [    1.047033] Bad block table not found for chip 0
> [    1.054950] Bad block table not found for chip 0
> [    1.054970] Scanning device for bad blocks
> [    1.522664] random: fast init done
> [    4.893731] Bad eraseblock 1985 at 0x0001f07fc000
> [    5.020637] Bad block table written to 0x0001ffc00000, version 0x01
> [    5.028258] Bad block table written to 0x0001ff800000, version 0x01
> [    5.029905] 5 fixed-partitions partitions found on MTD device
> d0074800.nfc
> [    5.035714] Creating 5 MTD partitions on "d0074800.nfc":
> [......]
>
> Martin, Now i am not sure whether NFC driver leads to kernel panic when
> calling kmem_cache_alloc_trace.
thank you for confirming that it works for you on GXL

I'm not sure that this is a NFC driver problem.
after enabling CONFIG_SLAB_FREELIST_HARDENED in my kernel config the
crash moves. it's now crashing in slub.c's kfree() at
BUG_ON(!PageCompound(page));

maybe this is related to some difference in 32-bit ARM and arm64
or it could even be some memory management issue
I'm not sure yet so I'll try to dig deeper


Regards
Martin

[-- Attachment #2: meson-nfc-32bit-crash.txt --]
[-- Type: text/plain, Size: 6059 bytes --]

[    2.080461] Could not find a valid ONFI parameter page, trying bit-wise majority to recover it
[    2.084140] ONFI parameter recovery failed, aborting
[    2.089154] ------------[ cut here ]------------
[    2.093631] kernel BUG at mm/slub.c:3950!
[    2.097619] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[    2.103427] Modules linked in:
[    2.106464] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.0.0-11944-g4479fa4728e9-dirty #4196
[    2.114781] Hardware name: Amlogic Meson platform
[    2.119470] PC is at kfree+0x298/0x2c4
[    2.123195] LR is at meson_nfc_exec_op+0x34c/0x3e8
[    2.127958] pc : [<c048e9b4>]    lr : [<c08c2108>]    psr: 40000013
[    2.134199] sp : c02afc60  ip : eafd9000  fp : e9e36e40
[    2.139400] r10: 00000002  r9 : e9d6c048  r8 : ee36434b
[    2.144601] r7 : eb59fc80  r6 : ee36434b  r5 : c08c2108  r4 : c02afd18
[    2.151102] r3 : eb59fc84  r2 : c12089c0  r1 : ee364340  r0 : ee36434b
[    2.157605] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    2.164712] Control: 10c5387d  Table: 0020404a  DAC: 00000051
[    2.170433] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[    2.176413] Stack: (0xc02afc60 to 0xc02b0000)
[    2.180752] fc60: ee36434b c08c0c74 00000000 c02afd18 00000028 e9e92680 c02afcf0 ee36434b
[    2.188899] fc80: e9d6c048 c08c2108 00000008 00000002 10624dd3 c02afce4 10624dd3 00000005
[    2.197047] fca0: e9e36e40 c0f67310 00220005 c0f152e8 00000005 e9d6c048 00000005 c02afd57
[    2.205195] fcc0: c1108c88 e9e36e40 c02afcf0 e9d6c428 e9d6c3b0 c08adb18 00000000 40000000
[    2.213343] fce0: c02afce8 00000000 c02afcf0 00000003 00000000 00000090 00000000 00000000
[    2.221491] fd00: 00000000 00000001 00000001 c02afcdf 00000000 00000190 00000002 00000005
[    2.229639] fd20: c02afd57 00000001 00000000 5b1da8e9 00000000 c1108c88 c11812f0 e9d6c3c0
[    2.237787] fd40: 00000001 000000de 00000000 c08b89d4 c0f14704 00d6c3c0 00000000 5b1da8e9
[    2.245936] fd60: 00000015 e9d6c048 c1108c88 c08b8d30 e9d6c048 c08b4174 00000000 60000013
[    2.254084] fd80: c0ef7604 000000ad c0da27ac 00000000 e9e36e8c c0cf8950 c121b50c 5b1da8e9
[    2.262232] fda0: e9e36e40 e9e36e40 e9d6c040 c0ef7604 e987f810 eafd6a00 e9d6c048 c1108c88
[    2.270380] fdc0: e9e36e8c c08c1530 00000000 e9874e80 e9e36e40 c0517fd0 00000000 eafd6774
[    2.278528] fde0: e9e36f34 00000000 00000000 00000000 00000001 5b1da8e9 00000000 e987f810
[    2.286676] fe00: 00000000 c11817c8 00000000 00000000 c11817c8 00000000 c1071854 c0828b28
[    2.294824] fe20: c1216c78 e987f810 c1216c7c 00000000 00000000 c0826bb0 e987f810 c11817c8
[    2.302973] fe40: c11817c8 c08270b0 00000000 c1071834 c10004a8 c0826dfc c10004a8 c0abf0ac
[    2.311121] fe60: c0da3f14 e987f810 00000000 c11817c8 c08270b0 00000000 c1071834 c10004a8
[    2.319269] fe80: c1071854 c08270a8 00000000 c11817c8 e987f810 c0827108 e98bafb4 c1108c88
[    2.327417] fea0: c11817c8 c0824f78 c1176300 c029c958 e98bafb4 5b1da8e9 c029c96c c11817c8
[    2.335565] fec0: e9e39e80 c1176300 00000000 c0825fe8 c0f155b4 c1108c88 ffffe000 c11817c8
[    2.343713] fee0: c1108c88 ffffe000 c103b854 c0827c34 c11c3e40 c1108c88 ffffe000 c0302f54
[    2.351861] ff00: ebfffdc0 c0347218 c0fb6d80 c0f36800 00000000 00000006 00000006 c0ea6330
[    2.360010] ff20: 00000000 c1108c88 c0eb3dc4 c0ea63a4 c11da500 ebfffdae ebfffdb3 5b1da8e9
[    2.368158] ff40: c1071838 c11c3e40 c10914a4 5b1da8e9 c11c3e40 c10917f0 00000007 c11da500
[    2.376306] ff60: c11da500 c1001180 00000006 00000006 00000000 c10004a8 0000013d 00000000
[    2.384454] ff80: c02c0504 00000000 c0cf12e8 00000000 00000000 00000000 00000000 00000000
[    2.392602] ffa0: 00000000 c0cf12f0 00000000 c03010e8 00000000 00000000 00000000 00000000
[    2.400750] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.408898] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    2.417052] [<c048e9b4>] (kfree) from [<c08c2108>] (meson_nfc_exec_op+0x34c/0x3e8)
[    2.424592] [<c08c2108>] (meson_nfc_exec_op) from [<c08adb18>] (nand_readid_op+0x128/0x1c4)
[    2.432914] [<c08adb18>] (nand_readid_op) from [<c08b89d4>] (hynix_nand_has_valid_jedecid+0x34/0x78)
[    2.442013] [<c08b89d4>] (hynix_nand_has_valid_jedecid) from [<c08b8d30>] (hynix_nand_decode_id+0x64/0x3fc)
[    2.451721] [<c08b8d30>] (hynix_nand_decode_id) from [<c08b4174>] (nand_scan_with_ids+0xa04/0x171c)
[    2.460735] [<c08b4174>] (nand_scan_with_ids) from [<c08c1530>] (meson_nfc_probe+0x460/0x690)
[    2.469232] [<c08c1530>] (meson_nfc_probe) from [<c0828b28>] (platform_drv_probe+0x48/0x98)
[    2.477553] [<c0828b28>] (platform_drv_probe) from [<c0826bb0>] (really_probe+0x1e0/0x2cc)
[    2.485786] [<c0826bb0>] (really_probe) from [<c0826dfc>] (driver_probe_device+0x60/0x16c)
[    2.494021] [<c0826dfc>] (driver_probe_device) from [<c08270a8>] (device_driver_attach+0x58/0x60)
[    2.502862] [<c08270a8>] (device_driver_attach) from [<c0827108>] (__driver_attach+0x58/0xcc)
[    2.511357] [<c0827108>] (__driver_attach) from [<c0824f78>] (bus_for_each_dev+0x74/0xb4)
[    2.519505] [<c0824f78>] (bus_for_each_dev) from [<c0825fe8>] (bus_add_driver+0x1b8/0x1d8)
[    2.527740] [<c0825fe8>] (bus_add_driver) from [<c0827c34>] (driver_register+0x74/0x108)
[    2.535804] [<c0827c34>] (driver_register) from [<c0302f54>] (do_one_initcall+0x54/0x284)
[    2.543956] [<c0302f54>] (do_one_initcall) from [<c1001180>] (kernel_init_freeable+0x2d4/0x36c)
[    2.552621] [<c1001180>] (kernel_init_freeable) from [<c0cf12f0>] (kernel_init+0x8/0x110)
[    2.560768] [<c0cf12f0>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    2.568304] Exception stack(0xc02affb0 to 0xc02afff8)
[    2.573333] ffa0:                                     00000000 00000000 00000000 00000000
[    2.581483] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.589630] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    2.596220] Code: 1a000003 e5973004 e3130001 1a000000 (e7f001f2)  
[    2.602295] ---[ end trace 0bdf5d4bfd4b3fb1 ]---

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	jianxin.pan@amlogic.com, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, linux-mtd@lists.infradead.org,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	linux-amlogic@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH nand-next 0/2] meson-nand: support for older SoCs
Date: Sat, 16 Mar 2019 11:55:00 +0100	[thread overview]
Message-ID: <CAFBinCBd=dOZjv4KEDY9ODOONDO=WtaBqAMRi_a+gH3_iZEAHQ@mail.gmail.com> (raw)
In-Reply-To: <ccb95e75-e62f-c510-cabd-853481f77fc8@amlogic.com>

[-- Attachment #1: Type: text/plain, Size: 4989 bytes --]

Hi Liang,

On Tue, Mar 12, 2019 at 10:05 AM Liang Yang <liang.yang@amlogic.com> wrote:
>
> Hi Martin and Miquel,
>
> On 2019/3/7 21:09, Miquel Raynal wrote:
> > Hello,
> >
> > Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote on Tue,
> > 5 Mar 2019 23:12:51 +0100:
> >
> >> Hi Liang,
> >>
> >> On Mon, Mar 4, 2019 at 5:55 AM Liang Yang <liang.yang@amlogic.com> wrote:
> >>>
> >>> Hello Martin,
> >>>
> >>> On 2019/3/2 2:29, Martin Blumenstingl wrote:
> >>>> Hi Liang,
> >>>>
> >>>> I am trying to add support for older SoCs to the meson-nand driver.
> >>>> Back when the driver was in development I used an early revision (of
> >>>> your driver) and did some modifications to make it work on older SoCs.
> >>>>
> >>>> Now that the driver is upstream I wanted to give it another try and
> >>>> make a real patch out of it. Unfortunately it's not working anymore.
> >>>>
> >>>> As far as I know the NFC IP block revision on GXL is similar (or even
> >>>> the same?) as on all older SoCs. As far as I can tell only the clock
> >>>> setup is different on the older SoCs (which have a dedicated NAND
> >>>> clock):
> >>>> - we don't need the "amlogic,mmc-syscon" property on the older SoCs
> >>>>     because we don't need to setup any muxing (common clock framework
> >>>>     will do everything for us)
> >>>> - "rx" and "tx" clocks don't exist
> >>>> - I could not find any other differences between Meson8, Meson8b,
> >>>>     Meson8m2, GXBB and GXL
> >>>>
> >>> That is right. the serials NFC is almost the same except:
> >>> 1) The clock control and source that M8-serials are not share with EMMC.
> >>> 2) The base register address
> >>> 3) DMA encryption option which we don't care on NFC driver.
> >> great, thank you for confirming this!
> >>
> >>>> In this series I'm sending two patches which add support for the older
> >>>> SoCs.
> >>>>
> >>>> Unfortunately these patches are currently not working for me (hence the
> >>>> "RFC" prefix). I get a (strange) crash which is triggered by the
> >>>> kzalloc() in meson_nfc_read_buf() - see below for more details.
> >>>>
> >>>> Can you please help me on this one? I'd like to know whether:
> >>>> - the meson-nand driver works for you on GXL or AXG on linux-next?
> >>>>     (I was running these patches on top of next-20190301 on my M8S
> >>>>     board which uses a 32-bit Meson8m2 SoC. I don't have any board using
> >>>>     a GXL SoC which also has NAND)
> >>> Yes, it works on AXG platform using a MXIC slc nand flash(MX30LF4G); but
> >>> i an not sure it runs the same flow with yours. because i see the print
> >>> "Counld not find a valid ONFI parameter page, ...." in yours. i will try
> >>> to reproduce it on AXG(i don't have a M8 platform now).
> >> I'm looking forward to hear about the test results on your AXG boards
> >> for reference: my board has a SK Hynix H27UCG8T2B (ID bytes: 0xad 0xde
> >> 0x94 0xeb 0x74 0x44, 20nm MLC)
> >> I have another board (where I haven't tested the NFC driver yet) with
> >> a SK Hynix H27UCG8T2E (ID bytes: 0xad 0xde 0x14 0xa7 0x42 0x4a, 1Ynm
> >> MLC). if it helps with your analysis I can test on that board as well
> >
> > Liang, you just have to fake the output of the ONFI page detection and
> > you will probably run into this error which will then be easy to
> > reproduce.
> >
> i don't reproduce it by using a SK Hynix nand flash H27UCG8T2E on gxl
> platform. it runs well.
> [......]
> [    0.977127] loop: module loaded
> [    0.998625] Could not find a valid ONFI parameter page, trying
> bit-wise majority to recover it
> [    1.001619] ONFI parameter recovery failed, aborting
> [    1.006684] Could not find valid JEDEC parameter page; aborting
> [    1.012391] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xde
> [    1.018660] nand: Hynix NAND 8GiB 3,3V 8-bit
> [    1.022885] nand: 8192 MiB, MLC, erase size: 4096 KiB, page size:
> 16384, OOB size: 1664
> [    1.047033] Bad block table not found for chip 0
> [    1.054950] Bad block table not found for chip 0
> [    1.054970] Scanning device for bad blocks
> [    1.522664] random: fast init done
> [    4.893731] Bad eraseblock 1985 at 0x0001f07fc000
> [    5.020637] Bad block table written to 0x0001ffc00000, version 0x01
> [    5.028258] Bad block table written to 0x0001ff800000, version 0x01
> [    5.029905] 5 fixed-partitions partitions found on MTD device
> d0074800.nfc
> [    5.035714] Creating 5 MTD partitions on "d0074800.nfc":
> [......]
>
> Martin, Now i am not sure whether NFC driver leads to kernel panic when
> calling kmem_cache_alloc_trace.
thank you for confirming that it works for you on GXL

I'm not sure that this is a NFC driver problem.
after enabling CONFIG_SLAB_FREELIST_HARDENED in my kernel config the
crash moves. it's now crashing in slub.c's kfree() at
BUG_ON(!PageCompound(page));

maybe this is related to some difference in 32-bit ARM and arm64
or it could even be some memory management issue
I'm not sure yet so I'll try to dig deeper


Regards
Martin

[-- Attachment #2: meson-nfc-32bit-crash.txt --]
[-- Type: text/plain, Size: 6059 bytes --]

[    2.080461] Could not find a valid ONFI parameter page, trying bit-wise majority to recover it
[    2.084140] ONFI parameter recovery failed, aborting
[    2.089154] ------------[ cut here ]------------
[    2.093631] kernel BUG at mm/slub.c:3950!
[    2.097619] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[    2.103427] Modules linked in:
[    2.106464] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.0.0-11944-g4479fa4728e9-dirty #4196
[    2.114781] Hardware name: Amlogic Meson platform
[    2.119470] PC is at kfree+0x298/0x2c4
[    2.123195] LR is at meson_nfc_exec_op+0x34c/0x3e8
[    2.127958] pc : [<c048e9b4>]    lr : [<c08c2108>]    psr: 40000013
[    2.134199] sp : c02afc60  ip : eafd9000  fp : e9e36e40
[    2.139400] r10: 00000002  r9 : e9d6c048  r8 : ee36434b
[    2.144601] r7 : eb59fc80  r6 : ee36434b  r5 : c08c2108  r4 : c02afd18
[    2.151102] r3 : eb59fc84  r2 : c12089c0  r1 : ee364340  r0 : ee36434b
[    2.157605] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    2.164712] Control: 10c5387d  Table: 0020404a  DAC: 00000051
[    2.170433] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[    2.176413] Stack: (0xc02afc60 to 0xc02b0000)
[    2.180752] fc60: ee36434b c08c0c74 00000000 c02afd18 00000028 e9e92680 c02afcf0 ee36434b
[    2.188899] fc80: e9d6c048 c08c2108 00000008 00000002 10624dd3 c02afce4 10624dd3 00000005
[    2.197047] fca0: e9e36e40 c0f67310 00220005 c0f152e8 00000005 e9d6c048 00000005 c02afd57
[    2.205195] fcc0: c1108c88 e9e36e40 c02afcf0 e9d6c428 e9d6c3b0 c08adb18 00000000 40000000
[    2.213343] fce0: c02afce8 00000000 c02afcf0 00000003 00000000 00000090 00000000 00000000
[    2.221491] fd00: 00000000 00000001 00000001 c02afcdf 00000000 00000190 00000002 00000005
[    2.229639] fd20: c02afd57 00000001 00000000 5b1da8e9 00000000 c1108c88 c11812f0 e9d6c3c0
[    2.237787] fd40: 00000001 000000de 00000000 c08b89d4 c0f14704 00d6c3c0 00000000 5b1da8e9
[    2.245936] fd60: 00000015 e9d6c048 c1108c88 c08b8d30 e9d6c048 c08b4174 00000000 60000013
[    2.254084] fd80: c0ef7604 000000ad c0da27ac 00000000 e9e36e8c c0cf8950 c121b50c 5b1da8e9
[    2.262232] fda0: e9e36e40 e9e36e40 e9d6c040 c0ef7604 e987f810 eafd6a00 e9d6c048 c1108c88
[    2.270380] fdc0: e9e36e8c c08c1530 00000000 e9874e80 e9e36e40 c0517fd0 00000000 eafd6774
[    2.278528] fde0: e9e36f34 00000000 00000000 00000000 00000001 5b1da8e9 00000000 e987f810
[    2.286676] fe00: 00000000 c11817c8 00000000 00000000 c11817c8 00000000 c1071854 c0828b28
[    2.294824] fe20: c1216c78 e987f810 c1216c7c 00000000 00000000 c0826bb0 e987f810 c11817c8
[    2.302973] fe40: c11817c8 c08270b0 00000000 c1071834 c10004a8 c0826dfc c10004a8 c0abf0ac
[    2.311121] fe60: c0da3f14 e987f810 00000000 c11817c8 c08270b0 00000000 c1071834 c10004a8
[    2.319269] fe80: c1071854 c08270a8 00000000 c11817c8 e987f810 c0827108 e98bafb4 c1108c88
[    2.327417] fea0: c11817c8 c0824f78 c1176300 c029c958 e98bafb4 5b1da8e9 c029c96c c11817c8
[    2.335565] fec0: e9e39e80 c1176300 00000000 c0825fe8 c0f155b4 c1108c88 ffffe000 c11817c8
[    2.343713] fee0: c1108c88 ffffe000 c103b854 c0827c34 c11c3e40 c1108c88 ffffe000 c0302f54
[    2.351861] ff00: ebfffdc0 c0347218 c0fb6d80 c0f36800 00000000 00000006 00000006 c0ea6330
[    2.360010] ff20: 00000000 c1108c88 c0eb3dc4 c0ea63a4 c11da500 ebfffdae ebfffdb3 5b1da8e9
[    2.368158] ff40: c1071838 c11c3e40 c10914a4 5b1da8e9 c11c3e40 c10917f0 00000007 c11da500
[    2.376306] ff60: c11da500 c1001180 00000006 00000006 00000000 c10004a8 0000013d 00000000
[    2.384454] ff80: c02c0504 00000000 c0cf12e8 00000000 00000000 00000000 00000000 00000000
[    2.392602] ffa0: 00000000 c0cf12f0 00000000 c03010e8 00000000 00000000 00000000 00000000
[    2.400750] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.408898] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    2.417052] [<c048e9b4>] (kfree) from [<c08c2108>] (meson_nfc_exec_op+0x34c/0x3e8)
[    2.424592] [<c08c2108>] (meson_nfc_exec_op) from [<c08adb18>] (nand_readid_op+0x128/0x1c4)
[    2.432914] [<c08adb18>] (nand_readid_op) from [<c08b89d4>] (hynix_nand_has_valid_jedecid+0x34/0x78)
[    2.442013] [<c08b89d4>] (hynix_nand_has_valid_jedecid) from [<c08b8d30>] (hynix_nand_decode_id+0x64/0x3fc)
[    2.451721] [<c08b8d30>] (hynix_nand_decode_id) from [<c08b4174>] (nand_scan_with_ids+0xa04/0x171c)
[    2.460735] [<c08b4174>] (nand_scan_with_ids) from [<c08c1530>] (meson_nfc_probe+0x460/0x690)
[    2.469232] [<c08c1530>] (meson_nfc_probe) from [<c0828b28>] (platform_drv_probe+0x48/0x98)
[    2.477553] [<c0828b28>] (platform_drv_probe) from [<c0826bb0>] (really_probe+0x1e0/0x2cc)
[    2.485786] [<c0826bb0>] (really_probe) from [<c0826dfc>] (driver_probe_device+0x60/0x16c)
[    2.494021] [<c0826dfc>] (driver_probe_device) from [<c08270a8>] (device_driver_attach+0x58/0x60)
[    2.502862] [<c08270a8>] (device_driver_attach) from [<c0827108>] (__driver_attach+0x58/0xcc)
[    2.511357] [<c0827108>] (__driver_attach) from [<c0824f78>] (bus_for_each_dev+0x74/0xb4)
[    2.519505] [<c0824f78>] (bus_for_each_dev) from [<c0825fe8>] (bus_add_driver+0x1b8/0x1d8)
[    2.527740] [<c0825fe8>] (bus_add_driver) from [<c0827c34>] (driver_register+0x74/0x108)
[    2.535804] [<c0827c34>] (driver_register) from [<c0302f54>] (do_one_initcall+0x54/0x284)
[    2.543956] [<c0302f54>] (do_one_initcall) from [<c1001180>] (kernel_init_freeable+0x2d4/0x36c)
[    2.552621] [<c1001180>] (kernel_init_freeable) from [<c0cf12f0>] (kernel_init+0x8/0x110)
[    2.560768] [<c0cf12f0>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    2.568304] Exception stack(0xc02affb0 to 0xc02afff8)
[    2.573333] ffa0:                                     00000000 00000000 00000000 00000000
[    2.581483] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.589630] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    2.596220] Code: 1a000003 e5973004 e3130001 1a000000 (e7f001f2)  
[    2.602295] ---[ end trace 0bdf5d4bfd4b3fb1 ]---

[-- Attachment #3: Type: text/plain, Size: 167 bytes --]

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

  reply	other threads:[~2019-03-16 10:55 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-01 18:29 [RFC PATCH nand-next 0/2] meson-nand: support for older SoCs Martin Blumenstingl
2019-03-01 18:29 ` Martin Blumenstingl
2019-03-01 18:29 ` Martin Blumenstingl
2019-03-01 18:29 ` Martin Blumenstingl
2019-03-01 18:29 ` [RFC PATCH nand-next 1/2] dt-bindings: nand: meson: add support for more SoCs Martin Blumenstingl
2019-03-01 18:29   ` Martin Blumenstingl
2019-03-01 18:29   ` Martin Blumenstingl
2019-03-01 18:29   ` Martin Blumenstingl
2019-03-01 18:29 ` [RFC PATCH nand-next 2/2] mtd: rawnand: meson: support for older SoCs up to Meson8 Martin Blumenstingl
2019-03-01 18:29   ` Martin Blumenstingl
2019-03-01 18:29   ` Martin Blumenstingl
2019-03-01 18:29   ` Martin Blumenstingl
2019-03-04  4:56 ` [RFC PATCH nand-next 0/2] meson-nand: support for older SoCs Liang Yang
2019-03-04  4:56   ` Liang Yang
2019-03-04  4:56   ` Liang Yang
2019-03-04  4:56   ` Liang Yang
2019-03-04  4:56   ` Liang Yang
2019-03-05 22:12   ` Martin Blumenstingl
2019-03-05 22:12     ` Martin Blumenstingl
2019-03-05 22:12     ` Martin Blumenstingl
2019-03-05 22:12     ` Martin Blumenstingl
2019-03-07 13:09     ` Miquel Raynal
2019-03-07 13:09       ` Miquel Raynal
2019-03-07 13:09       ` Miquel Raynal
2019-03-07 13:09       ` Miquel Raynal
2019-03-07 13:36       ` Liang Yang
2019-03-07 13:36         ` Liang Yang
2019-03-07 13:36         ` Liang Yang
2019-03-07 13:36         ` Liang Yang
2019-03-12  9:06       ` Liang Yang
2019-03-12  9:06         ` Liang Yang
2019-03-12  9:06         ` Liang Yang
2019-03-12  9:06         ` Liang Yang
2019-03-12  9:06         ` Liang Yang
2019-03-16 10:55         ` Martin Blumenstingl [this message]
2019-03-16 10:55           ` Martin Blumenstingl
2019-03-16 10:55           ` Martin Blumenstingl
2019-03-16 10:55           ` Martin Blumenstingl
2019-03-19 20:27           ` Martin Blumenstingl
2019-03-19 20:27             ` Martin Blumenstingl
2019-03-19 20:27             ` Martin Blumenstingl
2019-03-19 20:27             ` Martin Blumenstingl
2019-03-20  3:33             ` Liang Yang
2019-03-20  3:33               ` Liang Yang
2019-03-20  3:33               ` Liang Yang
2019-03-20  3:33               ` Liang Yang
2019-03-20  3:33               ` Liang Yang
2019-03-20 20:48               ` Martin Blumenstingl
2019-03-20 20:48                 ` Martin Blumenstingl
2019-03-20 20:48                 ` Martin Blumenstingl
2019-03-20 20:48                 ` Martin Blumenstingl
2019-03-21 12:10                 ` Liang Yang
2019-03-21 12:10                   ` Liang Yang
2019-03-21 12:10                   ` Liang Yang
2019-03-21 12:10                   ` Liang Yang
2019-03-21 12:10                   ` Liang Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFBinCBd=dOZjv4KEDY9ODOONDO=WtaBqAMRi_a+gH3_iZEAHQ@mail.gmail.com' \
    --to=martin.blumenstingl@googlemail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jianxin.pan@amlogic.com \
    --cc=liang.yang@amlogic.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.