Hi There,
We change the spi kernel modules install strategy from buildin mode to ko mode.
Here are the kernel configuration changes we made in the file of tisdk_j7-evm_defconfig:
CONFIG_MTD_SPI_NOR=y and CONFIG_SPI_CADENCE_QUADSPI=y,
After above modify, there are some errors caused on linux kernel side.
Error Scenario One: dmesg | grep spi
[ 2.010726] cadence-qspi 47040000.spi: cqspi->wr_delay = 5600
[ 2.243031] spi-nor spi0.0: Unknown command extension type
[ 2.243045] spi-nor spi0.0: Unknown command extension type
[ 2.246684] cadence-qspi 47040000.spi: Searching for rxlow on TX = 16
[ 3.398274] cadence-qspi 47040000.spi: DMA wait_for_completion_timeout
[ 3.398328] spi-nor spi0.0: operation failed with -110
[ 3.398381] cadence-qspi 47040000.spi: rxlow: RX: 1 TX: 16 RD: 1
[ 3.399017] cadence-qspi 47040000.spi: rxhigh: RX: 60 TX: 16 RD: 2
[ 3.399036] cadence-qspi 47040000.spi: txlow: RX: 15 TX: 0 RD: 1
[ 3.399306] cadence-qspi 47040000.spi: txhigh: RX: 15 TX: 62 RD: 2
[ 3.399356] cadence-qspi 47040000.spi: topright: RX: 60 TX: 62 RD: 3
[ 3.399358] cadence-qspi 47040000.spi: bottomleft: RX: 1 TX: 0 RD: 1
[ 3.399450] cadence-qspi 47040000.spi: gaplow: RX: 4 TX: 3 RD: 1
[ 3.402138] cadence-qspi 47040000.spi: gaphigh: RX: 59 TX: 61 RD: 3
[ 3.402142] cadence-qspi 47040000.spi: Final tuning point: RX: 16 TX: 16 RD: 1
[ 3.402160] cadence-qspi 47040000.spi: Failed to find pattern at final calibration point
[ 3.402163] cadence-qspi 47040000.spi: PHY calibration failed: -22
[ 3.402166] spi-nor spi0.0: mt35xu512aba (65536 Kbytes)
[ 3.402180] 19 cmdlinepart partitions found on MTD device 47040000.spi.0
[ 3.402181] Creating 19 MTD partitions on "47040000.spi.0":
[ 3.402185] 0x000000000000-0x000000080000 : "ospi.sbl"
[ 3.415819] 0x000000080000-0x000000100000 : "ospi.tifs_a"
[ 3.431796] 0x000000100000-0x000000180000 : "ospi.tifs_b"
[ 3.447756] 0x000000180000-0x000000580000 : "ospi.mcufw_a"
[ 3.463785] 0x000000580000-0x000000980000 : "ospi.mcufw_b"
[ 3.479748] 0x000000980000-0x000001d80000 : "ospi.combine_a"
[ 3.499784] 0x000001d80000-0x000003180000 : "ospi.combine_b"
[ 3.515773] 0x000003180000-0x0000031a0000 : "ospi.misc_a"
[ 3.531751] 0x0000031a0000-0x0000031c0000 : "ospi.misc_b"
[ 3.551791] 0x0000031c0000-0x0000031e0000 : "ospi.factory"
[ 3.567773] 0x0000031e0000-0x000003200000 : "ospi.safe_a"
[ 3.583807] 0x000003200000-0x000003220000 : "ospi.safe_b"
[ 3.599760] 0x000003220000-0x000003260000 : "ospi.sonardata"
[ 3.616298] 0x000003260000-0x000003460000 : "ospi.mcudata"
[ 3.631871] 0x000003460000-0x000003480000 : "ospi.imudata"
[ 3.647972] 0x000003480000-0x0000034a0000 : "ospi.pstore"
[ 3.663887] 0x0000034a0000-0x0000036a0000 : "ospi.reserved"
[ 3.679861] 0x000003fe0000-0x000004000000 : "ospi.patterns"
[ 3.697061] 0x000000000000-0x000004000000 : "ospi.whole_spi"
[ 6.630390] cadence-qspi 47040000.spi: DMA wait_for_completion_timeout
[ 6.630396] spi-nor spi0.0: operation failed with -110
[ 8.710337] cadence-qspi 47040000.spi: DMA wait_for_completion_timeout
[ 8.710342] spi-nor spi0.0: operation failed with -110
[ 14.054326] cadence-qspi 47040000.spi: DMA wait_for_completion_timeout
[ 14.054331] spi-nor spi0.0: operation failed with -110
Error Scenario Two:
root@sixi_master:/opt/data# flashcp -v app-master /dev/mtd3
Erasing blocks: 6/6 (100%)
Writing data: 658k/658k (100%)
Verifying data: 10k/658k (1%)
While reading data from /dev/mtd3: Connection timed out
Error Scenario Three:
18-46-12.794root@sixi_master:/opt/data# flashcp -v app-master /dev/mtd3
18-46-14.131Erasing blocks: 6/6 (100%)
18-46-14.738Writing data: 658k/658k (100%)
18-46-14.798Verifying data: 10k/658k (1%)File does not seem to match flash data. First mismatch at 0x00000000-0x00002800
Why did the above errors occur after we modified the loading mode of SPI module( spi-nor.ko and spi-cadence-quadspi.ko),
please help to analyze the the differences between "buildin" mode and "ko" mode in TDA4 platform.
Li,
Bests