From 36f0949ef9854b82a9a3154d970da4e3b8d12a61 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 06 Nov 2023 07:23:29 +0000 Subject: [PATCH] rk3568 rkbin init --- rkbin/tools/ddrbin_tool_user_guide.txt | 262 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 187 insertions(+), 75 deletions(-) diff --git a/rkbin/tools/ddrbin_tool_user_guide.txt b/rkbin/tools/ddrbin_tool_user_guide.txt old mode 100644 new mode 100755 index 6ca5613..9c910d6 --- a/rkbin/tools/ddrbin_tool_user_guide.txt +++ b/rkbin/tools/ddrbin_tool_user_guide.txt @@ -9,41 +9,63 @@ ./ddrbin_tool -g gen_param.txt px30_ddr_333MHz_v1.15.bin The config will show in gen_param.txt. -Note: The function 1 and function 2 are two separate functions - The gen_param.txt file which is generated by function 2 no need use in function 1. - The detail information as following: * support ddrbin version - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | platform | uart info | ddr freq | ssmod | DDR 2T | sr pd | drv, odt, Vref etc| dis training info | eye sacn | res space remap| - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | PX30/RK3326 | V1.11 | X | X | V1.12 | V1.15 | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK1808 | V1.03 | V1.03 | X | V1.03 | V1.04 | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK322x | V1.08 | V1.08 | X | V1.09 | X | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK322xh | V1.14 | X | X | V1.16 | V1.17 | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3288 | V1.07 | X | X | V1.08 | X | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3308 | V1.28 | V1.28 | X | V1.29 | V1.30 | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3368 | V2.04 | V2.04 | X | V2.05 | X | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3328 | V1.14 | X | X | V1.16 | V1.17 | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3399 | V1.25 | X | V1.25 | X | X | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3399PRO NPU | V1.03 | V1.03 | X | V1.03 | X | X | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RV1126/RV1109 | V1.00 | V1.00 | V1.05 | V1.00 | V1.05 | V1.05 | X | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3566/RK3568 | V1.00 | V1.00 | V1.06 | V1.00 | V1.00 | V1.06 | V1.07 | X | X | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ - | RK3588 | V1.00 | V1.00 | X | V1.00 | V1.00 | V1.00 | V1.03 | V1.06 | V1.06 | - +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------+----------+----------------+ + The 'X' means not support change those parameters by tool. + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | platform | uart info | ddr freq | ssmod | DDR 2T | sr pd | drv, odt, Vref etc| dis print training info | dis CBT | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RV1108 | V1.08 | V1.08 | V1.10 | V1.08 | V1.08 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | PX30/RK3326 | V1.11 | X | V1.16 | V1.12 | V1.15 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK1808 | V1.03 | V1.03 | V1.05 | V1.03 | V1.04 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK322x | V1.08 | V1.08 | X | V1.09 | X | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK322xh | V1.14 | X | V1.17 | V1.16 | V1.17 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3288 | V1.11 | X | X | V1.11 | X | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3308 | V1.28 | V1.28 | V1.31 | V1.29 | V1.30 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3308S | V2.05 | V2.05 | V2.05 | V2.05 | V2.05 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3368 | V2.04 | V2.04 | X | V2.05 | X | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3328 | V1.14 | X | V1.17 | V1.16 | V1.17 | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3399 | V1.25 | X | V1.25 | X | X | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3399PRO NPU | V1.03 | V1.03 | X | V1.03 | X | X | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RV1126/RV1109 | V1.00 | V1.00 | V1.05 | V1.00 | V1.05 | V1.05 | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3566/RK3568 | V1.00 | V1.00 | V1.06 | V1.00 | V1.00 | V1.06 | V1.07 | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + | RK3588 | V1.00 | V1.00 | X | V1.00 | V1.00 | V1.00 | X | X | + +---------------+-----------+----------+-------+--------+-------+-------------------+-------------------------+---------+ + +| function | platform and ddrbin version | +| ------------------------------- | -------------------------------------- | +| first scan channel/channel mask | RK3588 V1.00/RK3399 V1.25/RK3288 V1.11 | +| stride type | RK3588 V1.00/RK3399 V1.25/RK3288 V1.11 | +| ext_temp_ref | Null | +| link_ecc_en | Null | +| per_bank_ref_en | RK3588 V1.09 | +| derate_en | RK3588 V1.09 | +| auto_precharge_en | Null | +| res_space_remap_portion | RK3588 V1.09 | +| res_space_remap_all | RK3588 V1.09 | +| rd_vref_scan_en | RK3588 V1.08 | +| wr_vref_scan_en | RK3588 V1.08 | +| eye_2d_scan_en | RK3588 V1.08 | +| ch/bank/rank_mask | RK3588 V1.00 | +| pstore base_addr/buf_size | RK3588 V1.09 | +| uboot/atf/optee/spl/tpl log en | RK3588 V1.09 | +| boot_fsp | RK3588 V1.09 | +| pageclose | RK3588 V1.10 | * UART info @@ -54,18 +76,85 @@ * disable print training information -dis_printf_training: 1: will disabled print training information; 0: will enable print training information. +dis_train_print: 1: will disabled print training information; 0: will enable print training information. -* remap pcie 100M reg to DDR +* recycle registers space(remap register space to DDR) -res_space_remap: 1: will remap pcie 100M reg to DDR memory space. +res_space_remap_portion +1: will remap the part of registers to DDR memory space(will not larger than 4GB). +It is PCIE and some reserved space in RK3588, and the PCIE can not be used when set to 1. + +res_space_remap_all +1: will wrap all registers space(include res_space_remap_portion enable space) to DDR memory space. This space would be place in larger than 4GB. +The PCIE can be used when set to 1 in RK3588. * DDR eye scanning 1) eye_2d_scan_en: 1: will enable 2D eye scanning for debug purpose, vref and skew eye scanning. 2) wr_vref_scan_en: 1: enable vref scan and use scanning result for write. 3) rd_vref_scan_en: 1: enable vref scan and use scanning result for read. -* DDR (final) freq(ddrx_f0_freq_mhz) +* DDR auto precharge + +auto_precharge_en: 1: will enable the DDR auto precharge. + +* DDR refresh derate + +derate_en: 1: will enable derate function of the LP2/LP3/LP4/LP4X/LP5. +The high temperature will issue more refresh command and the low temperature will less. + +* DDR per bank refresh + +per_bank_ref_en: 1: will enable per bank refresh + +* link ECC enable + +link_ecc_en: 1: read/write link ecc enable. + +* Extended temperature refresh + +ext_temp_ref: + 0: ref1x for normal chip, 2x for 3568M/3568J + 1: fix 2x ref for all chip + 2: fix 4x ref for all chip + 3: fix 1x ref for all chip +Note: If derate-enabled DDR are configured with derate_en=1, the ext_temp_ref configuration does not take effect. + +* pstore_base_addr pstore_buf_size +The pstore buffer base address: pstore_base_addr << 16, 64kB align. +The pstore buffer size: pstore_buf_size * 4KB. +It is define the addr and size to save ddrbin log for last log. + +* uboot_log_en +1: enable uboot log. +0: disable uboot log. + +* atf_log_en +1: enable atf log. +0: disable atf log. + +* optee_log_en +1: enable optee log. +0: disable optee log. + +* spl_log_en +1: enable spl log. +0: disable spl log. + +* tpl_log_en +1: enable tpl log. +0: disable tpl log. + +* pageclose +1: enable pageclose. +0: disable pageclose. + +* boot_fsp +To choose the which DDR freq to boot system. 0 means fsp0_freq, 1 means fsp1_freq, 2 means fsp2_freq, 3 means fsp3_freq, the default is 0. + +* DDR (final) freq(also called ddrx_f0_freq_mhz/fsp0_freq) + +For RK3588, the boot_fsp used to choose which ddrx_fx_freq_mhz/fspx_freq to boot system, default is ddrx_f0_freq_mhz/fsp0_freq. +For the others platform, it is the final freq to boot system. ddr2_freq(ddr2_f0_freq_mhz): ddr2 frequency, unit:MHz. lp2_freq (lp2_f0_freq_mhz): lpddr2 frequency, unit:MHz. @@ -76,47 +165,55 @@ lp4x_freq(lp4x_f0_freq_mhz): lpddr4x frequency, unit:MHz. lp5_freq (lp5_f0_freq_mhz): lpddr5 frequency, unit:MHz. -For RV1126/RV1109, RK3566/RK3568, RK3588 those frequencies are the final freq in loader. - -+---------------+--------------------------------------------------------+ -| platform | support frequencies | -+---------------+--------------------------------------------------------+ -| PX30/RK3326 | X | -+---------------+--------------------------------------------------------+ -| RK1808 | 333,400,533,666,786,933 | -+---------------+--------------------------------------------------------+ -| RK322x | not larger than 800 | -+---------------+--------------------------------------------------------+ -| RK322xh | X | -+---------------+--------------------------------------------------------+ -| RK3288 | X | -+---------------+--------------------------------------------------------+ -| RK3308 | 393,451,589 | -+---------------+--------------------------------------------------------+ -| RK3368 | DDR3 not larger than 800, LP3 not larger than 666 | -+---------------+--------------------------------------------------------+ -| RK3328 | X | -+---------------+--------------------------------------------------------+ -| RK3399 | X | -+---------------+--------------------------------------------------------+ -| RK3399PRO NPU | 333,400,533,666,786,933 | -+---------------+--------------------------------------------------------+ -| RV1126/RV1109 | 328,396,528,664,784,924,1056 | -+---------------+--------------------------------------------------------+ -| RK3566/RK3568 | 324,396,528,630,780,920,1056,1184,1332,1560 | -+---------------+--------------------------------------------------------+ -| RK3588 | LP4/LP4x [306.5MHz - 2133MHz]; LP5: [400MHz - 2750MHz] | -+---------------+--------------------------------------------------------+ +* support ddr frequency: +The 'X' as follows means not support change frequencies by tool. ++---------------+-----------------------------------------------------------------+ +| platform | support frequencies(MHZ) | ++---------------+-----------------------------------------------------------------+ +| RK1108 | DDR2: 400; LP2: <= 533; DDR3: <= 800 | ++---------------+-----------------------------------------------------------------+ +| PX30/RK3326 | X | ++---------------+-----------------------------------------------------------------+ +| RK1808 | 333,400,533,666,786,933 | ++---------------+-----------------------------------------------------------------+ +| RK322x | DDR2/LP2: <= 533; others: <= 800 | ++---------------+-----------------------------------------------------------------+ +| RK322xh | X | ++---------------+-----------------------------------------------------------------+ +| RK3288 | X | ++---------------+-----------------------------------------------------------------+ +| RK3308/RK3308S| DDR2/LP2: 393,451; DDR3: 393,451,589 | ++---------------+-----------------------------------------------------------------+ +| RK3368 | DDR3: <= 800; LP3: <= 666 | ++---------------+-----------------------------------------------------------------+ +| RK3328 | X | ++---------------+-----------------------------------------------------------------+ +| RK3399 | X | ++---------------+-----------------------------------------------------------------+ +| RK3399PRO NPU | 333,400,533,666,786,933 | ++---------------+-----------------------------------------------------------------+ +| RV1126/RV1109 | 328,396,528,664,784,924,1056 | ++---------------+-----------------------------------------------------------------+ +| RK3566 | 324,396,528,630,780,920,1056 | ++---------------+-----------------------------------------------------------------+ +| RK3568 | DDR3/LP3: 324,396,528,630,780,920,1056 | +| | DDR4/LP4/LP4X: 324,396,528,630,780,920,1056,1184,1332,1560 | ++---------------+-----------------------------------------------------------------+ +| RK3588 | LP4/LP4x [306.5MHz - 2133MHz]; LP5: [400MHz - 2750MHz] | ++---------------+-----------------------------------------------------------------+ +| RK3528 | DDR3/LP3: 324,396,528,630,780,920,1056 | +| | DDR4/LP4/LP4X: 324,396,528,630,780,920,1056,1184 | ++---------------+-----------------------------------------------------------------+ * DDR frequencies(add more) -ddr2_f1_freq_mhz: ddr2 frequency number 1, unit:MHz. -ddr2_f2_freq_mhz: ddr2 frequency number 2, unit:MHz. -ddr2_f3_freq_mhz: ddr2 frequency number 3, unit:MHz. -ddr2_f4_freq_mhz: ddr2 frequency number 4, unit:MHz. -ddr2_f5_freq_mhz: ddr2 frequency number 5, unit:MHz. +ddr2_f1_freq_mhz: ddr2 frequency fsp 1, unit:MHz. +ddr2_f2_freq_mhz: ddr2 frequency fsp 2, unit:MHz. +ddr2_f3_freq_mhz: ddr2 frequency fsp 3, unit:MHz. +ddr2_f4_freq_mhz: ddr2 frequency fsp 4, unit:MHz. +ddr2_f5_freq_mhz: ddr2 frequency fsp 5, unit:MHz. ... -The ddrx_f0_freq_mhz is named ddrx_freq. +The ddrx_f0_freq_mhz(the fsp0 frequency) is named ddrx_freq. ddr*_f*_freq_mhz/lp*_f*_freq_mhz: Only RV1126/RV1109, RK3566/RK3568, RK3588 used. The program will initialize dram by following order. @@ -134,6 +231,8 @@ ddr4_f3_freq_mhz=780 ... +Note: The ddr frequency table in kernel dts/dtsi file need correspond to these frequencies. + * SR PD idle sr_idle: auto self-refresh mode delay time. @@ -146,7 +245,7 @@ * PLL ssmod These parameters are about Spread Spectrum Modulator(ssmod) for PLL. -ssmod_downspread: ssmod work mode. 0: down spread, 1: center spread. +ssmod_downspread: ssmod work mode. 1: down spread, 0: center spread. ssmod_div: Divider required to set the modulation frequency. RK3308 suggests to ssmod_div=2, others platforms suggest to ssmod_div=5. ssmod_spread: spread amplitude % = 0.1 * ssmod_spread; 0: disable ssmod, others will enable ssmod, max to 0x1f. @@ -180,6 +279,13 @@ +---------------+-------------------+-------------------+--------------+-----------------+----------------+----------------+-------------+ | RK3588 | X | X | X | 240,120,80,60, | follow LP4 | follow LP4 | follow LP4 | | | | | | 48,40,34,30 | | | | ++---------------+-------------------+-------------------+--------------+-----------------+----------------+----------------+-------------+ +| | 572,289,195,145, | 595,300,202,151, | | 654,328,221,165,| 585,297,202, | 585,297,202, | | +| | 117,99,85,73,66, | 122,102,89,76,68, | |133,112,97,83,74,| 150,122,103,90,| 150,122,103,90,| | +| RK3528 | 60,55,50,47,44,41,| 62,57,52,49,45,43,| follow DDR4 | 67,62,57,53,49, | 77,69,63,58,53,| 77,69,63,58,53,| X | +| | 38,36,34,33,31,30,| 39,37,35,34,32,31,| | 46,43,40,38,37, | 50,47,44,40,38,| 50,47,44,40,38,| | +| | 29,28 | 30,29 | | 35,33,32,31 | 37,35,33,32,31,| 37,35,33,32,31,| | +| | | | | | 30 | 30 | | +---------------+-------------------+-------------------+--------------+-----------------+----------------+----------------+-------------+ The DRAM side driver strength support value as follows: @@ -218,7 +324,13 @@ | RK3588 | X | X | X | 0,240,120,80, | follow LP4 | follow LP4 | follow LP4 | | | | | | 60,48,40,34,30 | | | | +---------------+-------------------+--------------------+--------------+-------------------+----------------+----------------+-------------+ - +| | 572,289,195,145, | 595,300,202,151, | | 654,328,221,165, | 585,297,202, | 585,297,202, | | +| | 117,99,85,73,66, | 122,102,89,76,68, | |133,112,97,83,74, | 150,122,103,90,| 150,122,103,90,| | +| RK3528 | 60,55,50,47,44,41,| 62,57,52,49,45,43, | follow DDR4 | 67,62,57,53,49, | 77,69,63,58,53,| 77,69,63,58,53,| X | +| | 38,36,34,33,31,30,| 39,37,35,34,32,31, | | 46,43,40,38,37, | 50,47,44,40,38,| 50,47,44,40,38,| | +| | 29,28 | 30,29 | | 35,33,32,31 | 37,35,33,32,31,| 37,35,33,32,31,| | +| | | | | | 30 | 30 | | ++---------------+-------------------+--------------------+--------------+-------------------+----------------+----------------+-------------+ The DRAM side ODT support value as follows: +---------------+-------------------+-------------------+--------------+-----------------------+----------------+---------------+ | platform | DDR3 | DDR4 | LP3 | LP4(include DQ and CA)| LP4X | LP5 | -- Gitblit v1.6.2