如何修改rk3399 ddr初始化代码的波特率

2 篇文章 0 订阅
2 篇文章 0 订阅

终极方法(先公布答案)

hexdump -ve '1/1 "%.2X"' rk3399_ddr_800MHz_v1.25.bin | \
sed "s/60E31600/00C20100/" | \
xxd -r -p | openssl rc4 -K 7c4e0304550509072d2c7b38170d1711 | rkflashtool l

rk3399 ddr 初始化代码的默认波特率为 1500000(≈ 115200 × 13 = 1497600)

这是一个很奇葩的设置!

如何修改

ddr初始化代码一共有3个频率的文件:

rk3399_ddr_666MHz_v1.25.bin
rk3399_ddr_800MHz_v1.25.bin
rk3399_ddr_933MHz_v1.25.bin

在二进制编辑器中,搜索:60 E3 16 00(1500000),替换成00 C2 01 00(115200)
注意:应该只会命中一处,如有多处,可能有问题!

运行

cat rk3399_ddr_800MHz_v1.25.bin | openssl rc4 -K 7c4e0304550509072d2c7b38170d1711 | rkflashtool l
就能看到正确的输出结果:

DDR Version 1.25 20210517
In
Channel 0: DDR3, 800MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel 1: DDR3, 800MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
256B stride
ch 0 ddrconfig = 0x101, ddrsize = 0x20
ch 1 ddrconfig = 0x101, ddrsize = 0x20
pmugrf_os_reg[2] = 0x32817281, stride = 0x9
OUT

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值