查看: 4295|回复: 0

[其他] 如何正确使用PCIE_DMA

[复制链接]

该用户从未签到

3

主题

3

帖子

0

新手上路

Rank: 1

积分
10
最后登录
1970-1-1
发表于 2011-8-9 14:00:36 | 显示全部楼层 |阅读模式
      MPC8377通过PCIE连接一个FPGA,不使用PCIE_DMA方式进行数据读写(即单个数据操作)时,数据正确;如果使用PCIE_DMA方式进行数据读写时,写入正常,读取不正常。
    使用PCIE_DMA方式读取数据过程为:MPC8377向FPGA发送读数据请求事务包(比如请求数据长度16),FPGA向MPC8377返回带有16个数据的完成包。
    过程结束后,MPC8377相关寄存器如下:
        PEX_RDMA_STAT = 0x02,
        DMA Descriptor.PEX error = 0,
        DMA Descriptor.Bridge error = 0,
        DMA Descriptor.CSB error = 0,
        DMA Descriptor.Descriptor error = 0,
        DMA Descriptor.Done = 1,
    说明MPC8377完成了DMA的传输,但是在DMA Descriptor指定的目的地址内,并没有FPGA返回的数据。
    请问这是什么原因造成的?数据到哪里去了?
 
 
    另外:如果希望使用FPGA主动发送数据,即FPGA发起PCIE的数据写事务包,那么FPGA事务包中的地址如何确定?
    1.通过读取MPC8377的PCI配置空间的基地址寄存器;
    2.由MPC8377写到FPGA内部的一个专用寄存器;
    例如MPC8377的DDR2地址空间为0x0~0x1fffffff、PCI配置空间中的基地址寄存器为0x40000000,MPC8377希望FPGA将数据直接写入到0x03000000中,FPGA的PCIE写事务包中的地址应该填入什么:0x03000000还是0x43000000。还是需要另外配置地址空间?
 
 谢谢!
我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-4 14:06 , Processed in 0.086969 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表