public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Miquel RAYNAL <miquel.raynal@free-electrons.com>
To: "Sean Nyekjær" <sean.nyekjaer@prevas.dk>
Cc: <ezequiel.garcia@free-electrons.com>,
	<linux-mtd@lists.infradead.org>,
	"Kasper Revsbech (KREV)" <krev@triax.com>,
	Boris Brezillon <Boris.Brezillon@free-electrons.com>
Subject: Re: [BUG] pxa3xx: wait time out when scanning for bb
Date: Tue, 12 Dec 2017 12:35:23 +0100	[thread overview]
Message-ID: <20171212123523.48185f21@xps13> (raw)
In-Reply-To: <a0267c71-4333-7dd4-dcf4-14aced37f8f9@prevas.dk>

On Tue, 12 Dec 2017 12:28:46 +0100
Sean Nyekjær <sean.nyekjaer@prevas.dk> wrote:

> On 2017-12-12 12:08, Miquel RAYNAL wrote:
> > On Tue, 12 Dec 2017 11:55:22 +0100
> > Sean Nyekjær <sean.nyekjaer@prevas.dk> wrote:
> >  
> >> Hi Miquel  
> >>> Are you sure your U-Boot does actually use the BBT?
> >>>
> >>> The last two blocks (supposedly written by U-Boot) are usually
> >>> declared bad by Linux when it does not find the BBT. This is not
> >>> the case, like if the last blocks were empty.
> >>>
> >>> Could you try this, still with "ecc-none" and without the
> >>> "nand-keep-config" property:  
> >> &nand_controller {
> >>           status = "okay";
> >>           pinctrl-names = "default";
> >>           pinctrl-0 = <&nand_pins>, <&nand_rb>;
> >>
> >>           nand@0 {
> >>                   reg = <0>;
> >>                   label = "pxa3xx_nand-0";
> >>                   marvell,rb = <0>;
> >>                   nand-ecc-mode = "none";
> >>                   nand-on-flash-bbt;
> >>       };
> >> };  
> >>> 1/ From U-Boot, scrub the last 4 blocks. As your NAND is 256MiB
> >>> wide with 128kiB blocks, this should do the trick:
> >>>
> >>>           nand scrub 0xFF80000 0x80000
> >>>
> >>> 2/ At this point, U-Boot should tell you it cannot find a bad
> >>> block table, a second later it will tell you that it created it
> >>> twice at the end of the NAND chip.  
> >> Yes uboot is recreating the bbt and after a new reset it recognise
> >> the new bbt.  
> >>> 3/ Boot Linux with ECC == none
> >>> 4/ Dump the first page of the 4 last blocks:
> >>>
> >>>           nanddump -nop -l 0x800 -s <adddr> /dev/mtd1  
> >> See tracing below  
> >>> Supposedly that /dev/mtd1 is the _last_ MTD partition of your NAND
> >>> device and <addr> being sequentially:
> >>>
> >>>           0xFF80000
> >>>           0xFFA0000
> >>>           0xFFC0000
> >>>           0xFFE0000
> >>>
> >>> Please copy/paste the overall trace without any cuts (including
> >>> U-Boot traces, literally everything).
> >>>     
> >>
> >> U-Boot 2017.11-00035-ge9282bb30b-dirty (Dec 12 2017 - 11:22:21
> >> +0100)
> >>
> >> SoC:   MV88F6810-A0 at 1066 MHz
> >> DRAM:  1 GiB (533 MHz, 16-bit, ECC not enabled)
> >> WDT:   Enabling Armada 385 watchdog.
> >> NAND:  PXA3xx: strength 4, ecc_stepsize 512, page_size 2048
> >> 256 MiB
> >> Bad block table found at page 131008, version 0x01
> >> Bad block table found at page 130944, version 0x01
> >> Model: Triax dvb-tc output
> >> Board: Triax dvb-tc output
> >> Net:
> >> Warning: ethernet@30000 (eth0) using random MAC address -
> >> 26:d3:56:98:ca:b4 eth0: ethernet@30000  
> >> => nand scrub 0xFF80000 0x80000  
> >>
> >> NAND scrub: device 0 offset 0xff80000, size 0x80000
> >> Warning: scrub option will erase all factory set bad blocks!
> >>            There is no reliable way to recover them.
> >>            Use this command only for testing purposes if you
> >>            are sure of what you are doing!
> >>
> >> Really scrub this NAND flash? <y/N>
> >> y
> >> Erasing at 0xffe0000 -- 100% complete.
> >> OK  
> >> => boot  
> >>
> >> Starting kernel ...
> >>
> >> [    0.000000] Booting Linux on physical CPU 0x0
> >> [    0.000000] Linux version 4.15.0-rc1-00094-g1791eb8f2475-dirty
> >> (skn@skn) (gcc version 7.2.0 (Arch Repository)) #30 SMP PREEMPT Tue
> >> Dec 12 09:28:30 CET 2017
> >> ...
> >> [    2.692801] nand: device found, Manufacturer ID: 0x2c, Chip ID:
> >> 0xda [    2.699176] nand: Micron MT29F2G08ABAEAH4
> >> [    2.703232] nand: 256 MiB, SLC, erase size: 128 KiB, page size:
> >> 2048, OOB size: 64
> >> [    2.710928] nand: NAND_ECC_NONE selected by board driver. This
> >> is not recommended!
> >> [    2.718523] nand: WARNING: pxa3xx_nand-0: the ECC used on your
> >> system is too weak compared to the one required by the NAND chip
> >> [    2.731429] Bad block table not found for chip 0
> >> [    2.737384] Bad block table not found for chip 0
> >> [    2.742024] Scanning device for bad blocks
> >> [    2.891818] Bad block table written to 0x00000ffe0000, version
> >> 0x01 [    2.898837] Bad block table written to 0x00000ffc0000,
> >> version 0x01 [    2.905152] 2 cmdlinepart partitions found on MTD
> >> device pxa3xx_nand-0 [    2.911708] Creating 2 MTD partitions on
> >> "pxa3xx_nand-0": [    2.917130] 0x000000000000-0x000000100000 :
> >> "uboot" [    2.922512] 0x000000100000-0x000010000000 : "ubi0"
> >> ...
> >> output-module login: root
> >> Password:
> >> root@output-module:~#
> >> root@output-module:~# nanddump -nop -l 0x800 -s 0xFF80000 /dev/mtd1
> >> Block size 131072, page size 2048, OOB size 64
> >> Dumping data starting at 0x0ff80000 and ending at 0x0ff80800...
> >> root@output-module:~# nanddump -nop -l 0x800 -s 0xFFA0000 /dev/mtd1
> >> Block size 131072, page size 2048, OOB size 64
> >> Dumping data starting at 0x0ffa0000 and ending at 0x0ffa0800...
> >> root@output-module:~# nanddump -nop -l 0x800 -s 0xFFC0000 /dev/mtd1
> >> Block size 131072, page size 2048, OOB size 64
> >> Dumping data starting at 0x0ffc0000 and ending at 0x0ffc0800...
> >> root@output-module:~# nanddump -nop -l 0x800 -s 0xFFE0000 /dev/mtd1
> >> Block size 131072, page size 2048, OOB size 64
> >> Dumping data starting at 0x0ffe0000 and ending at 0x0ffe0800...
> >> root@output-module:~# reboot
> >> ...
> >> U-Boot 2017.11-00035-ge9282bb30b-dirty (Dec 12 2017 - 11:22:21
> >> +0100)
> >>
> >> SoC:   MV88F6810-A0 at 1066 MHz
> >> DRAM:  1 GiB (533 MHz, 16-bit, ECC not enabled)
> >> WDT:   Enabling Armada 385 watchdog.
> >> NAND:  PXA3xx: strength 4, ecc_stepsize 512, page_size 2048
> >> 256 MiB
> >> Bad block table not found for chip 0
> >> Bad block table not found for chip 0
> >> Scanning device for bad blocks
> >> Bad block table written to 0x00000ffe0000, version 0x01
> >> Bad block table written to 0x00000ffc0000, version 0x01
> >>
> >> If I reboot uboot is unable recognise the bbt, but recreates it.
> >> But the kernel is scanning on every boot.
> >> Am I doing anything wrong in the nanddump command?  
> > I did not realize your NAND had 2 partitions (I though /dev/mtd0 was
> > something else).  
> Sorry i should have said that :-)
> >
> > In Linux, the offset your give to nanddump is from the beginning of
> > the MTD device, not the NAND device. Because /dev/mtd1 starts at
> > 0x100000 (8 blocks are used for U-Boot), you have to substract
> > 0x100000 from the offsets I gave you otherwise you read beyond the
> > device (ie. nothing).
> >
> > Please try again with:
> >
> >          0xFE80000
> >          0xFEA0000
> >          0xFEC0000
> >          0xFEE0000  
> root@wandboard:~# nanddump -nop -l 0x800 -s 0xFE80000 /dev/mtd1
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x0fe80000 and ending at 0x0fe80800...
> root@wandboard:~# nanddump -nop -l 0x800 -s 0xFEA0000 /dev/mtd1
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x0fea0000 and ending at 0x0fea0800...
> root@wandboard:~# nanddump -nop -l 0x800 -s 0xFEC0000 /dev/mtd1
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x0fec0000 and ending at 0x0fec0800...
> root@wandboard:~# nanddump -nop -l 0x800 -s 0xFEE0000 /dev/mtd1
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x0fee0000 and ending at 0x0fee0800...
> 

