1 现象

        最近一次编译PL工程后,在vivado中导出.xsa文件给Linux工程师,反馈无法正常启动FSBL,在此之前都正常。在裸机环境下用vitis的"hello world"工程测试,报错:Exit breakpoint of FSBL (XFsbl_Exit) is not hit within allocated wait time of '60 seconds.Note: To wait for a fixed amount of time specify the FSBL function as empty in launch configuration. Use 'IDE_FSBL_BP_HIT_WAIT_TIME' environment variable in launch configuration to modify the wait time (seconds).

2 分析测试

        查询资料后,大部分信息都提示问题可能出在PS侧的DDR上,之前运行正常,现在出问题则可能与时序相关。

2.1 精简PL设计

精简工程,删除PL中其它设计,仅保留PS相关,测试"hello world"工程仍报错;

2.2 去掉PS核中DDR

去掉DDR后测试"hello world"工程不报错,正常打印信息;

2.3 修改DDR时序

        DDR的片子速率为-062E对应的原始速率为3200MT/s,PS中降速2400 MT/s使用,查询手册向下兼容-830/D,-830的核心速率17-17-17,对应SpeedBin=2400T,tRAC=推荐值39ns>min32ns,tRC= tRAC+tRP=39+14.16=53.16≈53.2ns,tFAW= tRAC*4=156ns。采用JEDEC推荐值后测试"hello world"工程正常。

3 结论

        由于PS侧DDR时序紧张,FSBL中psu_init对DDR做初始化没有成功,导致没有触发中断而超时60s。

更多推荐