Firefly开源社区
标题:
u-boot 内存读取很慢
[打印本页]
作者:
xmwvv
时间:
2018-1-24 18:00
标题:
u-boot 内存读取很慢
RK3128 u-boot 测试内存速度 , 发现 memcpy 非常慢, 128MB 数据需要 5.036s (才 25MB/s)
后来用汇编直接从 DDR 读取数据, 也要 3.653s; 而往 DDR 写数据非常快, 128MB 只要 0.059s(2.1GB/s)
ddr cache 已经全开了, CPU 设置到了 1.2GHz
u-boot 代码从这个地址载的
https://bitbucket.org/T-Firefly/firenow-lollipop
DDR 配置文件用的是 RK3128_DDR3_300M_V2.05.bin
进内核后, 同样程序测试, 读取和 memcpy 就很快了, 可以到 2GB/s
请问大神, 如何解决
作者:
zhansb
时间:
2018-1-25 09:24
看看是不是DMA的关系
作者:
xmwvv
时间:
2018-1-26 11:13
本帖最后由 xmwvv 于 2018-1-26 11:17 编辑
zhansb 发表于 2018-1-25 09:24
看看是不是DMA的关系
感谢回复
找到原因了, 是 cache 问题 (操作 sram 也是一样慢):
1. cortex 多核 32 位 需要开启 ACTLR.SMP , mmu 和 cache 才起效. 参考 <<Cortex™-A7 MPCore™ Technical Reference Manual>>
cache.png
(29.02 KB, 下载次数: 548)
下载附件
2018-1-26 11:02 上传
2. mmu 需要采用 writeback 方式
( cache-cp15.c 里开 writeback 会引起后面死机, 可能是相关部分需要 flush cache)
按上面正确开启 cache 后, 汇编读取 128MB 从 3.793 降到 0.085s, memcpy 128MB 从 5.171s 降到 0.332s!
作者:
zhansb
时间:
2018-1-26 14:37
赞
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1