Marvell NAND controller rework with ->exec_op()
Get series with b4
b4 am 20180102120326.7a2cf1d1@xps13Versions newest first
- v1 Latest0 of 12 patches 1 replyIn review
Patches in v1 No applies recorded yet
None of the 12 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 00/12] Marvell NAND controller rework with ->exec_op()
Hello Robert,
Quoted 27 lines · On Sat, 23 Dec 2017 18:14:18 +0100 Robert Jarzmik <[email protected]>…
Quoted 4 lines · Miquel RAYNAL
Quoted 3 lines
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!Quoted 8 lines
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 DEBUGin
drivers/mtd/nand/nand_base.ctoo.It was already there, check the patch I attached to my previous mail.
Quoted 2 lines
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 :
Quoted 8 lines
if (!nand_op_parser_match_pat(pattern, &ctx)) continue; nand_op_parser_trace(&ctx);Quoted 2 lines
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