| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Copyright (c) 2019 Amlogic, Inc. All rights reserved. |
| */ |
| |
| #include <asm/arch/secure_apb.h> |
| #include <asm/arch/timing.h> |
| #include <asm/arch/ddr_define.h> |
| |
| /* board clk defines */ |
| #define CPU_CLK 1512 |
| #define TIMMING_MAX_CONFIG 1 |
| |
| //#define T406_LPDDR4 1 |
| ddr_set_t __ddr_setting[] __attribute__ ((section(".ddr_settings"))) = { |
| #if 0//timing_config,af400 |
| { |
| //af400 |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK, |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_DDR4, |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_RANK0_CH0, |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_AUTO_SIZE,//CONFIG_DDR0_SIZE_AUTO_SIZE,CONFIG_DDR0_SIZE_2048MB,1024MB,512MB,0MB,256,128,1536,768,3072,4096 |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB, |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE, |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE, |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16, |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_DDR4_32BIT, |
| .cfg_board_common_setting. fast_boot = {0,0,(1<<3)|(4)}, |
| .cfg_board_common_setting. fast_boot[0] = 0x1, |
| .cfg_board_common_setting. fast_boot[3] = 0x46, |
| |
| //DDR frequercy 1 |
| .cfg_board_SI_setting_ps[0].DRAMFreq = 1320,//1320,1200,1104,1008,912,792 |
| .cfg_board_SI_setting_ps[0].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[0].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_48_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_48_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[0].reserve2 = 0, |
| .cfg_board_SI_setting_ps[0].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[0].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 128,128,128-20,128,128,128,128,128, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay = { |
| 128,128,128-20,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| #endif |
| //write delay line setting |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {128,128,128,128,128,128,128,128} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192,}, |
| #endif |
| #if 0 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {0,0,0,0,0,0,0,0} , //total 8 //edge mode |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[0]=0x0000005f,// 95 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[1]=0x00000073,// 115 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[2]=0x0000005f,// 95 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[3]=0x00000087,// 135 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[4]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[5]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[6]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[7]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[0]=0x0000009f,// 159 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[1]=0x00000095,// 149 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[2]=0x00000092,// 146 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[3]=0x0000009f,// 159 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[4]=0x000000bb,// 187 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[5]=0x000000cd,// 205 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[6]=0x000000b1,// 177 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[7]=0x000000c5,// 197 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[8]=0x000000ad,// 173 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[9]=0x000000a1,// 161 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[10]=0x000000d3,// 211 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[11]=0x000000a2,// 162 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[12]=0x000000d1,// 209 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[13]=0x000000d3,// 211 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[14]=0x000000d0,// 208 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[15]=0x000000a7,// 167 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[16]=0x000000a9,// 169 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[17]=0x000000b9,// 185 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[18]=0x000000ae,// 174 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[19]=0x000000b1,// 177 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[20]=0x000000b2,// 178 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[21]=0x000000bd,// 189 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[22]=0x000000d1,// 209 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[23]=0x000000d0,// 208 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[24]=0x000000c6,// 198 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[25]=0x000000d1,// 209 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[26]=0x000000bf,// 191 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[27]=0x000000c1,// 193 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[28]=0x000000d3,// 211 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[29]=0x000000c1,// 193 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[30]=0x000000dc,// 220 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[31]=0x000000ae,// 174 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[32]=0x000000a1,// 161 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[33]=0x000000ab,// 171 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[34]=0x000000ac,// 172 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[35]=0x000000bd,// 189 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[36]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[37]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[38]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[39]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[40]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[41]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[42]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[43]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[44]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[45]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[46]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[47]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[48]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[49]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[50]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[51]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[52]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[53]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[54]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[55]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[56]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[57]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[58]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[59]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[60]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[61]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[62]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[63]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[64]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[65]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[66]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[67]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[68]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[69]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[70]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[71]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[0]=0x0000037a,// 890 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[1]=0x00000359,// 857 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[2]=0x00000352,// 850 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[3]=0x0000034f,// 847 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[0]=0x00000075,// 117 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[1]=0x0000006c,// 108 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[2]=0x00000058,// 88 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[3]=0x0000007c,// 124 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[0]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[1]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[2]=0x0000002b,// 43 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[3]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[4]=0x00000050,// 80 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[5]=0x00000062,// 98 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[6]=0x00000043,// 67 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[7]=0x00000058,// 88 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[8]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[9]=0x00000028,// 40 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[10]=0x00000047,// 71 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[11]=0x00000028,// 40 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[12]=0x00000036,// 54 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[13]=0x00000044,// 68 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[14]=0x00000042,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[15]=0x00000026,// 38 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[16]=0x0000002c,// 44 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[17]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[18]=0x0000002a,// 42 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[19]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[20]=0x00000029,// 41 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[21]=0x0000002c,// 44 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[22]=0x00000048,// 72 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[23]=0x0000003e,// 62 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[24]=0x0000003b,// 59 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[25]=0x00000046,// 70 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[26]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[27]=0x0000003b,// 59 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[28]=0x00000050,// 80 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[29]=0x0000003d,// 61 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[30]=0x00000047,// 71 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[31]=0x00000030,// 48 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[32]=0x0000002e,// 46 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[33]=0x0000002f,// 47 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[34]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[35]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[36]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[37]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[38]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[39]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[40]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[41]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[42]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[43]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[44]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[45]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[46]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[47]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[48]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[49]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[50]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[51]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[52]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[53]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[54]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[55]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[56]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[57]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[58]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[59]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[60]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[61]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[62]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[63]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[64]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[65]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[66]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[67]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[68]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[69]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[70]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[71]=0x00000000,// 0 |
| #endif |
| |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = { |
| 0,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,50,40,50,40,50,40,50},//total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = { |
| 0,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter = { |
| (0 << 7) | 6, (0 << 7) | 16, (0 << 7) | 10, (0 << 7) | 3, |
| (0 << 7) | 0, (0 << 7) | 0, (0 << 7) | 0, (0 << 7) | 0, |
| (0 << 7) | 2, (0 << 7) | 4, (0 << 7) | 4, (0 << 7) | 10, |
| (0 << 7) | 0, (0 << 7) | 0, (0 << 7) | 0, (0 << 7) | 0, |
| }, |
| |
| //pinmux setting |
| #if 1 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 0 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0, |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| },//d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| .cfg_board_common_setting. timming_magic = 0x66223333,//ddr_set_t start |
| .cfg_board_common_setting. timming_max_valid_configs = TIMMING_MAX_CONFIG,//sizeof(__ddr_setting)/sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_version = 0, |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_real_size = 0, //0 |
| .cfg_board_common_setting. ddr_func = 0, |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63, |
| .cfg_board_common_setting. dram_cs0_base_add = 0, |
| .cfg_board_common_setting. dram_cs1_base_add = 0, |
| |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_2T_MODE, |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC, |
| .cfg_board_common_setting. org_tdqs2dq = 0, |
| .cfg_board_common_setting. reserve1_test_function = {0}, |
| .cfg_board_common_setting. ddr_vddee_setting = {0}, |
| |
| //DDR frequercy 2 |
| .cfg_board_SI_setting_ps[1].DRAMFreq = 600, |
| .cfg_board_SI_setting_ps[1].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[1].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[1].reserve2 = 0, |
| .cfg_board_SI_setting_ps[1].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[1].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0}, |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32}, |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = { |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,}, |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192},//total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0},//total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = { |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40},//total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter = {0},//ddr_set_t end |
| }, |
| #endif //end af400 |
| |
| #if 1 //timing_config,af409 |
| { |
| |
| //af409 |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK, |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_DDR4, |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_RANK0_CH0, |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_AUTO_SIZE,//CONFIG_DDR0_SIZE_AUTO_SIZE,CONFIG_DDR0_SIZE_2048MB,1024MB,512MB,0MB,256,128,1536,768,3072,4096 |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB, |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE, |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE, |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16, |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_DDR4_32BIT, |
| .cfg_board_common_setting. fast_boot = {0,0,(1<<3)|(4)}, |
| .cfg_board_common_setting. fast_boot[0] = 0x1, |
| .cfg_board_common_setting. fast_boot[3] = 0x46, |
| |
| //DDR frequercy 1 |
| .cfg_board_SI_setting_ps[0].DRAMFreq = 1200,//1320,1200,1104,1008,912,792 |
| .cfg_board_SI_setting_ps[0].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[0].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_48_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[0].reserve2 = 0, |
| .cfg_board_SI_setting_ps[0].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[0].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 128,128,90,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| #endif |
| #if 1 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay = { |
| 128,128,90,128,128,128,128,256, |
| 256,256,256,256,256,256,256,256, |
| 256,256,256,256,256,256,256,256, |
| 256,256,256,256,256,256,256,256, |
| 256,256,256,256, |
| },//total 36 |
| #endif |
| //write delay line setting |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0+256,0+256,0+256,0+256,0+256,0+256,0+256,0+256} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256,}, |
| #endif |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {266,266,266,266,0+300-128,0+300-128,0+300-128,0+300-128} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266, |
| 50+266,50+266,50+266,50+266,50+266,50+266,50+266,50+266,}, |
| #endif |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192} , //total 8 //edge mode |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = { |
| 0,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,50,40,50,40,50,40,50} , //total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = { |
| 0,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter={((1<<7)|1),}, |
| |
| //pinmux setting |
| #if 1 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 0 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0, |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| },//d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| .cfg_board_common_setting. timming_magic = 0x66223333,//ddr_set_t start |
| .cfg_board_common_setting. timming_max_valid_configs = TIMMING_MAX_CONFIG,//sizeof(__ddr_setting)/sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_version = 0, |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_real_size = 0, //0 |
| .cfg_board_common_setting. ddr_func = 0, |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63, |
| .cfg_board_common_setting. dram_cs0_base_add = 0, |
| .cfg_board_common_setting. dram_cs1_base_add = 0, |
| |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_2T_MODE, |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC, |
| .cfg_board_common_setting. org_tdqs2dq = 0, |
| .cfg_board_common_setting. reserve1_test_function = {0}, |
| .cfg_board_common_setting. ddr_vddee_setting = {0}, |
| |
| //DDR frequercy 2 |
| .cfg_board_SI_setting_ps[1].DRAMFreq = 600, |
| .cfg_board_SI_setting_ps[1].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[1].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[1].reserve2 = 0, |
| .cfg_board_SI_setting_ps[1].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[1].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0}, |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32}, |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = { |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,}, |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192},//total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0},//total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = { |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40},//total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter = {0},//ddr_set_t end |
| }, |
| #endif //end af409 |
| |
| #if 0//timing_config,af419 |
| { |
| //af419 |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK, |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_DDR4, |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_RANK0_CH0, |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_AUTO_SIZE,//CONFIG_DDR0_SIZE_AUTO_SIZE,CONFIG_DDR0_SIZE_2048MB,1024MB,512MB,0MB,256,128,1536,768,3072,4096 |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB, |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE, |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE, |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16, |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_DDR4_32BIT, |
| .cfg_board_common_setting. fast_boot = {0,0,(1<<3)|(4)}, |
| .cfg_board_common_setting. fast_boot[0] = 0x1, |
| .cfg_board_common_setting. fast_boot[3] = 0x46, |
| |
| //DDR frequercy 1 |
| .cfg_board_SI_setting_ps[0].DRAMFreq = 1200,//1320,1200,1104,1008,912,792 |
| .cfg_board_SI_setting_ps[0].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[0].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[0].reserve2 = 0, |
| .cfg_board_SI_setting_ps[0].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[0].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 128,128,128-40,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay = { |
| 128,128,128-40,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| #endif |
| //write delay line setting |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0+256,0+256,0+256,0+256,0+256,0+256,0+256,0+256} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256,}, |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[0]=0x00000154,// 340 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[1]=0x0000014f,// 335 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[2]=0x0000013b,// 315 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[3]=0x00000159,// 345 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[4]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[5]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[6]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[7]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[0]=0x0000019e,// 414 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[1]=0x00000189,// 393 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[2]=0x00000183,// 387 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[3]=0x000001a6,// 422 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[4]=0x000001ab,// 427 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[5]=0x00000192,// 402 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[6]=0x0000018d,// 397 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[7]=0x00000192,// 402 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[8]=0x00000196,// 406 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[9]=0x00000180,// 384 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[10]=0x00000180,// 384 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[11]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[12]=0x0000017c,// 380 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[13]=0x0000018e,// 398 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[14]=0x00000186,// 390 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[15]=0x00000179,// 377 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[16]=0x00000184,// 388 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[17]=0x00000180,// 384 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[18]=0x0000017d,// 381 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[19]=0x0000016d,// 365 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[20]=0x0000017a,// 378 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[21]=0x0000018c,// 396 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[22]=0x0000017e,// 382 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[23]=0x0000018f,// 399 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[24]=0x00000183,// 387 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[25]=0x0000018d,// 397 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[26]=0x0000017e,// 382 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[27]=0x0000017c,// 380 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[28]=0x00000197,// 407 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[29]=0x0000018e,// 398 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[30]=0x00000199,// 409 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[31]=0x00000181,// 385 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[32]=0x0000017b,// 379 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[33]=0x0000018f,// 399 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[34]=0x0000017c,// 380 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[35]=0x00000189,// 393 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[36]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[37]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[38]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[39]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[40]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[41]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[42]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[43]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[44]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[45]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[46]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[47]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[48]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[49]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[50]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[51]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[52]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[53]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[54]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[55]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[56]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[57]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[58]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[59]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[60]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[61]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[62]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[63]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[64]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[65]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[66]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[67]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[68]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[69]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[70]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[71]=0x00000000,// 0 |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192} , //total 8 //edge mode |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = { |
| 0,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40} , //total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = { |
| 0,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter={((1<<7)|1),}, |
| |
| //pinmux setting |
| #if 0 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 1 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0, |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| },//d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| .cfg_board_common_setting. timming_magic = 0x66223333,//ddr_set_t start |
| .cfg_board_common_setting. timming_max_valid_configs = TIMMING_MAX_CONFIG,//sizeof(__ddr_setting)/sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_version = 0, |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_real_size = 0, //0 |
| .cfg_board_common_setting. ddr_func = 0, |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63, |
| .cfg_board_common_setting. dram_cs0_base_add = 0, |
| .cfg_board_common_setting. dram_cs1_base_add = 0, |
| |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_2T_MODE, |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC, |
| .cfg_board_common_setting. org_tdqs2dq = 0, |
| .cfg_board_common_setting. reserve1_test_function = {0}, |
| .cfg_board_common_setting. ddr_vddee_setting = {0}, |
| |
| //DDR frequercy 2 |
| .cfg_board_SI_setting_ps[1].DRAMFreq = 600, |
| .cfg_board_SI_setting_ps[1].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[1].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[1].reserve2 = 0, |
| .cfg_board_SI_setting_ps[1].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[1].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0}, |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32}, |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = { |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,}, |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192},//total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0},//total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = { |
| 0,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40},//total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = { |
| 0,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter = {0},//ddr_set_t end |
| }, |
| #endif //end af419 |
| |
| #if 0//timing_config,real DDR3 |
| { |
| //real DDR3 |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK, |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_DDR3, |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_16BIT_RANK0_CH0, |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_768MB,//CONFIG_DDR0_SIZE_AUTO_SIZE,CONFIG_DDR0_SIZE_1024MB,CONFIG_DDR0_SIZE_768MB |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB, |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE, |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE, |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16, |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_DDR3_32BIT, |
| .cfg_board_common_setting. fast_boot = {0}, |
| .cfg_board_common_setting. fast_boot[0] = 0x1, |
| .cfg_board_common_setting. fast_boot[3] = 0x46, |
| |
| //DDR frequercy 1 |
| .cfg_board_SI_setting_ps[0].DRAMFreq = 912,//1008,912,792 |
| .cfg_board_SI_setting_ps[0].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[0].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm = DDR_DRAM_DDR3_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm = DDR_DRAM_DDR3_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[0].reserve2 = 0, |
| .cfg_board_SI_setting_ps[0].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[0].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 128,128,128-20,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 128,128,128-20,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| #endif |
| //write delay line setting |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64,}, |
| #endif |
| #if 0 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {896-128,896-128,896-128,896-128,896-128,896-128,896-128,896-128} , //total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[0]=0x0000007d,// 125 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[1]=0x00000091,// 145 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[2]=0x00000091,// 145 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[3]=0x0000009b,// 155 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[4]=0x000000a0,// 160 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[5]=0x000000a0,// 160 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[6]=0x000000a0,// 160 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[7]=0x000000a0,// 160 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[0]=0x000000c2,// 194 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[1]=0x000000b0,// 176 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[2]=0x000000af,// 175 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[3]=0x000000b0,// 176 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[4]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[5]=0x000000c3,// 195 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[6]=0x000000b4,// 180 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[7]=0x000000be,// 190 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[8]=0x000000ba,// 186 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[9]=0x000000c1,// 193 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[10]=0x000000d5,// 213 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[11]=0x000000c1,// 193 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[12]=0x000000d0,// 208 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[13]=0x000000cc,// 204 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[14]=0x000000c3,// 195 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[15]=0x000000be,// 190 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[16]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[17]=0x000000c8,// 200 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[18]=0x000000e0,// 224 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[19]=0x000000e5,// 229 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[20]=0x000000e2,// 226 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[21]=0x000000ec,// 236 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[22]=0x000000ec,// 236 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[23]=0x000000e7,// 231 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[24]=0x000000e4,// 228 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[25]=0x000000e9,// 233 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[26]=0x000000e6,// 230 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[27]=0x000000eb,// 235 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[28]=0x000000f5,// 245 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[29]=0x000000e7,// 231 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[30]=0x000000fd,// 253 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[31]=0x000000e8,// 232 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[32]=0x000000e4,// 228 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[33]=0x000000ee,// 238 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[34]=0x000000ec,// 236 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[35]=0x000000f2,// 242 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[36]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[37]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[38]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[39]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[40]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[41]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[42]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[43]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[44]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[45]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[46]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[47]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[48]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[49]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[50]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[51]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[52]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[53]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[54]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[55]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[56]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[57]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[58]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[59]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[60]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[61]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[62]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[63]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[64]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[65]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[66]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[67]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[68]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[69]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[70]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[71]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[0]=0x0000038c,// 908 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[1]=0x0000037a,// 890 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[2]=0x0000039a,// 922 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[3]=0x00000395,// 917 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[0]=0x0000007f-0x30,// 127 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[1]=0x0000007d-0x30,// 125 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[2]=0x0000006d-0x30,// 109 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[3]=0x0000006f-0x30,// 111 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[0]=0x00000048-0x30,// 72 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[1]=0x00000044-0x30,// 68 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[2]=0x00000038-0x30,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[3]=0x0000003b-0x30,// 59 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[4]=0x00000049-0x30,// 73 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[5]=0x0000004b-0x30,// 75 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[6]=0x0000003b-0x30,// 59 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[7]=0x00000049-0x30,// 73 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[8]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[9]=0x00000040-0x30,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[10]=0x00000052-0x30,// 82 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[11]=0x00000039-0x30,// 57 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[12]=0x00000040-0x30,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[13]=0x00000045-0x30,// 69 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[14]=0x00000042-0x30,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[15]=0x00000034-0x30,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[16]=0x0000003c-0x30,// 60 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[17]=0x00000086-0x30,// 134 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[18]=0x0000003f-0x30,// 63 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[19]=0x00000048-0x30,// 72 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[20]=0x00000037-0x30,// 55 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[21]=0x00000048-0x30,// 72 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[22]=(0x0000004e)-0x30,// 78 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[23]=0x00000044-0x30,// 68 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[24]=0x00000042-0x30,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[25]=0x00000047-0x30,// 71 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[26]=0x0000007f-0x30,// 127 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[27]=0x00000040-0x30,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[28]=0x00000052-0x30,// 82 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[29]=0x0000003d-0x30,// 61 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[30]=(0x0000004e)-0x30,// 78 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[31]=0x0000003c-0x30,// 60 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[32]=(0x0000003e)-0x30,// 62 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[33]=0x0000003f-0x30,// 63 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[34]=0x0000004c-0x30,// 76 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[35]=0x00000091-0x30,// 145 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[36]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[37]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[38]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[39]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[40]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[41]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[42]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[43]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[44]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[45]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[46]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[47]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[48]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[49]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[50]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[51]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[52]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[53]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[54]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[55]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[56]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[57]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[58]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[59]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[60]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[61]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[62]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[63]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[64]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[65]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[66]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[67]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[68]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[69]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[70]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[71]=0x00000000,// 0 |
| #endif |
| |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = { |
| 32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32, |
| 32,32+5,32,32+5,32,32+5,32,32+5,},//total 44 |
| |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter={((1<<7)|1),}, |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter = {DDR_SOC_READ_DQS_GATE_MODE_EDGE_MODE_1_DDR3,} , |
| |
| //pinmux setting |
| #if 0 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 0 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| #if 1 //real DDR3 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 20, 21, 22, 0, 0, 25, 26, 27, 0 |
| }, |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0, |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| },//d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| .cfg_board_common_setting. timming_magic = 0x66223333,//ddr_set_t start |
| .cfg_board_common_setting. timming_max_valid_configs = TIMMING_MAX_CONFIG,//sizeof(__ddr_setting)/sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_version = 0, |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_real_size = 0, //0 |
| .cfg_board_common_setting. ddr_func = 0, |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63, |
| .cfg_board_common_setting. dram_cs0_base_add = 0, |
| .cfg_board_common_setting. dram_cs1_base_add = 0, |
| |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_2T_MODE, |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC, |
| .cfg_board_common_setting. org_tdqs2dq = 0, |
| .cfg_board_common_setting. reserve1_test_function = {0}, |
| .cfg_board_common_setting. ddr_vddee_setting = {0}, |
| |
| //DDR frequercy 2 |
| .cfg_board_SI_setting_ps[1].DRAMFreq = 600, |
| .cfg_board_SI_setting_ps[1].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[1].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[1].reserve2 = 0, |
| .cfg_board_SI_setting_ps[1].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[1].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0}, |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32}, |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = { |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,}, |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192},//total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0},//total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = { |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40},//total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter = {0},//ddr_set_t end |
| }, |
| #endif //end real DDR3 |
| |
| #if 0//timing_config,af400 LPDDR4 |
| { |
| //af400 |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK, |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_LPDDR4, |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_RANK0_CH0, |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_1024MB,//CONFIG_DDR0_SIZE_AUTO_SIZE,CONFIG_DDR0_SIZE_1024MB, |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB, |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE, |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE,//DDR_WRITE_READ_DBI_DISABLE,DDR_READ_DBI_ENABLE |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16, |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_LPDDR4_32BIT,//DDR_DMC_REMAP_LPDDR4_32BIT,//DDR_DMC_REMAP_DDR3_32BIT |
| .cfg_board_common_setting. fast_boot = {0}, |
| |
| //DDR frequercy 1 |
| .cfg_board_SI_setting_ps[0].DRAMFreq = 667,//1320,1200,1104,1008,912,792 |
| .cfg_board_SI_setting_ps[0].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[0].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_80_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_80_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[0].reserve2 = 0, |
| .cfg_board_SI_setting_ps[0].vref_ac_permil = 300, |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil = 330,//330 |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[0].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 0,0,0,0,0,0,0,0, //0,0,0,0,0,0,0,0, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1//default cs cke 0 ,other AC=128 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 128,128,128,128,128,128,0,0, //0,0,0,0,0,0,0,0, |
| 128+128,128+128,128+128,128+128,128+128,128+128,128+128,128+128, |
| 128+128,128+128,128+128,128+128,128+128,128+128,128+128,128+128, |
| 128+128,128+128,128+128,128+128,128+128,128+128,128+128,128+128, |
| 128+128,128+128,128+128,128+128, |
| },//total 36 |
| #endif |
| //write delay line setting |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {128+128,128+128,128+128,128+128,128+128,128+128,128+128,128+128,} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| 64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128,64+128+128+256+128, |
| } , |
| #endif |
| #if 1 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {1024,1024,1024,1024,0,0,0,0} , //total 8 //edge mode |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| #endif |
| |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,26,32,26,32,26,32,26} , //total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter={((1<<7)|1),}, |
| |
| //pinmux setting |
| #if 1 //lpddr4 |
| .cfg_board_common_setting. ac_pinmux = |
| { |
| 0, 0, 0, 1, 0, 1, |
| 0, 5, 0, 1, 0, 0, 4, 0, 5, 0, 1, 3, 3, 4, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, |
| }, |
| #endif |
| #if 0 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 0 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0, |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| },//d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 8,15,11,13,9,12,14,10, |
| 3,0,6,4,5,7,2,1, |
| 17,18,23,22,20,21,19,16, |
| 28,30,27,25,26,24,29,31, |
| 33,32,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| .cfg_board_common_setting. timming_magic = 0,//ddr_set_t start |
| .cfg_board_common_setting. timming_max_valid_configs = TIMMING_MAX_CONFIG,//sizeof(__ddr_setting)/sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_version = 0, |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_real_size = 0, //0 |
| .cfg_board_common_setting. ddr_func = 0, |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63, |
| .cfg_board_common_setting. dram_cs0_base_add = 0, |
| .cfg_board_common_setting. dram_cs1_base_add = 0, |
| |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_1T_MODE, |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC, |
| .cfg_board_common_setting. org_tdqs2dq = 0, |
| .cfg_board_common_setting. reserve1_test_function = {0}, |
| .cfg_board_common_setting. ddr_vddee_setting = {0}, |
| |
| //DDR frequercy 2 |
| .cfg_board_SI_setting_ps[1].DRAMFreq = 667, |
| .cfg_board_SI_setting_ps[1].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[1].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[1].reserve2 = 0, |
| .cfg_board_SI_setting_ps[1].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[1].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0}, |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32}, |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = { |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,}, |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192},//total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0},//total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = { |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40},//total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter = {0},//ddr_set_t end |
| }, |
| #endif //end af400 lpddr4 |
| |
| #if 0//timing_config,af409 LPDDR4 |
| { |
| //af409 |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK, |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_LPDDR4, |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_RANK0_CH0, |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_1024MB, |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB, |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE, |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE, |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16, |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_LPDDR4_32BIT, |
| .cfg_board_common_setting. fast_boot = {0}, |
| |
| //DDR frequercy 1 |
| .cfg_board_SI_setting_ps[0].DRAMFreq = 667, |
| .cfg_board_SI_setting_ps[0].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[0].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_48_OHM, |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm = DDR_DRAM_LPDDR4_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm = DDR_DRAM_LPDDR4_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[0].reserve2 = 0, |
| .cfg_board_SI_setting_ps[0].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[0].training_phase_parameter = {0}, |
| #if 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0, |
| },//total 36 |
| #endif |
| #if 1 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org = { |
| 0,0,0,0,0,0,0,0, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| #endif |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 0,0,0,0,0,0,0,0, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| //write delay line setting |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0+256,0+256,0+256,0+256,0+256,0+256,0+256,0+256} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256, |
| 50+256,50+256,50+256,50+256,50+256,50+256,50+256,50+256,}, |
| #endif |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = { |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192,}, |
| #endif |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {0,0,0,0,0,0,0,0} , //total 8 //edge mode |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,40,32,40,32,40,32,40} , //total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = { |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter={((1<<7)|1),}, |
| |
| //pinmux setting |
| #if 0 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 0 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| #if 1 //lpddr4 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 0, 1, |
| 0, 5, 1, 2, 0, 0, 4, 0, 5, 0, 1, 3, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| }, |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0, |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 8,15,11,13,9,12,14,10, |
| 3,0,6,4,5,7,2,1, |
| 17,18,23,22,20,21,19,16, |
| 28,30,27,25,26,24,29,31, |
| 33,32,34,35 |
| },//d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| .cfg_board_common_setting. timming_magic = 0x66223333,//ddr_set_t start |
| .cfg_board_common_setting. timming_max_valid_configs = TIMMING_MAX_CONFIG,//sizeof(__ddr_setting)/sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_version = 0, |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t), |
| .cfg_board_common_setting. timming_struct_real_size = 0, //0 |
| .cfg_board_common_setting. ddr_func = 0, |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63, |
| .cfg_board_common_setting. dram_cs0_base_add = 0, |
| .cfg_board_common_setting. dram_cs1_base_add = 0, |
| |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_1T_MODE, |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC, |
| .cfg_board_common_setting. org_tdqs2dq = 0, |
| .cfg_board_common_setting. reserve1_test_function = {0}, |
| .cfg_board_common_setting. ddr_vddee_setting = {0}, |
| |
| //DDR frequercy 2 |
| .cfg_board_SI_setting_ps[1].DRAMFreq = 600, |
| .cfg_board_SI_setting_ps[1].PllBypassEn = 0, |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl = 0, |
| .cfg_board_SI_setting_ps[1].ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0, |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM, |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM, |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM, |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ, |
| .cfg_board_SI_setting_ps[1].reserve2 = 0, |
| .cfg_board_SI_setting_ps[1].vref_ac_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil = 0, |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency = 0, |
| .cfg_board_SI_setting_ps[1].training_phase_parameter = {0}, |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| },//total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0}, |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32}, |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = { |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,}, |
| #endif |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192},//total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64},//total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = { |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0},//total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = { |
| 0,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40},//total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = { |
| 0,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32},//total 36 |
| |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter = {0},//ddr_set_t end |
| }, |
| #endif //end af409 LPDDR4 |
| |
| #if 0 //timing_config,for dd3 pxp |
| //ddr_set_t ddr_set_t_default= |
| { |
| .cfg_board_common_setting. timming_magic = 0 , |
| .cfg_board_common_setting. timming_max_valid_configs = sizeof(ddr_set_t_default)/sizeof(ddr_set_t) , |
| .cfg_board_common_setting. timming_struct_version = 0 , |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t) , |
| .cfg_board_common_setting. timming_struct_real_size = 0 , //0 |
| .cfg_board_common_setting. fast_boot = {0} , |
| .cfg_board_common_setting. ddr_func = 0 , |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK , |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_DDR3 , |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_16BIT_RANK0_CH0 , |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63 , |
| .cfg_board_common_setting. dram_cs0_base_add = 0 , |
| .cfg_board_common_setting. dram_cs1_base_add = 0 , |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_768MB , |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB , |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16 , |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_2T_MODE , |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC , |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE , |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE , |
| .cfg_board_common_setting. org_tdqs2dq = 0 , |
| .cfg_board_common_setting. reserve1_test_function = {0} , |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_DDR3_32BIT , |
| #if 0 |
| .cfg_board_common_setting. ac_pinmux = |
| { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| } , |
| |
| //ac_group0-ac_group1 |
| #endif |
| #if 1 |
| .cfg_board_common_setting. ac_pinmux = |
| { |
| 0, 0, 0, 1, 2, 3, |
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 20, 21, 22, 0, 0, 25, 26, 27, 0 |
| } , |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0 , |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 3,2,0,1,7,6,5,4, |
| 14,13,12,15,8,9,11,10, |
| 20,21,22,23,16,17,19,18, |
| 24,25,28,26,31,30,27,29, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 2,3,1,0,6,7,4,5, |
| 11,10,9,8,15,14,13,12, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 3,2,0,1,7,6,5,4, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| //1,0,3,2,5,4,7,6, |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 2,7,1,5,3,6,0,4, |
| 10,11,15,13,14,9,8,12, |
| 24,29,26,31,25,28,27,30, |
| 23,18,21,19,22,17,20,16, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35, |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| .cfg_board_common_setting. ddr_vddee_setting = {0} , |
| |
| |
| .cfg_board_SI_setting_ps[0]. DRAMFreq = 667 , |
| .cfg_board_SI_setting_ps[0]. PllBypassEn = 0 , |
| .cfg_board_SI_setting_ps[0]. training_SequenceCtrl = 0 , |
| .cfg_board_SI_setting_ps[0]. ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0 , |
| .cfg_board_SI_setting_ps[0]. clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[0]. cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[0]. ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_120_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_120_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_drv_ohm = DDR_DRAM_DDR3_DRV_34_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_odt_ohm = DDR_DRAM_DDR3_ODT_60_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[0]. lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ , |
| .cfg_board_SI_setting_ps[0]. reserve2 = 0 , |
| .cfg_board_SI_setting_ps[0]. vref_ac_permil = 0 , |
| .cfg_board_SI_setting_ps[0]. vref_soc_data_permil = 0 , |
| .cfg_board_SI_setting_ps[0]. vref_dram_data_permil = 0 , |
| .cfg_board_SI_setting_ps[0]. max_core_timmming_frequency = 0 , |
| .cfg_board_SI_setting_ps[0]. training_phase_parameter = {0} , |
| .cfg_board_SI_setting_ps[0]. ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| },//total 36 |
| #if 0 |
| .cfg_board_SI_setting_ps[0]. ac_trace_delay_org = { |
| 123,124,125,126,127,128,128,128, |
| 129,128,127,126,125,124,123,122, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| } , //total 36 |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 123,124,0,126,127,0,0,128, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| } , //total 36 |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,} , |
| #endif |
| #if 0 //real board |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {128,128,128,128,128,128,128,128} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {256,256,256,256,256,256,256,256} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64,} , |
| |
| |
| #endif |
| |
| #if 1 //for pxp |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {128,128,128,128,128,128,128,128} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {256,256,256,256,256,256,256,256} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128,} , |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {128+512,128+512,128+512,128+512,128+512,128+512,128+512,128+512} , //total 8 |
| |
| #else |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {128,128,128,128,128,128,128,128} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128, |
| 64+128,64+128,64+128,64+128,64+128,64+128,64+128,64+128,} , |
| |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {1094,1094,1094,1094,1094,1094,1094,1094} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {896,896,896,896,896,896,896,896} , //total 8 |
| #endif |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = {0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = {42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, |
| 42,42,42,42,42,42,42,42,42,42, |
| 42,42,42,42,42,58,42,58,42,58,42,58,} , //total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = {32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32} , //total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| |
| .cfg_board_SI_setting_ps[1]. DRAMFreq = 667 , |
| .cfg_board_SI_setting_ps[1]. PllBypassEn = 0 , |
| .cfg_board_SI_setting_ps[1]. training_SequenceCtrl = 0 , |
| .cfg_board_SI_setting_ps[1]. ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0 , |
| .cfg_board_SI_setting_ps[1]. clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[1]. cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[1]. ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_60_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[1]. lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ , |
| .cfg_board_SI_setting_ps[1]. reserve2 = 0 , |
| .cfg_board_SI_setting_ps[1]. vref_ac_permil = 0 , |
| .cfg_board_SI_setting_ps[1]. vref_soc_data_permil = 0 , |
| .cfg_board_SI_setting_ps[1]. vref_dram_data_permil = 0 , |
| .cfg_board_SI_setting_ps[1]. max_core_timmming_frequency = 0 , |
| .cfg_board_SI_setting_ps[1]. training_phase_parameter = {0} , |
| .cfg_board_SI_setting_ps[1]. ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #if 0 |
| .cfg_board_SI_setting_ps[1]. ac_trace_delay_org = { |
| 123,124,125,126,127,128,128,128, |
| 129,128,127,126,125,124,123,122, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 0,0,0,0,0,0,0,0, //0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0, |
| } , //total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = {50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,} , |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = {10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10,} , |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = {64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64} , |
| //total 72 |
| #endif |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192} , //total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = {0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = {40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40} , //total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = {32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32} , //total 36 |
| .cfg_ddr_training_delay_ps[1]. reserve_training_parameter = {0} , |
| }, |
| #endif //end for dd3 pxp |
| |
| #if 0 //timing_config,for ddr4 pxp remap |
| //ddr_set_t ddr_set_t_default= |
| { |
| .cfg_board_common_setting. timming_magic = 0 , |
| .cfg_board_common_setting. timming_max_valid_configs = sizeof(ddr_set_t_default)/sizeof(ddr_set_t) , |
| .cfg_board_common_setting. timming_struct_version = 0 , |
| .cfg_board_common_setting. timming_struct_org_size = sizeof(ddr_set_t) , |
| .cfg_board_common_setting. timming_struct_real_size = 0 , //0 |
| .cfg_board_common_setting. fast_boot = {0} , |
| .cfg_board_common_setting. ddr_func = 0 , |
| .cfg_board_common_setting. board_id = CONFIG_BOARD_ID_MASK , |
| .cfg_board_common_setting. DramType = CONFIG_DDR_TYPE_DDR4 , |
| .cfg_board_common_setting. dram_rank_config = CONFIG_DDR0_32BIT_RANK0_CH0 , |
| .cfg_board_common_setting. DisabledDbyte = CONFIG_DISABLE_D32_D63 , |
| .cfg_board_common_setting. dram_cs0_base_add = 0 , |
| .cfg_board_common_setting. dram_cs1_base_add = 0 , |
| .cfg_board_common_setting. dram_cs0_size_MB = CONFIG_DDR0_SIZE_1024MB , |
| .cfg_board_common_setting. dram_cs1_size_MB = CONFIG_DDR1_SIZE_0MB , |
| .cfg_board_common_setting. dram_x4x8x16_mode = CONFIG_DRAM_MODE_X16 , |
| .cfg_board_common_setting. Is2Ttiming = CONFIG_USE_DDR_2T_MODE , |
| .cfg_board_common_setting. log_level = LOG_LEVEL_BASIC , |
| .cfg_board_common_setting. ddr_rdbi_wr_enable = DDR_WRITE_READ_DBI_DISABLE , |
| .cfg_board_common_setting. pll_ssc_mode = DDR_PLL_SSC_DISABLE , |
| .cfg_board_common_setting. org_tdqs2dq = 0 , |
| .cfg_board_common_setting. reserve1_test_function = {0} , |
| .cfg_board_common_setting. ddr_dmc_remap = DDR_DMC_REMAP_DDR4_32BIT , |
| #if 1 //af409 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 8, 27, 10, 2, 9, 21, 5, 14, 1, 0, 25, 13, 12, 4, 7, 22, 0, 0, 0, 0, 6, 3, 20, 0, 0, 15, 26, 11, |
| }, |
| #endif |
| #if 0 //af419 |
| .cfg_board_common_setting. ac_pinmux = { |
| 0, 0, 0, 1, 2, 3, |
| 27, 12, 21, 9, 8, 0, 14, 10, 6, 7, 20, 5, 22, 13, 15, 2, 0, 0, 0, 0, 11, 26, 4, 0, 0, 25, 3, 1, |
| }, |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ac_pinmux = |
| { |
| 0, 0, 0, 1, 2, 3, |
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 20, 21, 22, 0, 0, 25, 26, 27, 0 |
| } , |
| #endif |
| .cfg_board_common_setting. ddr_dqs_swap = 0 , |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 3,2,0,1,7,6,5,4, |
| 14,13,12,15,8,9,11,10, |
| 20,21,22,23,16,17,19,18, |
| 24,25,28,26,31,30,27,29, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 2,3,1,0,6,7,4,5, |
| 11,10,9,8,15,14,13,12, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 3,2,0,1,7,6,5,4, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| //1,0,3,2,5,4,7,6, |
| #endif |
| #if 0 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 2,7,1,5,3,6,0,4, |
| 10,11,15,13,14,9,8,12, |
| 24,29,26,31,25,28,27,30, |
| 23,18,21,19,22,17,20,16, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| |
| #if 1 |
| .cfg_board_common_setting. ddr_dq_remap = { |
| 0,1,2,3,4,5,6,7, |
| 8,9,10,11,12,13,14,15, |
| 16,17,18,19,20,21,22,23, |
| 24,25,26,27,28,29,30,31, |
| 32,33,34,35 |
| } , //d0-d31 dm0 dm1 dm2 dm3 |
| #endif |
| .cfg_board_common_setting. ddr_vddee_setting = {0} , |
| |
| |
| .cfg_board_SI_setting_ps[0]. DRAMFreq = 667 , |
| .cfg_board_SI_setting_ps[0]. PllBypassEn = 0 , |
| .cfg_board_SI_setting_ps[0]. training_SequenceCtrl = 0 , |
| .cfg_board_SI_setting_ps[0]. ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0 , |
| .cfg_board_SI_setting_ps[0]. clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[0]. cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[0]. ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[0]. soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_120_OHM , //for pxp dram weak driver model |
| .cfg_board_SI_setting_ps[0]. dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[0]. dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[0]. lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ , |
| .cfg_board_SI_setting_ps[0]. reserve2 = 0 , |
| .cfg_board_SI_setting_ps[0]. vref_ac_permil = 0 , |
| .cfg_board_SI_setting_ps[0]. vref_soc_data_permil = 0 , |
| .cfg_board_SI_setting_ps[0]. vref_dram_data_permil = 0 , |
| .cfg_board_SI_setting_ps[0]. max_core_timmming_frequency = 0 , |
| .cfg_board_SI_setting_ps[0]. training_phase_parameter = {0} , |
| .cfg_board_SI_setting_ps[0]. ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| } , //total 36 |
| #if 0 |
| .cfg_board_SI_setting_ps[0]. ac_trace_delay_org = { |
| 123,124,125,126,127,128,128,128, |
| 129,128,127,126,125,124,123,122, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384,384,384,384,384, |
| 384,384,384,384, |
| } , //total 36 |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. ac_trace_delay = { |
| 0,0,0,0,0,0,0,0, //0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0, |
| } , //total 36 |
| #endif |
| #if 1 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {128,128,128,128,128,128,128,128} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192, |
| 192,192,192,192,192,192,192,192,} , |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10,} , |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[0]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| .cfg_ddr_training_delay_ps[0]. write_dq_bit_delay = {64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64} , |
| //total 72 |
| #endif |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {0,0,0,0,0,0,0,0} , //total 8 //edge mode |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[0]. read_dq_bit_delay = {0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[0]. soc_bit_vref = {0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,50,40,50,40,50,40,50} , //total 44 |
| .cfg_ddr_training_delay_ps[0]. dram_bit_vref = {0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32} , //total 36 |
| .cfg_ddr_training_delay_ps[0]. reserve_training_parameter = {0} , |
| //.cfg_ddr_training_delay_ps[0].reserve_training_parameter={((1<<7)|1),}, |
| |
| .cfg_board_SI_setting_ps[1]. DRAMFreq = 667 , |
| .cfg_board_SI_setting_ps[1]. PllBypassEn = 0 , |
| .cfg_board_SI_setting_ps[1]. training_SequenceCtrl = 0 , |
| .cfg_board_SI_setting_ps[1]. ddr_odt_config = DDR_DRAM_ODT_W_CS0_ODT0 , |
| .cfg_board_SI_setting_ps[1]. clk_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[1]. cs_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[1]. ac_drv_ohm = DDR_SOC_AC_DRV_40_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_drv_ohm_p = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_drv_ohm_n = DDR_SOC_DATA_DRV_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_odt_ohm_p = DDR_SOC_DATA_DRV_ODT_60_OHM , |
| .cfg_board_SI_setting_ps[1]. soc_data_odt_ohm_n = DDR_SOC_DATA_DRV_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_drv_ohm = DDR_DRAM_DDR4_DRV_34_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_odt_ohm = DDR_DRAM_DDR4_ODT_60_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_wr_odt_ohm = DDR_DRAM_DDR_WR_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_ac_odt_ohm = DDR_DRAM_DDR_AC_ODT_0_OHM , |
| .cfg_board_SI_setting_ps[1]. dram_data_drv_pull_up_calibration_ohm = DDR_DRAM_LPDDR4_ODT_40_OHM , |
| .cfg_board_SI_setting_ps[1]. lpddr4_dram_vout_voltage_range_setting = DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ , |
| .cfg_board_SI_setting_ps[1]. reserve2 = 0 , |
| .cfg_board_SI_setting_ps[1]. vref_ac_permil = 0 , |
| .cfg_board_SI_setting_ps[1]. vref_soc_data_permil = 0 , |
| .cfg_board_SI_setting_ps[1]. vref_dram_data_permil = 0 , |
| .cfg_board_SI_setting_ps[1]. max_core_timmming_frequency = 0 , |
| .cfg_board_SI_setting_ps[1]. training_phase_parameter = {0} , |
| .cfg_board_SI_setting_ps[1]. ac_trace_delay_org = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #if 0 |
| .cfg_board_SI_setting_ps[1]. ac_trace_delay_org = { |
| 123,124,125,126,127,128,128,128, |
| 129,128,127,126,125,124,123,122, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #endif |
| |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128,128,128,128,128, |
| 128,128,128,128, |
| } , //total 36 |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[1]. ac_trace_delay = { |
| 0,0,0,0,0,0,0,0, //0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0, |
| } , //total 36 |
| #endif |
| .cfg_ddr_training_delay_ps[1]. write_dqs_delay = {0,0,0,0,0,0,0,0} , |
| //.cfg_ddr_training_delay_ps[0]. write_dqs_delay = {32,32,32,32,32,32,32,32} , |
| #if 1 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = {50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50, |
| 50,50,50,50,50,50,50,50,} , |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = {10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10, |
| 10,10,10,10,10,10,10,10,} , |
| #endif |
| #if 0 |
| .cfg_ddr_training_delay_ps[1]. write_dq_bit_delay = {64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64, |
| 64,64,64,64,64,64,64,64} , |
| //total 72 |
| #endif |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {256,256,256,256,256,256,256,256} , //total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_gate_delay = {192,192,192,192,192,192,192,192} , //total 8 |
| //.cfg_ddr_training_delay_ps[0]. read_dqs_gate_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dqs_delay = {64,64,64,64,64,64,64,64} , //total 8 |
| .cfg_ddr_training_delay_ps[1]. read_dq_bit_delay = {0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0, |
| 0,0,0,0,0,0,0,0} , //total 72 |
| .cfg_ddr_training_delay_ps[1]. soc_bit_vref = {40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40, |
| 40,40,40,40,40,40,40,40,40,40,40} , //total 44 |
| .cfg_ddr_training_delay_ps[1]. dram_bit_vref = {32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32,32,32,32,32,32,32,32,32, |
| 32,32,32} , //total 36 |
| .cfg_ddr_training_delay_ps[1]. reserve_training_parameter = {0} , |
| }, |
| #endif //end for ddr4 pxp remap |
| |
| |
| #ifdef T406_LPDDR4 //timing_config,for T406 LPDDR4 |
| //ddr_set_t ddr_set_t_default= |
| { |
| //old fast_boot[0]=0x00000000,// 0 |
| .cfg_board_common_setting.fast_boot[0]=0x000000fd,// 253 |
| .cfg_board_common_setting.fast_boot[1]=0x00000000,// 0 |
| .cfg_board_common_setting.fast_boot[2]=0x00000000,// 0 |
| .cfg_board_common_setting.fast_boot[3]=0x00000000,// 0 |
| .cfg_board_common_setting.timming_magic=0x00000000,// 0 |
| .cfg_board_common_setting.timming_max_valid_configs=0x00000001,// 1 |
| .cfg_board_common_setting.timming_struct_version=0x00000000,// 0 |
| .cfg_board_common_setting.timming_struct_org_size=0x000004bc,// 1212 |
| .cfg_board_common_setting.timming_struct_real_size=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_func=0x00000000,// 0 |
| .cfg_board_common_setting.board_id=0x000000ff,// 255 |
| .cfg_board_common_setting.DramType=0x00000002,// 2 |
| .cfg_board_common_setting.dram_rank_config=0x00000007,// 7 |
| .cfg_board_common_setting.DisabledDbyte=0x000000f0,// 240 |
| .cfg_board_common_setting.dram_cs0_base_add=0x00000000,// 0 |
| .cfg_board_common_setting.dram_cs1_base_add=0x00000000,// 0 |
| .cfg_board_common_setting.dram_cs0_size_MB=0x00000400,// 1024 |
| .cfg_board_common_setting.dram_cs1_size_MB=0x00000400,// 1024 |
| .cfg_board_common_setting.dram_x4x8x16_mode=0x00000000,// 0 |
| .cfg_board_common_setting.Is2Ttiming=0x00000000,// 0 |
| .cfg_board_common_setting.log_level=0x00000001,// 1 |
| .cfg_board_common_setting.ddr_rdbi_wr_enable=0x00000000,// 0 |
| .cfg_board_common_setting.pll_ssc_mode=0x00000000,// 0 |
| .cfg_board_common_setting.org_tdqs2dq=0x00000000,// 0 |
| .cfg_board_common_setting.reserve1_test_function[0]=0x00000000,// 0 |
| .cfg_board_common_setting.reserve1_test_function[1]=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_dmc_remap[0]=0x14941cc5,// 345251013 |
| .cfg_board_common_setting.ddr_dmc_remap[1]=0x1ee6000b,// 518389771 |
| .cfg_board_common_setting.ddr_dmc_remap[2]=0x2f6ace51,// 795528785 |
| .cfg_board_common_setting.ddr_dmc_remap[3]=0x3bcdeb38,// 1003350840 |
| .cfg_board_common_setting.ddr_dmc_remap[4]=0x000a41be,// 672190 |
| .cfg_board_common_setting.ac_pinmux[0]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[1]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[2]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[3]=0x00000001,// 1 |
| .cfg_board_common_setting.ac_pinmux[4]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[5]=0x00000001,// 1 |
| .cfg_board_common_setting.ac_pinmux[6]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[7]=0x00000005,// 5 |
| .cfg_board_common_setting.ac_pinmux[8]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[9]=0x00000001,// 1 |
| .cfg_board_common_setting.ac_pinmux[10]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[11]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[12]=0x00000004,// 4 |
| .cfg_board_common_setting.ac_pinmux[13]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[14]=0x00000005,// 5 |
| .cfg_board_common_setting.ac_pinmux[15]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[16]=0x00000001,// 1 |
| .cfg_board_common_setting.ac_pinmux[17]=0x00000003,// 3 |
| .cfg_board_common_setting.ac_pinmux[18]=0x00000003,// 3 |
| .cfg_board_common_setting.ac_pinmux[19]=0x00000004,// 4 |
| .cfg_board_common_setting.ac_pinmux[20]=0x00000002,// 2 |
| .cfg_board_common_setting.ac_pinmux[21]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[22]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[23]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[24]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[25]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[26]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[27]=0x00000002,// 2 |
| .cfg_board_common_setting.ac_pinmux[28]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[29]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[30]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[31]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[32]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[33]=0x00000000,// 0 |
| .cfg_board_common_setting.ac_pinmux[34]=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_dqs_swap=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_dq_remap[0]=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_dq_remap[1]=0x00000004,// 4 |
| .cfg_board_common_setting.ddr_dq_remap[2]=0x00000001,// 1 |
| .cfg_board_common_setting.ddr_dq_remap[3]=0x00000002,// 2 |
| .cfg_board_common_setting.ddr_dq_remap[4]=0x00000003,// 3 |
| .cfg_board_common_setting.ddr_dq_remap[5]=0x00000005,// 5 |
| .cfg_board_common_setting.ddr_dq_remap[6]=0x00000007,// 7 |
| .cfg_board_common_setting.ddr_dq_remap[7]=0x00000006,// 6 |
| .cfg_board_common_setting.ddr_dq_remap[8]=0x0000000c,// 12 |
| .cfg_board_common_setting.ddr_dq_remap[9]=0x0000000d,// 13 |
| .cfg_board_common_setting.ddr_dq_remap[10]=0x00000009,// 9 |
| .cfg_board_common_setting.ddr_dq_remap[11]=0x0000000b,// 11 |
| .cfg_board_common_setting.ddr_dq_remap[12]=0x00000008,// 8 |
| .cfg_board_common_setting.ddr_dq_remap[13]=0x0000000f,// 15 |
| .cfg_board_common_setting.ddr_dq_remap[14]=0x0000000e,// 14 |
| .cfg_board_common_setting.ddr_dq_remap[15]=0x0000000a,// 10 |
| .cfg_board_common_setting.ddr_dq_remap[16]=0x00000014,// 20 |
| .cfg_board_common_setting.ddr_dq_remap[17]=0x00000015,// 21 |
| .cfg_board_common_setting.ddr_dq_remap[18]=0x00000016,// 22 |
| .cfg_board_common_setting.ddr_dq_remap[19]=0x00000017,// 23 |
| .cfg_board_common_setting.ddr_dq_remap[20]=0x00000010,// 16 |
| .cfg_board_common_setting.ddr_dq_remap[21]=0x00000011,// 17 |
| .cfg_board_common_setting.ddr_dq_remap[22]=0x00000013,// 19 |
| .cfg_board_common_setting.ddr_dq_remap[23]=0x00000012,// 18 |
| .cfg_board_common_setting.ddr_dq_remap[24]=0x0000001f,// 31 |
| .cfg_board_common_setting.ddr_dq_remap[25]=0x0000001d,// 29 |
| .cfg_board_common_setting.ddr_dq_remap[26]=0x0000001e,// 30 |
| .cfg_board_common_setting.ddr_dq_remap[27]=0x0000001c,// 28 |
| .cfg_board_common_setting.ddr_dq_remap[28]=0x00000018,// 24 |
| .cfg_board_common_setting.ddr_dq_remap[29]=0x0000001a,// 26 |
| .cfg_board_common_setting.ddr_dq_remap[30]=0x0000001b,// 27 |
| .cfg_board_common_setting.ddr_dq_remap[31]=0x00000019,// 25 |
| .cfg_board_common_setting.ddr_dq_remap[32]=0x00000020,// 32 |
| .cfg_board_common_setting.ddr_dq_remap[33]=0x00000021,// 33 |
| .cfg_board_common_setting.ddr_dq_remap[34]=0x00000022,// 34 |
| .cfg_board_common_setting.ddr_dq_remap[35]=0x00000023,// 35 |
| .cfg_board_common_setting.ddr_vddee_setting[0]=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_vddee_setting[1]=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_vddee_setting[2]=0x00000000,// 0 |
| .cfg_board_common_setting.ddr_vddee_setting[3]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].DRAMFreq=0x00000528,// 1320 |
| .cfg_board_SI_setting_ps[0].PllBypassEn=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].training_SequenceCtrl=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ddr_odt_config=0x00000001,// 1 |
| .cfg_board_SI_setting_ps[0].clk_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].cs_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].ac_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_p=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].soc_data_drv_ohm_n=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_p=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].soc_data_odt_ohm_n=0x00000050,// 80 |
| .cfg_board_SI_setting_ps[0].dram_data_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].dram_data_odt_ohm=0x00000050,// 80 |
| .cfg_board_SI_setting_ps[0].dram_data_wr_odt_ohm=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].dram_ac_odt_ohm=0x00000078,// 120 |
| .cfg_board_SI_setting_ps[0].dram_data_drv_pull_up_calibration_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[0].lpddr4_dram_vout_voltage_range_setting=0x00000001,// 1 |
| .cfg_board_SI_setting_ps[0].reserve2=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].vref_ac_permil =0x0000012c,// 300 |
| .cfg_board_SI_setting_ps[0].vref_soc_data_permil =0x000000a0,// 160 |
| .cfg_board_SI_setting_ps[0].vref_dram_data_permil=0x0000014a,// 330 |
| .cfg_board_SI_setting_ps[0].max_core_timmming_frequency=0x00000640,// 1600 |
| .cfg_board_SI_setting_ps[0].training_phase_parameter[0]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].training_phase_parameter[1]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[0]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[1]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[2]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[3]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[4]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[5]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[6]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[7]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[8]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[9]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[10]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[11]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[12]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[13]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[14]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[15]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[16]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[17]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[18]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[19]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[20]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[21]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[22]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[23]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[24]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[25]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[26]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[27]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[28]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[29]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[30]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[31]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[32]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[33]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[34]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[0].ac_trace_delay_org[35]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[0]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[1]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[2]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[3]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[4]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[5]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[6]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[7]=0x00000114,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[8]=0x00000114,// 276 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[9]=0x00000114,// 276 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[10]=0x0000013c,// 316 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[11]=0x00000114,// 276 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[12]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[13]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[14]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[15]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[16]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[17]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[18]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[19]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[20]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[21]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[22]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[23]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[24]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[25]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[26]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[27]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[28]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[29]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[30]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[31]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[32]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[33]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[34]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].ac_trace_delay[35]=0x00000100,// 256 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[0]=0x0000007d,// 125 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[1]=0x00000069,// 105 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[2]=0x00000087,// 135 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[3]=0x00000073,// 115 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[4]=0x0000007d,// 125 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[5]=0x00000069,// 105 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[6]=0x00000087,// 135 |
| .cfg_ddr_training_delay_ps[0].write_dqs_delay[7]=0x00000073,// 115 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[0]=0x00000163,// 355 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[1]=0x00000161,// 353 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[2]=0x0000015c,// 348 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[3]=0x0000016a,// 362 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[4]=0x00000170,// 368 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[5]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[6]=0x00000161,// 353 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[7]=0x0000016d,// 365 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[8]=0x00000167,// 359 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[9]=0x00000152,// 338 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[10]=0x00000159,// 345 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[11]=0x00000150,// 336 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[12]=0x00000156,// 342 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[13]=0x0000015c,// 348 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[14]=0x00000158,// 344 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[15]=0x00000159,// 345 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[16]=0x0000015a,// 346 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[17]=0x00000156,// 342 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[18]=0x0000016b,// 363 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[19]=0x00000174,// 372 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[20]=0x00000166,// 358 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[21]=0x00000175,// 373 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[22]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[23]=0x00000175,// 373 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[24]=0x0000016c,// 364 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[25]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[26]=0x0000016e,// 366 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[27]=0x00000165,// 357 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[28]=0x00000170,// 368 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[29]=0x00000160,// 352 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[30]=0x00000176,// 374 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[31]=0x00000164,// 356 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[32]=0x00000164,// 356 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[33]=0x00000163,// 355 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[34]=0x00000161,// 353 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[35]=0x0000016b,// 363 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[36]=0x00000163,// 355 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[37]=0x00000161,// 353 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[38]=0x0000015c,// 348 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[39]=0x0000016a,// 362 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[40]=0x00000170,// 368 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[41]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[42]=0x00000161,// 353 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[43]=0x0000016d,// 365 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[44]=0x00000167,// 359 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[45]=0x00000152,// 338 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[46]=0x00000159,// 345 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[47]=0x00000150,// 336 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[48]=0x00000156,// 342 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[49]=0x0000015c,// 348 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[50]=0x00000158,// 344 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[51]=0x00000159,// 345 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[52]=0x0000015a,// 346 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[53]=0x00000156,// 342 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[54]=0x0000016b,// 363 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[55]=0x00000174,// 372 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[56]=0x00000166,// 358 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[57]=0x00000175,// 373 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[58]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[59]=0x00000175,// 373 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[60]=0x0000016c,// 364 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[61]=0x00000173,// 371 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[62]=0x0000016e,// 366 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[63]=0x00000165,// 357 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[64]=0x00000170,// 368 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[65]=0x00000160,// 352 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[66]=0x00000176,// 374 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[67]=0x00000164,// 356 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[68]=0x00000164,// 356 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[69]=0x00000163,// 355 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[70]=0x00000161,// 353 |
| .cfg_ddr_training_delay_ps[0].write_dq_bit_delay[71]=0x0000016b,// 363 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[0]=0x000002fd,// 765 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[1]=0x0000030f,// 783 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[2]=0x000002f1,// 753 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[3]=0x000002fa,// 762 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[4]=0x000002fd,// 765 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[5]=0x0000030f,// 783 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[6]=0x000002f1,// 753 |
| .cfg_ddr_training_delay_ps[0].read_dqs_gate_delay[7]=0x000002fa,// 762 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[0]=0x00000075,// 117 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[1]=0x0000006c,// 108 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[2]=0x0000006c,// 108 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[3]=0x00000070,// 112 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[4]=0x00000075,// 117 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[5]=0x0000006c,// 108 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[6]=0x0000006c,// 108 |
| .cfg_ddr_training_delay_ps[0].read_dqs_delay[7]=0x00000070,// 112 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[0]=0x00000036,// 54 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[1]=0x0000003f,// 63 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[2]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[3]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[4]=0x00000044,// 68 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[5]=0x00000045,// 69 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[6]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[7]=0x00000042,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[8]=0x0000003c,// 60 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[9]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[10]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[11]=0x00000031,// 49 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[12]=0x00000031,// 49 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[13]=0x00000037,// 55 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[14]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[15]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[16]=0x00000039,// 57 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[17]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[18]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[19]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[20]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[21]=0x00000037,// 55 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[22]=0x0000003f,// 63 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[23]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[24]=0x00000035,// 53 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[25]=0x00000042,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[26]=0x0000003a,// 58 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[27]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[28]=0x00000046,// 70 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[29]=0x00000039,// 57 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[30]=0x0000003b,// 59 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[31]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[32]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[33]=0x00000031,// 49 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[34]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[35]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[36]=0x00000036,// 54 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[37]=0x0000003f,// 63 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[38]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[39]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[40]=0x00000044,// 68 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[41]=0x00000045,// 69 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[42]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[43]=0x00000042,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[44]=0x0000003c,// 60 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[45]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[46]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[47]=0x00000031,// 49 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[48]=0x00000031,// 49 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[49]=0x00000037,// 55 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[50]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[51]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[52]=0x00000039,// 57 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[53]=0x00000033,// 51 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[54]=0x00000034,// 52 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[55]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[56]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[57]=0x00000037,// 55 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[58]=0x0000003f,// 63 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[59]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[60]=0x00000035,// 53 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[61]=0x00000042,// 66 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[62]=0x0000003a,// 58 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[63]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[64]=0x00000046,// 70 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[65]=0x00000039,// 57 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[66]=0x0000003b,// 59 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[67]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[68]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[69]=0x00000031,// 49 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[70]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].read_dq_bit_delay[71]=0x00000038,// 56 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[0]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[1]=0x00000016,// 22 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[2]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[3]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[4]=0x00000016,// 22 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[5]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[6]=0x00000016,// 22 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[7]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[8]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[9]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[10]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[11]=0x00000015,// 21 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[12]=0x00000015,// 21 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[13]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[14]=0x00000015,// 21 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[15]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[16]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[17]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[18]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[19]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[20]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[21]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[22]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[23]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[24]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[25]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[26]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[27]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[28]=0x00000015,// 21 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[29]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[30]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[31]=0x00000017,// 23 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[32]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[33]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[34]=0x00000018,// 24 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[35]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[36]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[37]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[38]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[39]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[40]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[41]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[42]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].soc_bit_vref[43]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[0]=0x00000050,// 80 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[1]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[2]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[3]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[8]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[9]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[10]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[11]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[12]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[13]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[14]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[15]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[16]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[17]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[18]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[19]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[20]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[21]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[22]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[23]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[24]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[25]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[26]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[27]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[28]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[29]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[30]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[31]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[32]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[33]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[34]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].dram_bit_vref[35]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[0]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[1]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[2]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[3]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[0].reserve_training_parameter[7]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].DRAMFreq=0x0000029b,// 667 |
| .cfg_board_SI_setting_ps[1].PllBypassEn=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].training_SequenceCtrl=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ddr_odt_config=0x00000001,// 1 |
| .cfg_board_SI_setting_ps[1].clk_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[1].cs_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[1].ac_drv_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_p=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[1].soc_data_drv_ohm_n=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_p=0x0000003c,// 60 |
| .cfg_board_SI_setting_ps[1].soc_data_odt_ohm_n=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].dram_data_drv_ohm=0x00000022,// 34 |
| .cfg_board_SI_setting_ps[1].dram_data_odt_ohm=0x0000003c,// 60 |
| .cfg_board_SI_setting_ps[1].dram_data_wr_odt_ohm=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].dram_ac_odt_ohm=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].dram_data_drv_pull_up_calibration_ohm=0x00000028,// 40 |
| .cfg_board_SI_setting_ps[1].lpddr4_dram_vout_voltage_range_setting=0x00000001,// 1 |
| .cfg_board_SI_setting_ps[1].reserve2=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].vref_ac_permil =0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].vref_soc_data_permil =0x000000a0,// 160 |
| .cfg_board_SI_setting_ps[1].vref_dram_data_permil=0x0000012c,// 300 |
| .cfg_board_SI_setting_ps[1].max_core_timmming_frequency=0x00000640,// 1600 |
| .cfg_board_SI_setting_ps[1].training_phase_parameter[0]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].training_phase_parameter[1]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[0]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[1]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[2]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[3]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[4]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[5]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[6]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[7]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[8]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[9]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[10]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[11]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[12]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[13]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[14]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[15]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[16]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[17]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[18]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[19]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[20]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[21]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[22]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[23]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[24]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[25]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[26]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[27]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[28]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[29]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[30]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[31]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[32]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[33]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[34]=0x00000000,// 0 |
| .cfg_board_SI_setting_ps[1].ac_trace_delay_org[35]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[0]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[1]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[2]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[3]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[4]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[5]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[6]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[8]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[9]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[10]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[11]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[12]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[13]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[14]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[15]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[16]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[17]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[18]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[19]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[20]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[21]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[22]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[23]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[24]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[25]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[26]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[27]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[28]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[29]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[30]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[31]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[32]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[33]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[34]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].ac_trace_delay[35]=0x00000080,// 128 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[0]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[1]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[2]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[3]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dqs_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[0]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[1]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[2]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[3]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[4]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[5]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[6]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[7]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[8]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[9]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[10]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[11]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[12]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[13]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[14]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[15]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[16]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[17]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[18]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[19]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[20]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[21]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[22]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[23]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[24]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[25]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[26]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[27]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[28]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[29]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[30]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[31]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[32]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[33]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[34]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[35]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[36]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[37]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[38]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[39]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[40]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[41]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[42]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[43]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[44]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[45]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[46]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[47]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[48]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[49]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[50]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[51]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[52]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[53]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[54]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[55]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[56]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[57]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[58]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[59]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[60]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[61]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[62]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[63]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[64]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[65]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[66]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[67]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[68]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[69]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[70]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].write_dq_bit_delay[71]=0x00000032,// 50 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[0]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[1]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[2]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[3]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[4]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[5]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[6]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_gate_delay[7]=0x000000c0,// 192 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[0]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[1]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[2]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[3]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[4]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[5]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[6]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dqs_delay[7]=0x00000040,// 64 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[0]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[1]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[2]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[3]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[8]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[9]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[10]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[11]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[12]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[13]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[14]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[15]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[16]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[17]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[18]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[19]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[20]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[21]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[22]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[23]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[24]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[25]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[26]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[27]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[28]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[29]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[30]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[31]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[32]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[33]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[34]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[35]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[36]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[37]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[38]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[39]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[40]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[41]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[42]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[43]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[44]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[45]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[46]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[47]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[48]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[49]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[50]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[51]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[52]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[53]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[54]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[55]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[56]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[57]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[58]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[59]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[60]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[61]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[62]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[63]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[64]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[65]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[66]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[67]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[68]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[69]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[70]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].read_dq_bit_delay[71]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[0]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[1]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[2]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[3]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[4]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[5]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[6]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[7]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[8]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[9]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[10]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[11]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[12]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[13]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[14]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[15]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[16]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[17]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[18]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[19]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[20]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[21]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[22]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[23]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[24]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[25]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[26]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[27]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[28]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[29]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[30]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[31]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[32]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[33]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[34]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[35]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[36]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[37]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[38]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[39]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[40]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[41]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[42]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].soc_bit_vref[43]=0x00000010,// 16 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[0]=0x00000050,// 80 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[1]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[2]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[3]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[7]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[8]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[9]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[10]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[11]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[12]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[13]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[14]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[15]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[16]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[17]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[18]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[19]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[20]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[21]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[22]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[23]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[24]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[25]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[26]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[27]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[28]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[29]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[30]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[31]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[32]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[33]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[34]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].dram_bit_vref[35]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[0]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[1]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[2]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[3]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[4]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[5]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[6]=0x00000000,// 0 |
| .cfg_ddr_training_delay_ps[1].reserve_training_parameter[7]=0x00000000,// 0 |
| }, |
| #endif |
| }; |
| |
| //ddr timing end |
| |
| pll_set_t __pll_setting = { |
| .cpu_clk = CPU_CLK / 24 * 24, |
| #ifdef CONFIG_PXP_EMULATOR |
| .pxp = 1, |
| #else |
| .pxp = 0, |
| #endif |
| .spi_ctrl = 0, |
| .lCustomerID = AML_CUSTOMER_ID, |
| .log_chl = 0x3, /* 0x77: all channel enable. 0xFF: with stream info */ |
| .log_ctrl = (1<<7) | /* (1<<7), print bl2 log into buffer */ |
| #ifdef CONFIG_SILENT_CONSOLE |
| (1<<6), /* do not print log buffer */ |
| #else |
| (0<<6), /* print log buffer before run bl31 */ |
| #endif |
| .ddr_timming_save_mode = 1, |
| }; |
| |
| ddr_reg_t __ddr_reg[] = { |
| /* demo, user defined override register */ |
| {0xaabbccdd, 0, 0, 0, 0, 0}, |
| {0x11223344, 0, 0, 0, 0, 0}, |
| {0, 0, 0, 0, 0, 0}, |
| }; |
| |
| |
| |
| #define VCCK_VAL AML_VCCK_INIT_VOLTAGE |
| #define VDDEE_VAL AML_VDDEE_INIT_VOLTAGE |
| /* VCCK PWM table */ |
| #if (VCCK_VAL == 1039) |
| #define VCCK_VAL_REG 0x00000022 |
| #elif (VCCK_VAL == 1029) |
| #define VCCK_VAL_REG 0x00010021 |
| #elif (VCCK_VAL == 1019) |
| #define VCCK_VAL_REG 0x00020020 |
| #elif (VCCK_VAL == 1009) |
| #define VCCK_VAL_REG 0x0003001f |
| #elif (VCCK_VAL == 999) |
| #define VCCK_VAL_REG 0x0004001e |
| #elif (VCCK_VAL == 989) |
| #define VCCK_VAL_REG 0x0005001d |
| #elif (VCCK_VAL == 979) |
| #define VCCK_VAL_REG 0x0006001c |
| #elif (VCCK_VAL == 969) |
| #define VCCK_VAL_REG 0x0007001b |
| #elif (VCCK_VAL == 959) |
| #define VCCK_VAL_REG 0x0008001a |
| #elif (VCCK_VAL == 949) |
| #define VCCK_VAL_REG 0x00090019 |
| #elif (VCCK_VAL == 939) |
| #define VCCK_VAL_REG 0x000a0018 |
| #elif (VCCK_VAL == 929) |
| #define VCCK_VAL_REG 0x000b0017 |
| #elif (VCCK_VAL == 919) |
| #define VCCK_VAL_REG 0x000c0016 |
| #elif (VCCK_VAL == 909) |
| #define VCCK_VAL_REG 0x000d0015 |
| #elif (VCCK_VAL == 899) |
| #define VCCK_VAL_REG 0x000e0014 |
| #elif (VCCK_VAL == 889) |
| #define VCCK_VAL_REG 0x000f0013 |
| #elif (VCCK_VAL == 879) |
| #define VCCK_VAL_REG 0x00100012 |
| #elif (VCCK_VAL == 869) |
| #define VCCK_VAL_REG 0x00110011 |
| #elif (VCCK_VAL == 859) |
| #define VCCK_VAL_REG 0x00120010 |
| #elif (VCCK_VAL == 849) |
| #define VCCK_VAL_REG 0x0013000f |
| #elif (VCCK_VAL == 839) |
| #define VCCK_VAL_REG 0x0014000e |
| #elif (VCCK_VAL == 829) |
| #define VCCK_VAL_REG 0x0015000d |
| #elif (VCCK_VAL == 819) |
| #define VCCK_VAL_REG 0x0016000c |
| #elif (VCCK_VAL == 809) |
| #define VCCK_VAL_REG 0x0017000b |
| #elif (VCCK_VAL == 799) |
| #define VCCK_VAL_REG 0x0018000a |
| #elif (VCCK_VAL == 789) |
| #define VCCK_VAL_REG 0x00190009 |
| #elif (VCCK_VAL == 779) |
| #define VCCK_VAL_REG 0x001a0008 |
| #elif (VCCK_VAL == 769) |
| #define VCCK_VAL_REG 0x001b0007 |
| #elif (VCCK_VAL == 759) |
| #define VCCK_VAL_REG 0x001c0006 |
| #elif (VCCK_VAL == 749) |
| #define VCCK_VAL_REG 0x001d0005 |
| #elif (VCCK_VAL == 739) |
| #define VCCK_VAL_REG 0x001e0004 |
| #elif (VCCK_VAL == 729) |
| #define VCCK_VAL_REG 0x001f0003 |
| #elif (VCCK_VAL == 719) |
| #define VCCK_VAL_REG 0x00200002 |
| #elif (VCCK_VAL == 709) |
| #define VCCK_VAL_REG 0x00210001 |
| #elif (VCCK_VAL == 699) |
| #define VCCK_VAL_REG 0x00220000 |
| #else |
| #error "VCCK val out of range\n" |
| #endif |
| |
| /* VDDEE_VAL_REG: VDDEE PWM table 0.69v-0.89v*/ |
| #if (VDDEE_VAL == 711) |
| #define VDDEE_VAL_REG 0x120000 |
| #elif (VDDEE_VAL == 721) |
| #define VDDEE_VAL_REG 0x110001 |
| #elif (VDDEE_VAL == 731) |
| #define VDDEE_VAL_REG 0x100002 |
| #elif (VDDEE_VAL == 741) |
| #define VDDEE_VAL_REG 0xf0003 |
| #elif (VDDEE_VAL == 751) |
| #define VDDEE_VAL_REG 0xe0004 |
| #elif (VDDEE_VAL == 761) |
| #define VDDEE_VAL_REG 0xd0005 |
| #elif (VDDEE_VAL == 771) |
| #define VDDEE_VAL_REG 0xc0006 |
| #elif (VDDEE_VAL == 781) |
| #define VDDEE_VAL_REG 0xb0007 |
| #elif (VDDEE_VAL == 791) |
| #define VDDEE_VAL_REG 0xa0008 |
| #elif (VDDEE_VAL == 801) |
| #define VDDEE_VAL_REG 0x90009 |
| #elif (VDDEE_VAL == 811) |
| #define VDDEE_VAL_REG 0x8000a |
| #elif (VDDEE_VAL == 821) |
| #define VDDEE_VAL_REG 0x7000b |
| #elif (VDDEE_VAL == 831) |
| #define VDDEE_VAL_REG 0x6000c |
| #elif (VDDEE_VAL == 841) |
| #define VDDEE_VAL_REG 0x5000d |
| #elif (VDDEE_VAL == 851) |
| #define VDDEE_VAL_REG 0x4000e |
| #elif (VDDEE_VAL == 861) |
| #define VDDEE_VAL_REG 0x3000f |
| #elif (VDDEE_VAL == 871) |
| #define VDDEE_VAL_REG 0x20010 |
| #elif (VDDEE_VAL == 881) |
| #define VDDEE_VAL_REG 0x10011 |
| #elif (VDDEE_VAL == 891) |
| #define VDDEE_VAL_REG 0x12 |
| #else |
| #error "VDDEE val out of range\n" |
| #endif |
| |
| /* for PWM use */ |
| /* |
| * GPIOE_0 PWM_A VDDEE_PWM |
| * |
| * GPIOE_1 PWM_B VCCK_PWM |
| */ |
| /* PWM driver check http://scgit.amlogic.com:8080/#/c/38093/ */ |
| #define PADCTRL_PIN_MUX_REG2 ((0x0002 << 2) + 0xfe000400) |
| #define PADCTRL_GPIOE_DS ((0x0035 << 2) + 0xfe000400) |
| |
| /* pwm clock and pwm controller */ |
| #define CLKTREE_PWM_CLK_AB_CTRL ((0x0031 << 2) + 0xfe000800) |
| #define PWMAB_PWM_A ((0x0000 << 2) + 0xfe002400) |
| #define PWMAB_PWM_B ((0x0001 << 2) + 0xfe002400) |
| #define PWMAB_MISC_REG_AB ((0x0002 << 2) + 0xfe002400) |
| |
| bl2_reg_t __bl2_reg[] = { |
| /* demo, user defined override register */ |
| {0, 0, 0xffffffff, 0, 0, 0}, |
| {PWMAB_PWM_A, VDDEE_VAL_REG, 0xffffffff, 0, BL2_INIT_STAGE_1, 0}, |
| {PWMAB_PWM_B, VCCK_VAL_REG, 0xffffffff, 0, BL2_INIT_STAGE_1, 0}, |
| {PWMAB_MISC_REG_AB, 0x3 << 0, 0x3, 0, BL2_INIT_STAGE_1, 0}, |
| /* enable vddcpu dc-dc, set GPIOD_10 high */ |
| {PADCTRL_GPIOD_OEN, 0x0 << 10, 0x1 << 10, 0, BL2_INIT_STAGE_1, 0}, |
| {PADCTRL_GPIOD_O, 0x1 << 10, 0x1 << 10, 0, BL2_INIT_STAGE_1, 0}, |
| /* set pwm A and pwm B clock rate to 24M, enable them */ |
| {CLKTREE_PWM_CLK_AB_CTRL,1 << 8 | 1 << 24 , 0xffffffff, 0, BL2_INIT_STAGE_1, 0}, |
| /* set GPIOE_0 GPIOE_1 drive strength to 3*/ |
| {PADCTRL_GPIOE_DS, 0xf, 0xf, 0, BL2_INIT_STAGE_1, 0}, |
| {PADCTRL_PIN_MUX_REG2, 0x3, 0xf, 0, BL2_INIT_STAGE_1, 0}, |
| {PADCTRL_PIN_MUX_REG2, 0x3 << 4, 0xf << 4, 0, BL2_INIT_STAGE_1, 0}, |
| }; |