Failure is on me for this one: Linux marks the block containing the BBT
as bad to avoid user accesses on it, please use --bb=dumpbad in the
nanddump command.

Once you will have the trace, please do the same again without
on-flash-bbt, this way we can compare both U-Boot and Linux layouts and
find what is wrong.

Thank you,
Miquèl

  reply	other threads:[~2017-12-12 11:35 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-28  9:12 [BUG] pxa3xx: wait time out when scanning for bb Sean Nyekjær
2017-11-28 13:02 ` Miquel RAYNAL
2017-11-28 13:12   ` Sean Nyekjær
2017-11-28 13:30     ` Miquel RAYNAL
2017-11-28 13:42       ` Sean Nyekjær
2017-11-28 14:04         ` Miquel RAYNAL
2017-11-29  7:14           ` Sean Nyekjær
2017-11-29  8:03             ` Miquel RAYNAL
2017-11-30 12:00               ` Sean Nyekjær
2017-11-30 17:18                 ` Miquel RAYNAL
2017-11-30 18:13                   ` Sean Nyekjær
2017-12-01  8:15                     ` Miquel RAYNAL
2017-12-01  8:54                       ` Sean Nyekjær
2017-12-07 20:38                         ` Miquel RAYNAL
2017-12-08  9:04                           ` Sean Nyekjær
2017-12-08  9:21                             ` Miquel RAYNAL
2017-12-11  8:25                               ` Sean Nyekjær
2017-12-11  8:45                                 ` Sean Nyekjær
2017-12-11  9:53                                 ` Miquel RAYNAL
2017-12-11 10:20                                   ` Sean Nyekjær
2017-12-11 11:35                                     ` Sean Nyekjær
2017-12-11 13:22                                       ` Sean Nyekjær
2017-12-11 14:02                                         ` Miquel RAYNAL
2017-12-11 14:09                                           ` Miquel RAYNAL
2017-12-11 14:49                                             ` Boris Brezillon
2017-12-12  8:44                                             ` Sean Nyekjær
2017-12-12  8:51                                               ` Miquel RAYNAL
2017-12-12  8:56                                                 ` Sean Nyekjær
2017-12-12 10:12                                                   ` Miquel RAYNAL
2017-12-12 10:55                                                     ` Sean Nyekjær
2017-12-12 11:08                                                       ` Miquel RAYNAL
2017-12-12 11:28                                                         ` Sean Nyekjær
2017-12-12 11:35                                                           ` Miquel RAYNAL [this message]
2017-12-12 11:49                                                             ` Sean Nyekjær
2017-12-12 12:47                                                               ` Miquel RAYNAL
2017-12-12 13:09                                                                 ` Sean Nyekjær
2017-12-12 13:35                                                                   ` Miquel RAYNAL
2017-12-12 18:10                                                                     ` Sean Nyekjær
2017-12-12 18:23                                                                       ` Miquel RAYNAL
2017-12-13  6:25                                                                         ` Sean Nyekjær
2017-12-13  8:41                                                                           ` Miquel RAYNAL
2017-12-13  9:31                                                                             ` Sean Nyekjær
2017-12-15 17:25                                                                             ` Miquel RAYNAL
2017-12-15 18:56                                                                               ` Sean Nyekjær
2017-12-15 19:19                                                                                 ` Miquel RAYNAL
2017-12-17 11:56                                                                                   ` Sean Nyekjaer
2017-12-17 13:19                                                                                     ` Boris Brezillon
2017-12-17 21:47                                                                                       ` Sean Nyekjaer
2017-12-17 22:00                                                                                         ` Boris Brezillon
2017-12-17 22:15                                                                                           ` [SPAM] " Sean Nyekjær
2017-12-17 22:19                                                                                             ` Boris Brezillon
2017-12-17 22:19                                                                                             ` Miquel RAYNAL
2017-12-18  6:23                                                                                               ` Sean Nyekjær
2017-12-18  8:56                                                                                                 ` Miquel RAYNAL
2017-12-18  9:26                                                                                                   ` Sean Nyekjær
2017-12-18  9:35                                                                                                     ` Miquel RAYNAL
2017-12-18 10:12                                                                                                       ` Sean Nyekjær
2017-12-18 10:19                                                                                                         ` Miquel RAYNAL
2017-12-18 10:26                                                                                                           ` Sean Nyekjær
2017-12-18 10:45                                                                                                             ` Boris Brezillon
2017-12-18 10:48                                                                                                               ` Sean Nyekjær
2017-12-18 12:43                                                                                                                 ` Boris Brezillon
2017-12-18  8:57                                                                                                 ` [SPAM] " Boris Brezillon
2017-12-17 13:48                                                                                     ` Boris Brezillon
2017-12-11 20:11                                     ` Miquel RAYNAL
2017-12-09 23:18       ` Ezequiel Garcia
2017-12-10 14:17         ` Miquel RAYNAL
2017-12-11 12:30           ` Ezequiel Garcia
2017-12-11 13:13             ` Miquel RAYNAL
2017-12-11 16:08               ` Ezequiel Garcia
2017-12-11 16:41                 ` Miquel RAYNAL
     [not found]             ` <CAL92e2W7fLjVOWFgH2PpRLRP7Tf5L1vta0jduWm+bTVm647MNQ@mail.gmail.com>
2017-12-11 16:24               ` Ezequiel Garcia
2017-12-11 16:45                 ` Boris Brezillon
2017-12-11 21:16                 ` Boris Brezillon
2017-12-12  6:01                   ` Greg Cook
2017-12-12  7:09                     ` Ezequiel Garcia
2017-12-12  7:30                       ` Greg Cook
2017-12-12  8:15                         ` Boris Brezillon
2017-12-12 16:22                           ` Ezequiel Garcia
2017-12-12  6:36               ` Sean Nyekjær
2017-12-12  6:50                 ` Ezequiel Garcia
2017-12-12  7:17                   ` Greg Cook
2017-12-09 23:04   ` Ezequiel Garcia
2017-12-09 23:22 ` Ezequiel Garcia
2017-12-09 23:24   ` Ezequiel Garcia

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=20171212123523.48185f21@xps13 \
    --to=miquel.raynal@free-electrons.com \
    --cc=Boris.Brezillon@free-electrons.com \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=krev@triax.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=sean.nyekjaer@prevas.dk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox