合众恒跃:T536-F-EVM LBC 读 FPGA 一直 DMA RX timeout
-
大家好,我在测试 T536-F-EVM 板载 FPGA 的 LBC 通信,遇到 DMA 读超时问题,想确认设备树和 LBC 时序配置是否正确。
环境
- 开发板:T536-F-EVM
- SoC:T536,4 核 A55 + E907
- SDK:tina_t536_v1.1
- 内核:linux-5.10-origin
- 板级配置:HZ-T536-F_EVM
- FPGA 固件:fpga_top_3.sfc
- MD5:6333f10097dfaf3c415bc51f2e5ac241
现象
官方 Linux 固件下测试 lbc_dma_demo,LBC 初始化就失败。
我重新编译修改后的镜像后,LBC 可以 probe 和初始化,但读 FPGA 寄存器仍然 DMA RX timeout。
启动日志:
sunxi-lbc 2810000.lbc-controller: local bus driver probe, version 1.0.5
sunxi-lbc 2810000.lbc-controller: start addr 0x10000000 , size 0x8000000
sunxi-lbc 2810000.lbc-controller: lbc-io-vol 1800000
sunxi-lbc 2810000.lbc-controller: dma alloc coherent done
sunxi-lbc 2810000.lbc-controller: local bus driver probe ok ...读测试:
./lbc_dma_reg_read 0x0 0x4 0x1c
结果:
[0x0000] read failed: ret=-1 errno=Bad address
[0x0004] read failed: ret=-1 errno=Bad address
[0x001c] read failed: ret=-1 errno=Bad addressdmesg:
file dma rx start: CCR=0x84030250 CSR=0x00001004 IRPR=0x00000040 IODLR=0x00000100 AR=0x00000000 STATUS=0x00000000 FSM=0x00000000
file dma rx timeout: CCR=0x84030250 CSR=0x00001004 IRPR=0x00000040 IODLR=0x00000100 AR=0x00000000 STATUS=0x00000001 FSM=0x00020000
sunxi_lbc_read[1247]: dma rx time out已做修改
- FPGA reset 改为 PB6 / GPIO38,由 hzhy-fpga-load 控制,避免和 LBC 驱动抢 GPIO。
- LBC 驱动里在 read 前明确设置 LBC_READ,write 前设置 LBC_WRITE。
- 测试过 PG9 direct-gpio 读方向高低电平,现象不变。
补充
DMA 写测试可以返回成功:
./lbc_dma_reg_write 0x14 0x00000001
[0x0014] wrote bytes 01 00 00 00 value=0x00000001 driver_ret=0
因此看起来 LBC 不是完全不工作,主要是读方向等不到 FPGA 的 READY 或返回数据。
想请教:
- T536-F-EVM 板载 FPGA 的 LBC 设备树是否和全志手册有差异?
- PG9 direct-gpio 在这个板子上读写极性应该怎么配置?
- 官方 Linux 固件下 lbc_dma_demo 初始化失败,是否说明默认 DTS/驱动没有适配 T536-F-EVM 板载 FPGA?
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号