Hi,各位专家好!
我使用EVM6678L(PG1.0)+AMC转PCIe板卡+PC,实现了C6678的PCIe boot,上电第一次是可以boot成功的。后面我可能需要再次更新DSP上运行的代码,这时候可不可以不断电EVM板卡和PC就能够实现PCIe boot呢?
比如仅仅是把EVM板复位,让其重新进入PCIe boot模式,再从PC侧接收代码。但是这种方式下,PC会报出“检不到PCIe设备”的错误,因此无法完成重新加载。原因可能是C6678的PCIe不支持热插拔。
而如果不复位DSP,仅仅重新加载代码是可以的,但是DSP不知道去跳转到BOOT_MAIGC_ADDRESS所指向的地址执行程序。
请问大家有没有同样的需求 或者 能否给予合适的解决办法?
先谢谢了!
tthnny:
自己先顶一下~
请问关于PCIe boot可以不断电反复加载的问题,大家有什么好的建议没?
Andy Yin1:
您好,
你使用PCIe加载应该是通过host向DSP写了MAGIC_ADDRESS并触发IPC,然后才能加载并跑起来吧?
请问你的PC是跑的linux系统下检测到PCIe板卡么?请共享一下你使用AMC2PCIe板卡接到PC上的经验吧,现在有客户想在winXP下使用,但是我们目前没有这方面的驱动,不知你是否有相应的经验共享一下,谢谢!
tthnny:
回复 Andy Yin1:
Hi, Andy
1、“PCIe加载通过host向DSP写了MAGIC_ADDRESS并触发IPC,然后才能加载并跑起来”,不需要触发IPC中断,我使用的EVM6678L,PG1.0版本,I2C EEPROM中的IBL代码会不断检测MAGIC_ADDRESS,直到不为0就跳转执行用户加载的应用程序。Host PC只负责发送boot table,并最后写入MAGIC_ADDRESS。详细参考..\mcsdk_2_00_05_17\tools\boot_loader\examples\pcie\docs下的readme文档。(文档中关于拨码开关的设置有一个错误,SW9-1应为off)
2、我的PC是WindowsXP系统,需要安装Windriver软件,驱动可以自己生成。
首先,PC上电检测到PCIe板卡时,在设备管理器中显示是“多媒体控制器”,驱动生成方法是:
打开windriver工具,查看到TI PCIe设备,然后按照软件提示步骤生成.INF文件,即生成了PCIe驱动。这时候就可以为新扫描到的TI PCIe设备安装驱动,加载该文件,就完成驱动的安装。
然后就可以仿照开发包中pciedemo.c的做法来进行PCIe boot了。
如果大家对Windriver工具不太熟悉的话,可以先了解一下基本的功能,对调试PCIe boot帮助很大。有问题欢迎继续交流,谢谢!
Andy Yin1:
回复 tthnny:
tthnny,
非常感谢您的共享!
关于多次PCIe加载,按我的理解,如果不复位DSP,不会重新执行bootloader,程序应该加载不起来才对。但是按您的测试结果来看,不复位DSP,程序可以加载起来,但是不能正常运行起来,那么此时的MAGIC_ADDRESS中的值是否正确呢?
tthnny:
回复 Andy Yin1:
Andy,
关于多次PCIe加载,如果复位DSP,会出现PCIe设备不识别的问题。
如果“不复位DSP,程序可以加载起来,但是不能正常运行起来”,
是的。后面再次加载时,我连接过CCS查看过memory,发现boot table都已经加载成功,且MAGIC_ADDRESS也已经更新。只是DSP当前运行的程序不会去检测该地址,通过手动修改PC指针可以运行程序。(让所有已经加载过的DSP程序运行时都去检测magic address这个值也不太靠谱)。
不知道达人们有没有别的办法?
mathslee:
回复 tthnny:
你好tthnny!
1、 “Host PC只负责发送boot table”,我想问下这个boottable是怎么生成的?
2、已经用windriver生成了INF文件,之后是将pciedemo.c按照windriver的函数改写吗….继而发布成.sys吗?
非常期待你的帮助….谢谢…..
tthnny:
回复 mathslee:
你好,
1、关于boottable格式在mcsdk_2_00_05_17\tools\boot_loader\examples\pcie\linux_host_loader下有很多实例,和I2C boot下的数据格式一致(见bootloader文档),我的转换方法是使用mcsdk_2_00_05_17\tools下的bttbl2hfile、hfile2array工具,你可以看下对应工具的使用说明。
2、是仿照pciedemo.c的方法在windriver下改写,最后在VC6.0下开发。
祝你好运~
Andy Yin1:
回复 tthnny:
tthnny, 您好
可否分享一下WinXP下PCIe boot的相关资料,如基于V6.0开发的bootloader程序工程,谢谢
tthnny:
回复 Andy Yin1:
Hi,all
继续该问题的提问~ 请大家关注,共同探讨这个问题。
谢谢!
spann spann:
回复 tthnny:
Hello tthnny~
我的電腦是win7 64bits ,想要照您之前所提的用windriver產生*.INF檔,讓PCIe可以在Windows的環境下驅動~
可是我目前沒有windriver的軟體,不知道您方不方便將您產生的.INF提供給我使用~
非常感謝您的幫忙!!!