前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AMD Xilinx MPSoC 在分别下载 PL bit文件、PS软件的情况下,PS软件如何访问 PL AXI寄存器?

AMD Xilinx MPSoC 在分别下载 PL bit文件、PS软件的情况下,PS软件如何访问 PL AXI寄存器?

作者头像
hankfu
发布2024-08-20 09:06:24
860
发布2024-08-20 09:06:24
举报
文章被收录于专栏:hank

在调试模式下,可以通过JTAG下载MPSoC PL的bit文件,再下载MPSoC PS的软件。这时候,PL已经下载,PS软件应该能够访问PL实现的AXI寄存器。但是PS的软件会卡住。如果使用同样的软件和bit文件,做成boot.bin,在QSPI/SD启动模式下,又一切正常。 或者boot.bin里只有PS的软件,启动过程中通过Vivado加载PL bit文件;然后在使用PS软件去访问PL的AXI寄存器,也会有问题。 这是因为在MPSoC PS和PL之间,有一个开关。如果不使能开关,PS软件就不能访问PL的AXI寄存器。

如果boot.bin里有PL的bit文件,FSBL在启动过程中就会加载PL bit文件;然后打开PS和PL之间的开关。相关代码如下:

代码语言:javascript
复制
#ifdef XFSBL_BS
	if (DestinationDevice == XIH_PH_ATTRB_DEST_DEVICE_PL) {
		Status = XFsbl_PLWaitForDone();
		if (Status != XFSBL_SUCCESS) {
			goto END;
		}

		/**
		 * PL is powered-up before its configuration, but will be in isolation.
		 * Now since PL configuration is done, just remove the isolation
		 */
		psu_ps_pl_isolation_removal_data();

		/* Reset PL, if configured for */
		(void)psu_ps_pl_reset_config_data();

        ......
	}
#endif

如果运行在PS-Only-Restart模式,也会自动打开PS和PL之间的开关。相关代码如下:

代码语言:javascript
复制
	if (FsblInstancePtr->ResetReason == XFSBL_PS_ONLY_RESET)
		{
		/**Remove PS-PL isolation to allow u-boot and linux to access PL*/
			(void)psu_ps_pl_isolation_removal_data();
			(void)psu_ps_pl_reset_config_data();
		}

如果应用或者调试需要分别下载 PL bit文件、PS软件,请参考上述代码,主动打开PS和PL之间的开关。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档