Thread (3 messages) flat view 3 messages, 2 authors, 2018-01-02
DORMANTno replies

Revision v1 of 6 in this series.

Revisions (6)
  1. v1 [diff vs current]
  2. v1 [diff vs current]
  3. v1 current
  4. v1 [diff vs current]
  5. v1 [diff vs current]
  6. v1 [diff vs current]

[PATCH 00/12] Marvell NAND controller rework with ->exec_op()

From: Miquel RAYNAL <hidden>
Date: 2018-01-02 11:03:26

Hello Robert,

On Sat, 23 Dec 2017 18:14:18 +0100
Robert Jarzmik [off-list ref] wrote:
Miquel RAYNAL [off-list ref] writes:
quoted
quoted
Here it comes in [3]. I suspect the BBT parser here, here is the
extract that _might_ be relevant:
[    3.372907] nand: ->exec_op() parser: pattern not found!  
Indeed this might be the problem, it means there is one scenario
that should be handled by the parser that is missing. I am really
interrogative about which one it is and to discover it, can you
rebuild with

        #define DEBUG

in drivers/mtd/nand/nand_base.c too.  
It was already there, check the patch I attached to my previous mail.
quoted
This way the core will display the patterns it try to find a match
for.  
The core displays already debug message, as these are displayed :
[    3.228598] nand: executing subop:
[    3.232187] nand:     ->CMD      [0x90]
[    3.236077] nand:     ->ADDR     [1 cyc: 40]
[    3.240517] nand:     ->DATA_IN  [5 B, force 8-bit]

As to your statement "the core will display the patterns it try to
find a match for", how confident are you with it ? Because my reading
of the following code is quite different :
			if (!nand_op_parser_match_pat(pattern, &ctx))
				continue;

			nand_op_parser_trace(&ctx);
quoted
Also to ease the understanding, you might add a dump_stack() right
next to this error message.  
Attached in [1].
I just pushed two fixups on top of the Github branch [1], can you rebase
on top of them and give me the result?

The first patch just adds the auto bus width bit in nand->options.
The second removes the faulty ->change_column(), and does the same
check with another method.

I think the ECC issue you faced was related to pages being written
*and* empty. If this guess is right, the board should boot fine with
these changes.

Otherwise, please add the DEBUG define as before in both the core and
the driver and do not hesitate to add another dump_stack() where it
crashes (if applicable).

Thanks for your help,
Miqu?l

[1] https://github.com/miquelraynal/linux/commits/marvell/nand-next/nfc
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help