Re: GPMI iMX6ull timeout on DMA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Boris,

On 12/8/19 5:31 pm, Boris Brezillon wrote:
On Mon, 12 Aug 2019 12:50:36 +1000
[snip]
Hm, CTRL1 is identical. Can you dump all regs at the beginning and at
the end of those funcs?

Here is a more complete dump of registers. Trace points are at
entry and exit of the respective functions in the different
kernel versions. Register dumping code is identical for both.


Linux version 4.16.0 (gerg@goober) (gcc version 4.8.3 (GCC)) #10 Tue Aug 13 10:24:28 AEST 2019
...
drivers/mtd/nand/gpmi-nand/gpmi-lib.c(1073): gpmi_begin(): ENTRY
  HW_GPMI_CTRL0=0x00000000
  HW_GPMI_CTRL1=0x01c4000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000400
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00010203
  HW_GPMI_TIMING1=0x00000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x00000000
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000000
  r->clock[0]=22000000
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda
nand: Micron MT29F2G08ABAEAWP
nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
gpmi-nand 1806000.gpmi-nand: enable the asynchronous EDO mode 5
drivers/mtd/nand/gpmi-nand/gpmi-lib.c(1073): gpmi_begin(): ENTRY
  HW_GPMI_CTRL0=0x01800001
  HW_GPMI_CTRL1=0x0104000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000000
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00010203
  HW_GPMI_TIMING1=0x05000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x00000000
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000101
  r->clock[0]=99000000
drivers/mtd/nand/gpmi-nand/gpmi-lib.c(1136): gpmi_begin(): EXIT
  HW_GPMI_CTRL0=0x01800001
  HW_GPMI_CTRL1=0x01c6800c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000000
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00010101
  HW_GPMI_TIMING1=0x90000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x00000000
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000101
  r->clock[0]=99000000
Scanning device for bad blocks
5 ofpart partitions found on MTD device gpmi-nand
Creating 5 MTD partitions on "gpmi-nand":
0x000000000000-0x000000500000 : "u-boot"
0x000000500000-0x000000600000 : "u-boot-env"
0x000000600000-0x000000800000 : "log"
0x000000800000-0x000010000000 : "flash"
0x000000000000-0x000010000000 : "all"
gpmi-nand 1806000.gpmi-nand: driver registered.
...

Note that the first ENTRY dump has no matching EXIT dump. From the
code I assume it is returning from gpmi_begin() at the
"if (!hw.sample_delay_factor)" check.


And for the 5.1.14 kernel:

Linux version 5.1.14 (gerg@goober) (gcc version 4.8.3 (GCC)) #27 Tue Aug 13 10:20:32 AEST 2019
...
drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c(512): gpmi_nfc_apply_timings(): ENTRY
  HW_GPMI_CTRL0=0x00000000
  HW_GPMI_CTRL1=0x01c4000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000400
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00010203
  HW_GPMI_TIMING1=0x00000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x00000000
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000000
  r->clock[0]=22000000
drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c(536): gpmi_nfc_apply_timings(): EXIT
  HW_GPMI_CTRL0=0x00000000
  HW_GPMI_CTRL1=0x0104000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000400
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00020101
  HW_GPMI_TIMING1=0x60000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x00000000
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000000
  r->clock[0]=22000000
random: fast init done
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda
nand: Micron MT29F2G08ABAEAWP
nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c(512): gpmi_nfc_apply_timings(): ENTRY
  HW_GPMI_CTRL0=0x01800001
  HW_GPMI_CTRL1=0x0104000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000000
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00020101
  HW_GPMI_TIMING1=0x60000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x0000003f
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000101
  r->clock[0]=22000000
drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c(536): gpmi_nfc_apply_timings(): EXIT
  HW_GPMI_CTRL0=0x01800001
  HW_GPMI_CTRL1=0x0104000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000000
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00020101
  HW_GPMI_TIMING1=0xb0000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x0000003f
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000101
  r->clock[0]=22000000
drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c(512): gpmi_nfc_apply_timings(): ENTRY
  HW_GPMI_CTRL0=0x01800001
  HW_GPMI_CTRL1=0x0104000c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000000
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00020101
  HW_GPMI_TIMING1=0xb0000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x000000e0
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000000
  r->clock[0]=22000000
drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c(536): gpmi_nfc_apply_timings(): EXIT
  HW_GPMI_CTRL0=0x01800001
  HW_GPMI_CTRL1=0x01c6800c
  HW_GPMI_COMPARE=0x00000000
  HW_GPMI_ECCCTRL=0x00000000
  HW_GPMI_ECCCOUNT=0x00000000
  HW_GPMI_PAYLOAD=0x00000000
  HW_GPMI_AUXILIARY=0x00000000
  HW_GPMI_TIMING0=0x00010101
  HW_GPMI_TIMING1=0xe0000000
  HW_GPMI_TIMING2=0x23023336
  HW_GPMI_DATA=0x000000e0
  HW_GPMI_STAT=0xff000005
  HW_GPMI_DEBUG=0x00000000
  r->clock[0]=99000000
Scanning device for bad blocks
5 fixed-partitions partitions found on MTD device gpmi-nand
Creating 5 MTD partitions on "gpmi-nand":
0x000000000000-0x000000500000 : "u-boot"
0x000000500000-0x000000600000 : "u-boot-env"
0x000000600000-0x000000800000 : "log"
0x000000800000-0x000010000000 : "flash"
0x000000000000-0x000010000000 : "all"
gpmi-nand 1806000.gpmi-nand: driver registered.
...


Regards
Greg



______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux