微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt6797上spi1问题

mt6797上spi1问题

时间:10-02 整理:3721RD 点击:
MT6797上调试指纹使用SPI1
fifo模式通讯挣常,DMA模式提示
"Warning!Tx_DMA address range error in 4G mode,dma:0
按照FAQ17880:
测试可参考FAQ17506.
无法通讯。请开启/kernel-3.18/drivers/spi/mediatek/mt6797/spi.c 下的debug feature(#define SPI_DEBUG,#define SPI_VERBOSE),并抓取LOG。
问题原因可能如下:
1.未开启针对4gb ram测试的feature。
关键LOG类似: <6>[  146.135788] (0)[2742:sh][name:spi_dev&][SPI-UT]: [spi_setup_xfer]:[115]Wanning: If using SPI1, you should define <USE_SPI1_4GB_TEST = 1>
solution:开启/kernel-3.18/drivers/spi/mediatek/mt6797/spi-dev.c 文件中的下面的feature
#define USE_SPI1_4GB_TEST (0)
2.未给spi1传输分配memory空间(问题常发生在dma方式下)
关键LOG类似:<3>[  126.993964] -(0)[2527:sh]mt-spi 11012000.spi: Warning!Tx_DMA address range error in 4G mode,dma:0
从log中可看到dma的地址为0,所以dma mode下无法发送数据。
solution:/kernel-3.18/arch/ARM64/boot/dts/mt6797.dtsi 中加入spi使用分配的空间,
spi-reserve-memory {
   compatible = "mediatek,spi-reserve-memory";
   no-map;
   size = <0 0x8000>; /* SPI USER MEMORY SIZE*/   ----大小需要与spi-dev.c的reserve_memory_spi_fn一致
   alignment = <0 0x10000>;
   alloc-ranges = <0 0x40000000 0 0x80000000>;
  };
3.接收没有数据。
关键LOG:
<3>[  271.269428]  (4)[2560:sh][SPI-UT]: [spi_recv_check_all]:[242]tx xfer 0 is:1
<3>[  271.269439]  (4)[2560:sh][SPI-UT]: [spi_recv_check_all]:[243]rx xfer 0 is:0
<3>[  271.269452]  (4)[2560:sh][SPI-UT]: [spi_recv_check_all]:[242]tx xfer 1 is:2
<3>[  271.269463]  (4)[2560:sh][SPI-UT]: [spi_recv_check_all]:[243]rx xfer 1 is:0
从LOG看发送有数据,但是接收没有,发送有说明平台transfer已经成功,接收没有的原因应该是SPI的MOSI和MISOpin未短接,造成MISO上没有数据信号。
solution:硬件上短接MISO和MOSI。

测试没有问题,但是使用指纹通讯读取数据时spi通讯还是不行,只是没有在报错Warning!Tx_DMA address range error in 4G mode,dma:0

有谁遇到过吗

請問一下,你spi-reserve-memory是加在SPI@0x1100A000那個node中嗎?

请问后面通讯问题解决了吗? 什么解决的?谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top