Hi NXP Team,
I am working on a custom design based on the i.MX8MP processor, which incorporates an MRAM (MR25H40CDFR) and an ADC (ADC108S022CIMTX/NOPB) on the same ECSPI2 bus. During thermal testing at -5°C, I am encountering SPI transfer failures and I/O errors sometimes.
Below are the details of my setup and the issue:
**Setup:**
- **Processor:** i.MX8MP
- **MRAM:** MR25H40CDFR
- **ADC:** ADC108S022CIMTX/NOPB
- **Bus:** ECSPI2
- **File System:** EXT4 for MRAM
MRAM information:
root@x:~ mtdinfo /dev/mtd1
mtd1
Name: spi1.0
Type: nor
Eraseblock size: 524288 bytes, 512.0 KiB
Amount of eraseblocks: 1 (524288 bytes, 512.0 KiB)
Minimum input/output unit size: 1 byte
Sub-page size: 1 byte
Character device major/minor: 90:2
Bad blocks are allowed: false
Device is writable: true
**Procedure:**
1. A 300KiB file is created outside of the MRAM memory.
2. The MRAM is formatted with an ext4 filesystem using the command `mkfs.ext4 /dev/mtdblock1`.
3. The MRAM is mounted to `/home/root/mram_mount`.
4. The 300KiB file is repeatedly copied to and deleted from the MRAM memory. This 4th step is executing in loop.
The above sequence runs successfully for 16 hours at room temperature. Despite the SPI driver-level messages, every write operation has been successful."
However, during the -5°C thermal test, intermittent SPI transfer failures are observed.
**Log Snippets of Errors:**
```
[14673.252802] spi-nor spi1.0: SPI transfer failed: -110
[14673.307857] Buffer I/O error on device mtdblock1, logical block 23
[15353.539272] spi-nor spi1.0: SPI transfer failed: -110
[15712.131311] spi-nor spi1.0: SPI transfer failed: -110
[16895.075249] spi-nor spi1.0: SPI transfer failed: -110
[17978.755255] spi-nor spi1.0: SPI transfer failed: -110
[19593.923287] spi-nor spi1.0: SPI transfer failed: -110
[21138.691278] spi-nor spi1.0: SPI transfer failed: -110
[37603.107250] spi-nor spi1.0: SPI transfer failed: -110
[37603.181392] Buffer I/O error on device mtdblock1, logical block 67
[41168.195269] spi-nor spi1.0: SPI transfer failed: -110
[41168.294993] Buffer I/O error on device mtdblock1, logical block 265
[45189.283253] spi-nor spi1.0: SPI transfer failed: -110
[46517.764465] spi-nor spi1.0: SPI transfer failed: -110
[49571.203261] spi-nor spi1.0: SPI transfer failed: -110
[51582.019248] spi-nor spi1.0: SPI transfer failed: -110
```
**Request for Assistance:**
1. **Root Cause Identification:** What could be causing these intermittent SPI transfer failures during low-temperature testing?
2. **SPI Configuration:** Are there specific ECSPI settings or configurations recommended for use with MRAM and ADC on the same bus in low-temperature environments?
3. **Driver-Level Adjustments:** Are there any known driver-level adjustments or patches for handling SPI transfers more robustly in such conditions?
4. **Diagnostic Steps:** What additional diagnostic steps can I perform to pinpoint the exact cause of these failures?
Any insights or recommendations from the community would be greatly appreciated.
Thanks & Regards,
Maulik
Hello,
It is possible that you are playing with Comercial Grade of MX8MP that has operating temperature of 0 degrees to 70 degrees and check you memory temperature.
regards
Hi @Bio_TICFSL ,
I have checked grade of my iMX8MP and MRAM chip. Both are industrial grade and supports -40 degree to +85 degree...
MRAM Part:
IMX8MP Part:
Hello,
Per the error you are seeing, it looks like temperature issue, Check the connection of ecspi maybe it has an space.
Regards
Hi @Bio_TICFSL ,
Thanks for your input.
>>> "Check the connection of ecspi maybe it has an space."
Do you mean if there is a disconnection between processor and MRAM? Can you please elaborate more?
FYI, the error is observed sometimes in-between the test, not observed continuously. There were cases where the error were not observed for sometime and then it comes back occasionally and again no error message for sometime.
Thanks,
Hi @Bio_TICFSL ,
Did you get a chance to review my last message.
We are unable to perform probing at a -5 degree Celsius setup due to probe dependency. However, we have verified the waveforms and all necessary eCSPI parameters, such as setup time and hold time, and everything appears normal at room temperature.
I am currently using the Linux kernel version 5.4 on an i.MX8MP processor. I have a few specific questions and would greatly appreciate your insights:
Are there any known improvements or bug fixes related to the SPI-NOR and SPI-IMX drivers in the newer kernel versions that could be beneficial for the i.MX8MP processor to resolve "spi-transfer" above mentioned error?
I am experiencing issues "spi-transfer failure" sometimes in my device at -5 degrees Celsius. Are there any known errata or issues related to the i.MX8MP processor that could explain these temperature-related problems?
Thank you for your assistance. Any documentation, links, or personal experiences shared would be highly appreciated.
Thanks,
Maulik