取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Highlighted
Observer
Observer
354 次查看
注册日期: ‎04-30-2020

zynq7020 AMP裸跑CPU1无法初始化EMMC0/1

我需要把来自PL的两路数据同时写入EMMC0和EMMC1,打算CPU0控制EMMC0写入,CPU1控制EMMC1写入。如果在system debugger勾选cpu0和cpu1的程序同时运行,使用disk_initialize()函数初始化emmc:cpu0能正常初始化emmc0;cpu1无法正常初始化emmc1,返回值一直为1。如果使用system debugger单独运行cpu1的程序,emmc1可以正常初始化。请问该是什么原因?该如何解决?

测试条件:在CPU1的BSP中配置-DUSE_AMP=1,各自在不同的DDR地址空间里运行,CPU0/1和EMMC0/1交叉测试。同时运行时即使CPU0中只有while循环,CPU1也无法初始化EMMC。

0 项奖励
7 回复数
Xilinx Employee
Xilinx Employee
314 次查看
注册日期: ‎06-19-2019

你用的是什么版本?

运行的时候cpu0和cpu1是不是都执行了ps_init?

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
Highlighted
Observer
Observer
312 次查看
注册日期: ‎04-30-2020

@terryn 

vivado 2018.3,运行了ps7_init.tcl。请问zynq在双核裸机情况下是否支持CPU1读写EMMC?

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
285 次查看
注册日期: ‎06-19-2019

我在zynq bsp包的SD驱动里没有找到disk_initialize()这个函数。

sdqs驱动里的API如下:

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
Highlighted
Observer
Observer
281 次查看
注册日期: ‎04-30-2020

@terryn 在xilffs库里面的diskio.c文件里,本质上也是用的SD驱动,只是封装了一下,用习惯了。我初始化和读写EMMC一直用的是diskio.c里面的函数。

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
264 次查看
注册日期: ‎06-19-2019

我看了一下驱动,那个函数确实调用的还是sdps的驱动,所以你方便往下跟一下,看看是哪个地方返回错了吗?

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
Highlighted
Observer
Observer
250 次查看
注册日期: ‎04-30-2020

@terryn 

AMP裸机模式下在XSdPs_Get_Mmc_ExtCsd()函数报错,返回值1;单独裸跑CPU1正常。麻烦你帮我确认下AMP裸机模式下,CPU1是否能访问EMMC?

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
105 次查看
注册日期: ‎06-19-2019

2个CPU裸核程序分别去控制外设应该是可以的。这一块并没有额外的限制。

所以还是只能往下追一下代码,看看具体是什么错误导致不能初始化成功。

 

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励