I have created custom SPI controller slave driver. When the driver is running I sporadically get the following errors:
QuoteDisplay MoreDMA chain execution failed
UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 135:20480, written 0 bytes
UBI warning: ubi_eba_write_leb: failed to write data to PEB 135
UBI: recover PEB 135, move data to PEB 710
DMA chain execution failed
UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 710:2048, written 0 bytes
UBI warning: recover_peb: failed to write to PEB 710
UBI: try again
UBI: run torture test for PEB 710
UBI: recover PEB 135, move data to PEB 711
DMA chain execution failed
UBI error: ubi_io_write: error -5 while writing 131072 bytes to PEB 710:0, written 8192 bytes
UBI error: erase_worker: failed to erase PEB 710, error -5
UBI: mark PEB 710 as bad
DMA chain execution failed
UBI error: ubi_io_write: error -5 while writing 18432 bytes to PEB 711:4096, written 2048 bytes
UBI warning: recover_peb: failed to write to PEB 711
UBI: try again
UBI: recover PEB 135, move data to PEB 712
DMA chain execution failed
UBI error: ubi_io_write: error -5 while writing 18432 bytes to PEB 712:4096, written 2048 bytes
UBI warning: recover_peb: failed to write to PEB 712
UBI: try again
UBI: recover PEB 135, move data to PEB 713
BCH timeout, last DMA: 1
Show GPMI registers :
offset 0x000 : 0x03800000
offset 0x010 : 0x00000000
offset 0x020 : 0x00000000
offset 0x030 : 0x00000840
offset 0x040 : 0x181fc000
offset 0x050 : 0x181fc800
offset 0x060 : 0x0104000c
offset 0x070 : 0x00010203
offset 0x080 : 0xffff0000
offset 0x090 : 0x03023336
offset 0x0a0 : 0xc1000030
offset 0x0b0 : 0xff000005
offset 0x0c0 : 0x01000101
offset 0x0d0 : 0x05010000
BCH Geometry :
GF length : 14
ECC Strength : 8
Page Size in Bytes : 2048
Metadata Size in Bytes : 32
ECC Chunk Size in Bytes: 1024
ECC Chunk Count : 2
DMA chain execution failed
UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 713:2048, written 0 bytes
UBI: 7 PEBs left in the reserve
UBI: run torture test for PEB 711
UBI warning: recover_peb: failed to write to PEB 713
UBI warning: ubi_ro_mode: switch to read-only mode
UBIFS error (pid 1136): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 383:16384
UBI error: ubi_io_write: read-only mode
UBI error: erase_worker: failed to erase PEB 711, error -30
UBI error: do_work: work failed with error code -30
# UBI error: ubi_thread: ubi_bgt0d: work failed with error code -30
UBIFS error (pid 1098): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 10:22528
UBIFS warning (pid 1098): ubifs_ro_mode: switched to read-only mode, error -30
UBIFS: cannot re-mount R/O due to prior errors
UBIFS error (pid 1181): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 371:112640
UBIFS error (pid 1181): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 371:112640
UBIFS error (pid 1181): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 383:16384
UBIFS error (pid 1181): ubifs_write_node: cannot write 2048 bytes to LEB 1:10240, error -30
UBIFS warning (pid 1181): ubifs_ro_mode: switched to read-only mode, error -30
Flash blocks are marked as bad, but after using nand scrub from U-boot, the flash seems OK.
My driver has an interrupt service routine which copies data from the SPI controller into a memory buffer. The SPI clock rate is 6.25 MHz.
The "DMA chain execution failed" message comes from the "F&S i.MX6 GPMI NAND flash driver". What may cause this error?
Hein Gustavsen
Miros AS