TI中文支持网
TI专业的中文技术问题搜集分享网站

请问有谁做过SYS/BIOS下C66X的PCIE带MSI例程

最近一直在调试TMS320C6655(EP)和linux(RC)用PCIe通信的项目,一直被这个MSI中断困扰。

查阅了各种资料,大体都是STK_PCIE的例子,移植起来实在繁琐,我也没有硬件验证这个例程。

请问谁有做过SYS/BIOS下C66X的MSI项目?

有例程的最好,没有例程的帮忙讲解一下大体步骤,比如RC先做哪些寄存器的初始化,EP需要做哪些初始化,等等。

不胜感激。

Andy Yin1:

带不带bios对于PCIE的配置流程都是一样的,只是中断路由有所区别,PCIE bios例程参考C:\ti\pdk_C6657_1_1_2_6\packages\ti\drv\exampleProjects\PCIE_exampleProject

Gery xia:

回复 Andy Yin1:

感谢回复。

这个例程我之前已经参考了,根据这个例程可以调试完成数据读写操作,但是例程中没有关于MSI的操作可以参考,所以现在MSI操作还没有成功。

目前现象是这样的:

linux做RC;c6655做ep

1. 初始化等都成功,数据能正常收发。

2. MSI_CAP : 0X00497005

     MSI_lOW32 : 0X01FF8000

    MSI_DATA : 0X00003D01

3.按照要求,要将MSI_DATA 发送到RC端的MSI_IRQ,才能实现RC端进入中断函数

      即*((volatile uint32_t *) (MSI_ADDRESS)) = 0x00003d01;

     就是不知道MSI_ADDRESS这个地址怎么算,和MSI_lOW32 有什么的函数关系,需要哪些寄存器信息?

谢谢

Gery xia:

回复 Andy Yin1:

感谢回复。

这个例程我之前已经参考了,根据这个例程可以调试完成数据读写操作,但是例程中没有关于MSI的操作可以参考,所以现在MSI操作还没有成功。

目前现象是这样的:

linux做RC;c6655做ep

1. 初始化等都成功,数据能正常收发。

2. MSI_CAP : 0X00497005

     MSI_lOW32 : 0X01FF8000

    MSI_DATA : 0X00003D01

3.按照要求,要将MSI_DATA 发送到RC端的MSI_IRQ,就能在RC端进入中断子程序

      即*((volatile uint32_t *) (MSI_ADDRESS)) = 0x00003d01;

     就是不中断MSI_ADDRESS这个地址怎么算,和MSI_lOW32 有什么的函数关系,还需要哪些寄存器的值?

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 请问有谁做过SYS/BIOS下C66X的PCIE带MSI例程
分享到: 更多 (0)