This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

【微信群精彩讨论】armv8上有谁搞过DDR 动态变频

总结一下今天微信群中白平和罗玉平两位用户有关armv8上有谁搞过DDR 动态变频的讨论,供大家参考

白:

armv8上有谁搞过DDR 动态变频

罗:

armv8上支持DDR 动态变频,这个需要DDR controller支持

ARM的DMC controller支持的

白:

嗯,有没有SMP 环境下的变频策略参考,我这边single core 没问题,SMP 就跪了.

罗:

DMC调频 是用软件来升频或者降频,软件是运行在SOC的system controller上的,常常是Cortex-M CPU,调频的时候DMC不会阻止CPU transfers,DMC自己有buffer,可以继续接收,只是不会发给DDR,这些对CPU是透明的,但如果buffer满了的话,CPU自然就发不了了,调频之后可能需要ddr calibration,我们也都是通过DMC驱动程序来完成的。
只是我们在做这些操作的时候并不会让系统停下来

为啥SMP就不行了?具体原因是啥

白:

我这边controller 和 PHY 不是arm家的,变频过程controller的AXI port 会block transactions ,可能CORE试图访问DDR挂了

向天笑:

DMC调频和dmc的设计关系蛮大的。如果dmc不能自己做 很多都要软件上去做的。比如要把各个master停住 不让他去访问ddr

罗:

赶紧换ARM 的吧

ddr controller可以buffering啊。

白:

估计没法buffer了,controller的AXI port 不响应request.

罗:

一般来说,在其他master发数据到DDR时, 会有hardware的握手信息。看接收方ready后,数据才过来。 估计在变频过程中,你们用的DDR controller不能处理。

定位到具体原因了吗?不能“估计”。

白:

IP 行为不清楚,我只能靠以前DDR变频遇到的现象猜测

罗:

软件workaround只能在变频过程中,不要发transaction到ddr。

哪个cpu ?

白:

A53

罗:

芯片内部有SRAM吗?

白:

必须有啊.

没有sram,single core 也肯定挂.

罗:

可能的话,可以把translation table切换到SRAM,一般SRAM跑在secure world,比如EL3。

把所有core都SMC 到EL3/SRAM上运行。

你们是付费客户,可以发邮件到support, support-sw@arm.com, 或者直接给我。
这是一个大topic。

白:

变频flow我都是通过smc sip trap到 el3 atf sram中了

看来只能把其他core 也trap到el3了,其实我非常不想这么做

罗:

是的,性能上会有抖动。

好奇ddr IP是谁的?

估计你们这款芯片定义的时候不支持DDR变频吧? 否则在需求分析的时候就应该考虑到。

白:

支持,而且支持硬件辅助快速变频.

变频结束后不需要再做calibration.

罗:

变频过程中,假如有buffer, 并且满了之后,AXI 信号ARREADY(Read address ready),AWREADY(Write address ready)会拉低,数据不会过来。