终极方法(先公布答案)
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
就能看到正确的输出结果: