RV1126&RV1109 LPDDR3 ddrbin_tool降频

本文详细介绍RV1126平台DDR3内存频率从328MHz逐步提升至924MHz的过程,重点介绍了如何通过修改配置文件将DDR3运行频率设置为784MHz,包括使用ddrbin_tool工具进行参数调整的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、默认SDK开机串口打印:

DDR Version V1.03 20200804
LPDDR3, 328MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
change to: 328MHz
change to: 528MHz
change to: 784MHz
change to: 924MHz(final freq)
out
U-Boot SPL board init

2、SDK提供了rv1126_ddr_784MHz_v1.03.bin

diff --git a/rkbin/RKBOOT/RV1126MINIALL.ini b/rkbin/RKBOOT/RV1126MINIALL.ini
index f7233fd..9ebb1db 100755
--- a/rkbin/RKBOOT/RV1126MINIALL.ini
+++ b/rkbin/RKBOOT/RV1126MINIALL.ini
@@ -5,7 +5,7 @@ MAJOR=1
 MINOR=1
 [CODE471_OPTION]
 NUM=1
-Path1=bin/rv11/rv1126_ddr_924MHz_v1.03.bin
+Path1=bin/rv11/rv1126_ddr_784MHz_v1.03.bin
 Sleep=1
 [CODE472_OPTION]
 NUM=1
@@ -14,7 +14,7 @@ Path1=bin/rv11/rv1126_usbplug_v1.11.bin
 NUM=2
 LOADER1=FlashData
 LOADER2=FlashBoot
-FlashData=bin/rv11/rv1126_ddr_924MHz_v1.03.bin
+FlashData=bin/rv11/rv1126_ddr_784MHz_v1.03.bin
 FlashBoot=bin/rv11/rv1126_spl_v1.03.bin
 [OUTPUT]
 PATH=rv1126_spl_loader_v1.03.103.bin

3、使用ddrbin_tool修改lp3_freq=784

diff --git a/rkbin/tools/ddrbin_param.txt b/rkbin/tools/ddrbin_param.txt
index 2f7191d..46de707 100644
--- a/rkbin/tools/ddrbin_param.txt
+++ b/rkbin/tools/ddrbin_param.txt
@@ -2,7 +2,7 @@ start tag=0x12345678
 ddr2_freq=
 lp2_freq=
 ddr3_freq=
-lp3_freq=
+lp3_freq=784
 ddr4_freq=
 lp4_freq=
 
@@ -36,11 +36,11 @@ lp2_f3_freq_mhz=
 lp2_f4_freq_mhz=
 lp2_f5_freq_mhz=
 
-lp3_f1_freq_mhz=
-lp3_f2_freq_mhz=
-lp3_f3_freq_mhz=
-lp3_f4_freq_mhz=
-lp3_f5_freq_mhz=
+lp3_f1_freq_mhz=396
+lp3_f2_freq_mhz=528
+lp3_f3_freq_mhz=664
+lp3_f4_freq_mhz=784
+lp3_f5_freq_mhz=924
 
 lp4_f1_freq_mhz=
 lp4_f2_freq_mhz=
============================================================
rockemd@rockemd:tools$ ./ddrbin_tool ddrbin_param.txt ../bin/rv11/rv1126_ddr_924MHz_v1.03.bin 
version v1.03 20200720
argument 1 : Input param filename(.txt)
argument 2 : Input ddr bin filename(.bin)

new bin config:
lp3_freq: 784
lp3_f1_freq_mhz: 396
lp3_f2_freq_mhz: 528
lp3_f3_freq_mhz: 664
lp3_f4_freq_mhz: 784
lp3_f5_freq_mhz: 924
modify end

技术交流群: 微信号

### 关于 LPDDR4X DM_WALK_DQ 技术细节 DM_WALK_DQ 是一种用于测试和验证 DDR 存储器接口可靠性的方法。在 LPDDR4X 中,此功能主要用于检测并定位数据总线上可能存在的缺陷或异常情况。 #### 工作原理 当启用 DM_WALK_DQ 测试模式时,控制器会向 DRAM 发送特定的命令序列来执行一系列操作: - **写入阶段**:依次将不同的数据图案写入到各个 DQ(Data Queue)引脚上,并设置相应的 DM(Data Mask)信号。 - **读取阶段**:随后从相同的地址位置读回之前写入的数据,并比较预期值与实际返回的结果是否一致[^4]。 如果发现任何不匹配的情况,则表明存在潜在的问题需要进一步排查。这种机制能够帮助工程师快速识别出哪些具体通道出现了故障,从而简化调试过程并提高效率。 #### 实现方式 为了支持 DM_WALK_DQ 功能,在硬件层面通常需要满足以下几个条件: 1. 控制器内部应具备专用逻辑单元负责生成所需的操作指令; 2. 物理层面上要确保有足够的 I/O 引脚数量以适应不同配置下的需求; 3. 需要在固件或者驱动程序中加入相应 API 接口以便用户调用该功能进行诊断测试。 以下是 Python 伪代码展示如何编程实现简单的 DM_WALK_DQ 操作: ```python def dm_walk_dq_test(controller, address_range): for addr in range(address_range.start, address_range.end + 1): # Write phase with different data patterns and mask settings controller.write(addr, generate_data_pattern(), set_dm_signal()) # Read back the written data after a short delay read_back = controller.read(addr) # Compare expected vs actual values if not compare(read_back, generated_data): print(f"Mismatch detected at address {addr}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值