public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [RFC PATCH v4 0/2] mtd: nand: vf610_nfc: make use of ->exec_op()
@ 2018-02-22 20:29 Stefan Agner
  2018-02-22 20:29 ` [RFC PATCH v4 1/2] " Stefan Agner
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Stefan Agner @ 2018-02-22 20:29 UTC (permalink / raw)
  To: miquel.raynal, boris.brezillon, computersforpeace, dwmw2,
	marek.vasut, cyrille.pitchen
  Cc: richard, bpringle, marcel.ziswiler, linux-mtd, Stefan Agner

Fourth revision of the rework patchset to use exec_op for NXP
Vybrid (and others) NAND Flash Controller. The most important
change tries to implement a nicer way of handling the endianness
hack.

However, this currently fails oobtest and nandbiterrs test. With
some debugging enabled it looks like this:
[   42.930460] mtd_oobtest: writing OOBs of whole device
[   42.935576] vf610_nfc 400e0000.nand: OP_CMD: code 0xff
[   42.944713] vf610_nfc 400e0000.nand: OP_CMD: code 0x70
[   42.949955] vf610_nfc 400e0000.nand: OP_CMD: code 0x80
[   42.955254] vf610_nfc 400e0000.nand: OP_ADDR: col 2048, row 1024
[   42.961387] vf610_nfc 400e0000.nand: OP_DATA_OUT: len 64, offset 0
[   42.974332] vf610_nfc 400e0000.nand: OP_CMD: code 0x70
[   42.983101] vf610_nfc_write_oob, ret -5
[   42.986986] mtd_oobtest: error: writeoob failed at 0x0
[   42.992311] mtd_oobtest: error: use_len 2, use_offset 0
[   42.999054] mtd_oobtest: error -5 occurred
[   43.003301] =================================================

It seems that when I set page_access on such granular level I
do in the current patchset version, then it influences commands
such as status too... I guess I have to partially reimplement
nand_exec_prog_page_op..?

--
Stefan

Changes in v4:
- Rebased to nand/next
- Simplify filling of address cycles
- Use accessors for SRAM (vf610_nfc_rd_from_sram/vf610_nfc_wr_to_sram)
- Use two op-parser patterns to avoid a single command reading and writing
  in a single operation
- Implement (read|write)_(page|oob)[_raw] to set page_access
- Set and clear vf610_nfc_ecc_mode in ecc (read|write)_page
- Clear/set 16-bit config when 16-bit bus is used and 8-bit access is
  requested

Changes in v3:
- Separate exec_op() callback addition and removal of old callbacks
- Push data into regs in one function
- Readd op parser
- Implement custom read/write page for hardware ECC
- Rely on generic ecc.write_page_raw
- Use nand_read_oob_op instead of nand_read_page_op

Stefan Agner (2):
  mtd: nand: vf610_nfc: make use of ->exec_op()
  mtd: nand: vf610_nfc: remove old hooks

 drivers/mtd/nand/raw/vf610_nfc.c | 642 ++++++++++++++++++++++++---------------
 1 file changed, 399 insertions(+), 243 deletions(-)

-- 
2.16.2

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-02-26 20:54 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-22 20:29 [RFC PATCH v4 0/2] mtd: nand: vf610_nfc: make use of ->exec_op() Stefan Agner
2018-02-22 20:29 ` [RFC PATCH v4 1/2] " Stefan Agner
2018-02-22 22:06   ` Boris Brezillon
2018-02-26  7:48     ` Stefan Agner
2018-02-26 20:05       ` Stefan Agner
2018-02-26 20:53         ` Boris Brezillon
2018-02-23 12:34   ` Miquel Raynal
2018-02-22 20:29 ` [RFC PATCH v4 2/2] mtd: nand: vf610_nfc: remove old hooks Stefan Agner
2018-02-22 22:14   ` Boris Brezillon
2018-02-22 21:00 ` [RFC PATCH v4 0/2] mtd: nand: vf610_nfc: make use of ->exec_op() Boris Brezillon
2018-02-22 22:24 ` Boris Brezillon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox