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/