summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile')
-rwxr-xr-xsrc/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile4603
1 files changed, 2891 insertions, 1712 deletions
diff --git a/src/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile b/src/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile
index bdc2e1e0c..5768a4397 100755
--- a/src/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile
+++ b/src/usr/hwpf/hwp/initfiles/cen_ddrphy.initfile
@@ -1,8 +1,27 @@
-#-- $Id: cen_ddrphy.initfile,v 1.9 2012/06/28 00:48:44 mwuu Exp $
+#-- $Id: cen_ddrphy.initfile,v 1.19 2012/12/12 20:46:54 mwuu Exp $
#-- CHANGE HISTORY:
#--------------------------------------------------------------------------------
#-- Version:|Author: | Date: | Comment:
#-- --------|--------|--------|--------------------------------------------------
+#-- 1.19|mwuu |12/12/12|Commented out settings for SIM, changed attribute
+# | | |to CEN.ATTR_CENTAUR_EC_WRITE_FIR_MASK_FEATURE
+#-- 1.18|mwuu |12/03/12|Changed DP18_PLL_CONFIG1 VCO setting
+#-- 1.17|mwuu |11/30/12|Changed DP18_PLL_CONFIG0/1 registers &
+# | | |DP18_IO_TX_CONFIG0 INTERP_SIG_SLEW field
+#-- 1.16|mwuu |11/28/12|Changed ADR TSYS to 0x70 and DP18 TSYS to 0x6B.
+# | | |Changed ADR_PLL_VREG_CONFIG0/1 registers.
+#-- 1.15|mwuu |11/19/12|Updated TSYS_WR ADR+DP18 with slow process numbers
+#-- 1.14|mwuu |11/13/12|Fixed define of Swizzle check, was wrong before.
+#-- 1.13|mwuu |11/09/12|Updated SI settings from Paul, new attributes.
+# Added dqs swizzle for Glacier0. Added TSYS settings based on freq.
+# Changed FW_WR_RD to match DD0 setting. Changed ABORT_ON_CAL_ERR to be
+# default. Divided up ADR blocks into ADDR, CNTL, CLK, SPCKE. Added FFE
+# settings for drv_imp_dq_dqs. Changed PLL_TUNEMDIV to be same as DD0.
+#-- 1.12|bwieman |10/08/12|attempt to restore
+#-- 1.11|bellows |10/08/12|moved inifiles to scom sub directory
+#-- 1.10|mwuu |08/15/12|Removed bit_disable settings, to be set in FN.
+# Cleaned up the settings for sim. Added DIMM functional attribute,
+# FIR unmask scom, PC_RESET register
#-- 1.9 |mwuu |06/27/12|Added SYS to IS_SIMULATION attribute
#-- 1.8 |mwuu |06/18/12|Changed to use spares based on DIMM_TYPE, also
# changed FW_RD_WR field to use AL, CL instead of hardcoded value
@@ -26,22 +45,17 @@
#--Master list of variables that can be used in this file is at:
#--<Attribute Definition Location>
-# 5/07/12 Switched to using ENUM values for many attributes
-# 5/04/12 Temp workaround for MSS_FREQ and MSS_VOLT
-# 4/11/12 Fixed address for DPHY01_DDRPHY_DP18_DATA_BIT_DISABLE0_RP0_P0_0
-# started adding expressions for this register, but need bad_bit_mask
-# changed
-# 4/6/12 Made initfile similar to dial settings for misc registers(PLL,etc.)
-# 3/29/12 Added DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0 and
-# DPHY01_DDRPHY_DP18_DQSCLK_OFFSET settings for SIM.
-
SyntaxVersion = 1
-# Jan 15th? SIM uses type 1C 4Rx8/port CDIMM first config
-# Jan 31st 1B ISDIMM DDR3 4 DIMMS (1 per port)
-# Feb 15 Initfile delivered to Firmware
-# interim date some other configs, maybe LR DIMM
-# May 15 final initfile complete all configs
+# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# !! data fields are right aligned !!
+# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+#
+# SIM uses type 1B CDIMM, 2Rx8/drop, dual drop, 1600
+#
+# 0 = false, anything else = true
+#
+# need to figure out GPO, WLO, RLO...
#-- -----------------------------------------------------------------------------
#-- -----------------------------------------------------------------------------
@@ -60,23 +74,20 @@ define CEN = TGT1; # parent Centaur
# short test for simulation
define def_is_sim = (SYS.ATTR_IS_SIMULATION == 1) ;
-# TSYS_WRCLK !!NOTE: different depending on EC level
-define def_ADR32_TSYS_WRCLK = 0x60 ;
-define def_DP18_TSYS_WRCLK = 0x60 ;
+# FAST_SIM_PER_CNTR for periodic calibrations
+define def_FAST_SIM_PC = 1 ;
-# for real HW uncomment, !!FIX once ATTR_EFF_DIMM_SPARE available
+# for real HW uncomment, !!FIX once ATTR_EFF_DIMM_SPARE available [2][4][4] port, dimm, rank
define def_has_spare = (ATTR_EFF_DIMM_TYPE == 0) ; # CDIMM
define def_no_spare = (ATTR_EFF_DIMM_TYPE != 0) ; # others, ISDIMMs, LRDIMM, etc.
-#define def_no_spare = (SYS.ATTR_IS_SIMULATION==1);
-#define def_has_spare = (SYS.ATTR_IS_SIMULATION==0);
-# ports 0,1 must have dimms with ranks to be valid
-define def_valid_p0 = ((ATTR_EFF_NUM_RANKS_PER_DIMM[0][0] > 0) || (ATTR_EFF_NUM_RANKS_PER_DIMM[0][1] > 0)) ;
-define def_valid_p1 = ((ATTR_EFF_NUM_RANKS_PER_DIMM[1][0] > 0) || (ATTR_EFF_NUM_RANKS_PER_DIMM[1][1] > 0)) ;
+# ports 0,1 must have functional dimms to be valid
+define def_valid_p0 = (ATTR_MSS_EFF_DIMM_FUNCTIONAL_VECTOR >> 4);
+define def_valid_p1 = (ATTR_MSS_EFF_DIMM_FUNCTIONAL_VECTOR & 0x0F);
# short test for MBA01 or MBA23
define def_is_mba01 = (ATTR_CHIP_UNIT_POS == 0) ; # MBA01
-define def_is_mba23 = (ATTR_CHIP_UNIT_POS == 1) ; # MBA01
+define def_is_mba23 = (ATTR_CHIP_UNIT_POS == 1) ; # MBA23
# Port 0 valid rank pair[0:3]_p0
# PRIMARY RANK GROUP
@@ -122,24 +133,6 @@ define def_val_qrg1_p1 = (ATTR_EFF_QUATERNARY_RANK_GROUP1[1] != ENUM_ATTR_EFF_QU
define def_val_qrg2_p1 = (ATTR_EFF_QUATERNARY_RANK_GROUP2[1] != ENUM_ATTR_EFF_QUATERNARY_RANK_GROUP2_INVALID) ; # valid rank group 2 port0
define def_val_qrg3_p1 = (ATTR_EFF_QUATERNARY_RANK_GROUP3[1] != ENUM_ATTR_EFF_QUATERNARY_RANK_GROUP3_INVALID) ; # valid rank group 3 port0
-# bitwise | is not working
-#
-# ena_rank_pair[0:3]_p0
-#define def_val_rp0_3_p0 = def_val_rp0_p0 << 3 | def_val_rp1_p0 << 2 | def_val_rp2_p0 << 1 | def_val_rp3_p0 ;
-# 60 , def_val_rp0_p0 , any ; # enable rank pair 0
-# 61 , def_val_rp1_p0 , any ; # enable rank pair 1
-# 62 , def_val_rp2_p0 , any ; # enable rank pair 2
-# 63 , def_val_rp3_p0 , any ; # enable rank pair 3
-# 60:63 , def_val_rp0_3_p0, any ; # enable rank pair0:3 on port 0
-#
-# ena_rank_pair[0:3]_p1
-#define def_ena_rp0_3_p1 = def_ena_rp0_p1 << 3 | def_ena_rp1_p1 << 2 | def_ena_rp2_p1 << 1 | def_ena_rp3_p1 ;
-# 60 , def_ena_rp0_p1 , any ; # enable rank pair 0
-# 61 , def_ena_rp1_p1 , any ; # enable rank pair 1
-# 62 , def_ena_rp2_p1 , any ; # enable rank pair 2
-# 63 , def_ena_rp3_p1 , any ; # enable rank pair 3
-# 60:63 , def_ena_rp0_3_p1, any ; # enable rank pair0:3 on port 1
-
# shorter test for DRAM gen
#define def_is_empty = (ATTR_EFF_DRAM_GEN == ENUM_ATTR_EFF_DRAM_GEN_EMPTY) ; # EMPTY, no dram?
define def_is_ddr3 = (ATTR_EFF_DRAM_GEN == ENUM_ATTR_EFF_DRAM_GEN_DDR3) ; # DDR3 = 1
@@ -163,36 +156,107 @@ define def_is_bl8 = (ATTR_EFF_DRAM_BL == ENUM_ATTR_EFF_DRAM_BL8) ; # burst leng
#define def_is_bl_otf = (ATTR_EFF_DRAM_BL == ENUM_ATTR_EFF_DRAM_OTF) ; # burst length on the fly = (1)
#define def_is_bl4 = (ATTR_EFF_DRAM_BL == ENUM_ATTR_EFF_DRAM_BL4) ; # burst length 4 = (2)
+# shorter test for Centaur receiver impedance DQ / DQS
+define def_cri_dqs_ohm15_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM15) ; # OHM15 = 0x0F (15)
+define def_cri_dqs_ohm20_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM20) ; # OHM20 = 0x14 (20)
+define def_cri_dqs_ohm30_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM30) ; # OHM30 = 0x1E (30)
+define def_cri_dqs_ohm40_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM40) ; # OHM40 = 0x28 (40)
+define def_cri_dqs_ohm48_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM48) ; # OHM48 = 0x30 (48)
+define def_cri_dqs_ohm60_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM60) ; # OHM60 = 0x3C (60)
+define def_cri_dqs_ohm80_p0 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM80) ; # OHM80 = 0x50 (80)
+define def_cri_dqs_ohm120_p0= (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM120) ; # OHM120 = 0x78 (120)
+define def_cri_dqs_ohm160_p0= (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM160) ; # OHM160 = 0xA0 (160)
+define def_cri_dqs_ohm240_p0= (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM240) ; # OHM240 = 0xF0 (240)
+
+define def_cri_dqs_ohm15_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM15) ; # OHM15 = 0x0F (15)
+define def_cri_dqs_ohm20_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM20) ; # OHM20 = 0x14 (20)
+define def_cri_dqs_ohm30_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM30) ; # OHM30 = 0x1E (30)
+define def_cri_dqs_ohm40_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM40) ; # OHM40 = 0x28 (40)
+define def_cri_dqs_ohm48_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM48) ; # OHM48 = 0x30 (48)
+define def_cri_dqs_ohm60_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM60) ; # OHM60 = 0x3C (60)
+define def_cri_dqs_ohm80_p1 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM80) ; # OHM80 = 0x50 (80)
+define def_cri_dqs_ohm120_p1= (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM120) ; # OHM120 = 0x78 (120)
+define def_cri_dqs_ohm160_p1= (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM160) ; # OHM160 = 0xA0 (160)
+define def_cri_dqs_ohm240_p1= (ATTR_EFF_CEN_RCV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM240) ; # OHM240 = 0xF0 (240)
+
# shorter test for Centaur driver impedance DQ / DQS
-define def_cdi_dqs_ohm24 = (ATTR_EFF_CEN_DRV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM24) ; # OHM24 = 0x18 (24)
-define def_cdi_dqs_ohm30 = (ATTR_EFF_CEN_DRV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30) ; # OHM30 = 0x1E (30)
-define def_cdi_dqs_ohm34 = (ATTR_EFF_CEN_DRV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34) ; # OHM34 = 0x22 (34)
-define def_cdi_dqs_ohm40 = (ATTR_EFF_CEN_DRV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40) ; # OHM40 = 0x28 (40)
-
-# shorter test for Centaur driver impedance command
-define def_cdi_cmd_ohm15 = (ATTR_EFF_CEN_DRV_IMP_CMD == ENUM_ATTR_EFF_CEN_DRV_IMP_CMD_OHM15) ; # OHM15 = 0x0F (15)
-define def_cdi_cmd_ohm20 = (ATTR_EFF_CEN_DRV_IMP_CMD == ENUM_ATTR_EFF_CEN_DRV_IMP_CMD_OHM20) ; # OHM20 = 0x14 (20)
-define def_cdi_cmd_ohm30 = (ATTR_EFF_CEN_DRV_IMP_CMD == ENUM_ATTR_EFF_CEN_DRV_IMP_CMD_OHM30) ; # OHM30 = 0x1E (30)
-define def_cdi_cmd_ohm40 = (ATTR_EFF_CEN_DRV_IMP_CMD == ENUM_ATTR_EFF_CEN_DRV_IMP_CMD_OHM40) ; # OHM40 = 0x28 (40)
-
-# shorter test for Centaur driver impedance control
-define def_cdi_ctl_ohm15 = (ATTR_EFF_CEN_DRV_IMP_CNTL == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM15) ; # OHM15 = 0x0F (15)
-define def_cdi_ctl_ohm20 = (ATTR_EFF_CEN_DRV_IMP_CNTL == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM20) ; # OHM20 = 0x14 (20)
-define def_cdi_ctl_ohm30 = (ATTR_EFF_CEN_DRV_IMP_CNTL == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM30) ; # OHM30 = 0x1E (30)
-define def_cdi_ctl_ohm40 = (ATTR_EFF_CEN_DRV_IMP_CNTL == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM40) ; # OHM40 = 0x28 (40)
+define def_cdi_dqs_ohm24_p0 = (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM24_FFE0) ; # OHM24 = 0x18 (24)
+
+define def_cdi_dqs_ohm30_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE0) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE120)) ; # OHM30 = 0x1E (30)
+
+define def_cdi_dqs_ohm34_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE0) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE120)) ; # OHM34 = 0x22 (34)
+
+define def_cdi_dqs_ohm40_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE0) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE120)) ; # OHM40 = 0x28 (40)
+
+define def_cdi_dqs_ohm24_p1 = (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM24_FFE0) ; # OHM24 = 0x18 (24)
+
+define def_cdi_dqs_ohm30_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE0) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE120)) ; # OHM30 = 0x1E (30)
+
+define def_cdi_dqs_ohm34_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE0) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE120)) ; # OHM34 = 0x22 (34)
+
+define def_cdi_dqs_ohm40_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE0) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE120)) ; # OHM40 = 0x28 (40)
+
+# shorter test for number of FFE slices to enable in TX_CONFIG register
+define def_ffe1_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE480)) ;
+
+define def_ffe2_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE240)) ;
+
+define def_ffe3_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE160)) ;
+
+define def_ffe4_p0 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE120) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE120) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE120)) ;
+
+define def_ffe1_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE480) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE480)) ;
+
+define def_ffe2_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE240) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE240)) ;
+
+define def_ffe3_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE160) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE160)) ;
+
+define def_ffe4_p1 = ((ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM30_FFE120) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM34_FFE120) || (ATTR_EFF_CEN_DRV_IMP_DQ_DQS[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_DQ_DQS_OHM40_FFE120)) ;
+
+# shorter test for Centaur driver impedance command/address (A0:15, BA0:3, ACT, PAR, CAS, RAS, WE)
+define def_cdi_addr_ohm15_p0= (ATTR_EFF_CEN_DRV_IMP_ADDR[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_addr_ohm20_p0= (ATTR_EFF_CEN_DRV_IMP_ADDR[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_addr_ohm30_p0= (ATTR_EFF_CEN_DRV_IMP_ADDR[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_addr_ohm40_p0= (ATTR_EFF_CEN_DRV_IMP_ADDR[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM40) ; # OHM40 = 0x28 (40)
+
+define def_cdi_addr_ohm15_p1= (ATTR_EFF_CEN_DRV_IMP_ADDR[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_addr_ohm20_p1= (ATTR_EFF_CEN_DRV_IMP_ADDR[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_addr_ohm30_p1= (ATTR_EFF_CEN_DRV_IMP_ADDR[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_addr_ohm40_p1= (ATTR_EFF_CEN_DRV_IMP_ADDR[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_ADDR_OHM40) ; # OHM40 = 0x28 (40)
+
+# shorter test for Centaur driver impedance control (CKE0:1, CKE4:5, ODT0:3, CSN0:7)
+define def_cdi_ctl_ohm15_p0 = (ATTR_EFF_CEN_DRV_IMP_CNTL[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_ctl_ohm20_p0 = (ATTR_EFF_CEN_DRV_IMP_CNTL[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_ctl_ohm30_p0 = (ATTR_EFF_CEN_DRV_IMP_CNTL[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_ctl_ohm40_p0 = (ATTR_EFF_CEN_DRV_IMP_CNTL[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM40) ; # OHM40 = 0x28 (40)
+
+define def_cdi_ctl_ohm15_p1 = (ATTR_EFF_CEN_DRV_IMP_CNTL[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_ctl_ohm20_p1 = (ATTR_EFF_CEN_DRV_IMP_CNTL[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_ctl_ohm30_p1 = (ATTR_EFF_CEN_DRV_IMP_CNTL[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_ctl_ohm40_p1 = (ATTR_EFF_CEN_DRV_IMP_CNTL[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CNTL_OHM40) ; # OHM40 = 0x28 (40)
+
+# shorter test for Centaur driver impedance clocks (CLK0:3)
+define def_cdi_clk_ohm15_p0 = (ATTR_EFF_CEN_DRV_IMP_CLK[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_clk_ohm20_p0 = (ATTR_EFF_CEN_DRV_IMP_CLK[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_clk_ohm30_p0 = (ATTR_EFF_CEN_DRV_IMP_CLK[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_clk_ohm40_p0 = (ATTR_EFF_CEN_DRV_IMP_CLK[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM40) ; # OHM40 = 0x28 (40)
+
+define def_cdi_clk_ohm15_p1 = (ATTR_EFF_CEN_DRV_IMP_CLK[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_clk_ohm20_p1 = (ATTR_EFF_CEN_DRV_IMP_CLK[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_clk_ohm30_p1 = (ATTR_EFF_CEN_DRV_IMP_CLK[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_clk_ohm40_p1 = (ATTR_EFF_CEN_DRV_IMP_CLK[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_CLK_OHM40) ; # OHM40 = 0x28 (40)
+
+# shorter test for Centaur driver impedance spare clocks (CKE2:3, CKE6:7)
+define def_cdi_spcke_ohm15_p0 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_spcke_ohm20_p0 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_spcke_ohm30_p0 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_spcke_ohm40_p0 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[0] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM40) ; # OHM40 = 0x28 (40)
+
+define def_cdi_spcke_ohm15_p1 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM15) ; # OHM15 = 0x0F (15)
+define def_cdi_spcke_ohm20_p1 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM20) ; # OHM20 = 0x14 (20)
+define def_cdi_spcke_ohm30_p1 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM30) ; # OHM30 = 0x1E (30)
+define def_cdi_spcke_ohm40_p1 = (ATTR_EFF_CEN_DRV_IMP_SPCKE[1] == ENUM_ATTR_EFF_CEN_DRV_IMP_SPCKE_OHM40) ; # OHM40 = 0x28 (40)
-# shorter test for Centaur receiver impedance DQ / DQS
-define def_cri_dqs_ohm15 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM15) ; # OHM15 = 0x0F (15)
-define def_cri_dqs_ohm20 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM20) ; # OHM20 = 0x14 (20)
-define def_cri_dqs_ohm30 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM30) ; # OHM30 = 0x1E (30)
-define def_cri_dqs_ohm40 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM40) ; # OHM40 = 0x28 (40)
-define def_cri_dqs_ohm48 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM48) ; # OHM48 = 0x30 (48)
-define def_cri_dqs_ohm60 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM60) ; # OHM60 = 0x3C (60)
-define def_cri_dqs_ohm120 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM120) ; # OHM120 = 0x78 (120)
-#ddr4? 80 160 240
-#define def_cri_dqs_ohm80 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM80) ; # OHM80 = 0x50 (80)
-#define def_cri_dqs_ohm160 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM160) ; # OHM160 = 0xA0 (160)
-#define def_cri_dqs_ohm240 = (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == ENUM_ATTR_EFF_CEN_RCV_IMP_DQ_DQS_OHM240) ; # OHM240 = 0xF0 (240)
# SIMPLIFY
# ================================================================================
@@ -218,6 +282,9 @@ define def_tODTL_DDR4 = (ATTR_EFF_DRAM_CWL + ATTR_EFF_DRAM_CL - ATTR_EFF_DRAM_A
define def_p2p_jitter = 2600 ; # DQS peak to peak jitter in ps
define def_dqs_offset = (11 + ((def_p2p_jitter * CEN.ATTR_MSS_FREQ) / 4000000)) ;
+# define for glacier1(1), glacier2=normal(0)
+define def_is_type1 = ((ATTR_MSS_DQS_SWIZZLE_TYPE == 1) && (ATTR_EFF_DIMM_TYPE != ENUM_ATTR_EFF_DIMM_TYPE_CDIMM)) ;
+
#---------------------------------------------------------------------------------
# =====================================================================================================
@@ -247,45 +314,47 @@ define def_dqs_offset = (11 + ((def_p2p_jitter * CEN.ATTR_MSS_FREQ) / 4000000))
# DPHY01.DDRPHY_ADR_SYSCLK_CNTL_PR_P0_ADR32S0 = 0x8020
# DPHY01.DDRPHY_DP18_SYSCLK_PR_P0_0 = 0x8020
# DPHY01_DDRPHY_PC_IO_PVT_FET_CONTROL_P0 = 0x0010
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# DPHY01 PC IO PVT N/P FET Driver Control !! need to set this?
-#
-# set to 0x0008, then 0x0000
-#
-# [01:23] [0:1]
-# DPHY01_DDRPHY_PC_IO_PVT_FET_CONTROL_P0 0x8000c0140301143f
-# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG20_L2(0:12)
-#
-# 48:52 0 PVTP RW PFET Driver PVTP value to send to all output drivers when PVT_OVERRIDE is set.
-# 53:57 0 PVTN RW NFET Driver PVTN value to send to all output drivers when PVT_OVERRIDE is set.
-# 58 0 PVT_OVERRIDE RW '1'b - All drivers are updated with the PVTP and PVTN values in this register imeadiately.
-# '0'b - All drivers are updated with the PVTP and PVTN values from the impedance calibration state machine.
-# 59 0 ENABLE_ZCAL RW '1'b - Enable Impedance Controller.
-# '0'b - Disable Impedance Controller.
-# 60 0 RESET_ZCAL RW Reset Impedance Controller. The value of this field is driven to the zcntl_reset_o
-# output for optional connection to the reset of an Impedance Controller.
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ---------------------------------------------------------------------------------------
# Pervasive FIR registers
#
+# Error mask register where (Action0, Action1, Mask) = Action Select;
+#
+# (0,0,x) = No Error reported
+# (0,1,0) = Recoverable Error
+# (1,0,0) = Checkstop Error
+# (1,1,0) = Local Core Checkstop
+# (x,x,1) = MASKED
+#
+# PHY01_DDRPHY_FIR_REG default=0 0x800200900301143f
+# PHY01_DDRPHY_FIR_MASK_REG default=0 0x800200930301143f
# PHY01_DDRPHY_FIR_ACTION0_REG default=0 0x800200960301143f
# PHY01_DDRPHY_FIR_ACTION1_REG default=0 0x800200970301143f
-# PHY01_DDRPHY_FIR_MASK_REG default=0 0x800200930301143f
-# PHY01_DDRPHY_FIR_REG default=0 0x800200900301143f
# PHY01_DDRPHY_FIR_WOF_REG default=0 0x800200980301143f
#
+# PHY01_DDRPHY_FIR_MASK_REG default=0 0x800200930301143f
+# scomx.fir0.fir_mask_lt
+scom 0x800200930301143f { # covers both ports
+ # 48:52 = port0 { FSM, parity, cal, FSM recover, parity recover }
+ # 53 = port 0/1 FIR parity recover error
+ # 56:60 = port1 { FSM, parity, cal, FSM recover, parity recover }
+ scom_data , expr ;
+ # fix for DD1 mask all PHY FIR bits.
+ 0x000000000000FFFF , (CEN.ATTR_CENTAUR_EC_WRITE_FIR_MASK_FEATURE) ;
+ 0x0000000000000000 , any ;
+}
# ---------------------------------------------------------------------------------------
# PC Config0
#
# ddr3=0x0000, ddr4=0x1202 # !! set in ddr_phy_reset
#
-# DPHY01.DDRPHY_PC_CONFIG0_P[0:1] from (alias spydef)
-# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG12_L2 0x00C 0x8000c00c0301143f
+# DPHY01.DDRPHY_PC_CONFIG0_P[0:1] 0x00C 0x8000c00c0301143f
+# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG12_L2
scom 0x800(0,1)C00C0301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# Protocol, 0=DDR3, 1=DDR4, 2=RLDRAM2 CIO, 4=RLDRAM3
48:51 , 0b0001 , (def_is_ddr4) ; # ATTR_EFF_DRAM_GEN=2=DDR4
48:51 , 0b0000 , (def_not_ddr4) ; # ATTR_EFF_DRAM_GEN=1=DDR3 or 0=empty
@@ -296,37 +365,58 @@ scom 0x800(0,1)C00C0301143F { # _P[0:1]
55 , 0b0 , any ; # SysClK 2x Mem Internal CLK
56 , 0b0 , any ; # Rank Override enable
57:59 , 0b000 , any ; # Rank Override value
+# DDR4_RD_PREAMBLE_TRAIN ?
60 , 0b0 , any ; # low latency (ERS Mode), 1=force off, 0=auto
+# DDR4_BANK_REFRESH ?
# 61 , 0b0 , any ; # reserved
62 , 0b1 , (def_is_ddr4) ; # enable DDR4_VLEVEL_BANK_GROUP
62 , 0b0 , (def_not_ddr4) ; # disable for DDR3
-# 63 , 0b0 , any ; # reserved
+# DDR4_DQ_LINK_TRAIN ?
+ 63 , 0b0 , any ; # ZCAL_NOT_CONT (set to continuously int zcal)
}
-#
+
# ---------------------------------------------------------------------------------------
# PC_CONFIG1
#
-# DPHY01.DDRPHY_PC_CONFIG1_P0 from (alias spydef)
+# DPHY01.DDRPHY_PC_CONFIG1_P0
scom 0x800(0,1)C00D0301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# # WLO is normally 0 except for RDIMM (RCD) configurations in which case it's set to 1
- 48:51 , 0b0001 , (def_is_rdimm) ; # RDIMM
- 48:51 , 0b0000 , any ; # WLO=WRITE_LATENCY_OFFSET (2's complement -8 to 7)
+# DD0 = PORT_BUFFER_LATENCY
+ 48:51 , 0x1 , (def_is_rdimm) ; # RDIMM
+ 48:51 , 0x0 , any ; # WLO=WRITE_LATENCY_OFFSET (2's complement -8 to 7)
# # 9.4.12.2 RLO = READ_LATENCY_OFFSET (2's complement -8 to 7) {0=CDIMM, 1=RDIMM, 2=LRDIMM}
- 52:55 , 0b0000 , (def_is_cdimm) ; # CDIMM
- 52:55 , 0b0001 , (def_is_rdimm) ; # RDIMM
- 52:55 , 0b0010 , (def_is_lrdimm) ; # LRDIMM
+ 52:55 , 0x0 , (def_is_cdimm) ; # CDIMM
+ 52:55 , 0x1 , (def_is_rdimm) ; # RDIMM
+ 52:55 , 0x2 , (def_is_lrdimm) ; # LRDIMM
56 , 0b0 , any ; # MEMCTL_CIC_FAST
57 , 0b0 , any ; # MEMCTL_CTRN_IGNORE
58 , 0b0 , any ; # DISABLE_MEMCTL_CAL
+# Memory Type
# # 59:61 , 000=DDR3/DDR4 CDIMM, DDR3 (001=RDIMM, 011=LRDIMM), DDR4 (101=RDIMM, 111=LRDIMM)
59:61 , 0b000 , (def_is_cdimm) ; # CDIMM
59:61 , 0b001 , ((def_is_rdimm) && (def_is_ddr3)) ; # DDR3 RDIMM
59:61 , 0b011 , ((def_is_lrdimm) && (def_is_ddr3)) ; # DDR3 LRDIMM
59:61 , 0b101 , ((def_is_rdimm) && (def_is_ddr4)) ; # DDR4 RDIMM
59:61 , 0b111 , ((def_is_lrdimm) && (def_is_ddr4)) ; # DDR4 LRDIMM
-# 62:63 , 0b00 , any ; # reserved
- }
+# 62 , 0b1 , any ; # DDR4 Latency Chicken SW
+# 63 , 0b0 , any ; # Retain_Percal_SW
+}
+
+# ---------------------------------------------------------------------------------------
+# PC Resets register default=0xC000
+#
+# This register provides the capability to initiate resets in the hard cores.
+#
+# DPHY01_DDRPHY_PC_RESETS_P0 0x8000c00e0301143f
+scom 0x800(0,1)C00E0301143F { # Port[0:1]
+ bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
+ 48 , 0b1 ; # PLL_RESET (all PLL's)
+ 49 , 0b1 ; # SYSCLK_RESET (all logic in sysclk domain)
+# 50:63 , 0x0000 ; # reserved
+}
# ---------------------------------------------------------------------------------------
# ADR PLL VREG Config0 default=0 !! register definition for TUNEF not correct for '111b'?
@@ -342,14 +432,32 @@ scom 0x800(0,1)C00D0301143F {
#scom 0x8000(80,84)300301143F { # PHY01 Port0 ADR32S[0:1]
scom 0x800(0,1)BC300301143F { # PHY01 Port[0:1] broadcast ADR32S[0:1]
bits , scom_data , expr ;
-# # 0b111 000 111011 00 00 20uA, gain 1, SE(200 ohms, 24pF, 3pF), VCO=low
- 48:63 , 0xE3B0 , ((CEN.ATTR_MSS_FREQ/2) < 600) ; # 300-599.9 MHz, < 1200 MT/s
+# 0:47 , 0x000000000000, any ; # reserved
+# # 0b110 100 101011 00 00 22.22uA, gain 5, SE(3pF, 24pF, 800 ohms), VCO=low, PLLXTR
+# 48:59 , 0xD2B , (def_is_sim) ; # same as DD0
-# # 0b010 000 111000 00 00 40uA, gain 1, SE(200 ohms, 16pF, 2pF), VCO=low
- 48:63 , 0x4380 , ((CEN.ATTR_MSS_FREQ/2) < 1000) ; # 600-999.9 MHz, 1200-2000 MT/s
+# # 0b111 000 111011 00 00 20uA, gain 1, SE(3pF, 24pF, 200 ohms), VCO=low
+# 48:63 , 0xE3B0 , ((CEN.ATTR_MSS_FREQ/2) < 600) ; # 300-599.9 MHz, < 1200 MT/s
+
+# # 0b010 000 111000 00 00 40uA, gain 1, SE(2pF, 16pF, 200 ohms), VCO=low
+# 48:63 , 0x4380 , ((CEN.ATTR_MSS_FREQ/2) < 1000) ; # 600-999.9 MHz, 1200-2000 MT/s
+
+# # 0b100 011 111011 01 00 28.57uA, gain 4, SE(3pF, 24pF, 200 ohms), VCO=high
+# 48:63 , 0x8FB4 , ((CEN.ATTR_MSS_FREQ/2) >= 1000) ; # 1000-1066 MHz, >=2000 MT/s
+
+# new setting from Joe Iadanza 11/30
+# # 0b011 010 101 00 1 33.33uA, gain 3, SE(400 ohms, 16pF, 3pF)
+ 48:59 , 0x6A9 , (CEN.ATTR_MSS_FREQ < 1200) ; # < 600 MHz, 1200 MT/s
+
+# # 0b011 010 101 00 1 33.33uA, gain 3, SE(400 ohms, 16pF, 3pF)
+ 48:59 , 0x6A9 , (CEN.ATTR_MSS_FREQ < 1460) ; # < 730 MHz, < 1460 MT/s
+
+# # 0b011 010 101 00 1 33.33uA, gain 3, SE(400 ohms, 16pF, 3pF)
+ 48:59 , 0x6A9 , (CEN.ATTR_MSS_FREQ > 1459) ; # >= 730 MHz, >=1460 MT/s
+
+ 60:63 , 0x4 , (def_is_ddr4) ; # VCO = high for DDR4
+ 60:63 , 0x0 , any ; # VCO = low for DDR3
-# # 0b100 011 111011 01 00 28.57uA, gain 4, SE(200 ohms, 24pF, 3pF), VCO=high
- 48:63 , 0x8FB4 , ((CEN.ATTR_MSS_FREQ/2) >= 1000) ; # 1000-1066 MHz, >=2000 MT/s
}
# ---------------------------------------------------------------------------------------
@@ -360,46 +468,50 @@ scom 0x800(0,1)BC300301143F { # PHY01 Port[0:1] broadcast ADR32S[0:1]
# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.CONTROL.TWRAP.P_REG_31_L2
#scom 0x8000(80,84)310301143f { # PHY01 Port0 ADR32S[0:1]
scom 0x800(0,1)BC310301143f { # PHY01 Port[0:1] broadcast ADR32S[0:1]
- bits , scom_data , expr ;
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# PLL_TUNETDIV(0:2) PLLTESTOUT (000=logic 1, 001=MDIVOUT div by 64, 01x=MDIVOUT div by 1, 1xx=dsabled, logic 0)
- 48:50 , 0b100 , any ; # disabled
+# 48:50 , 0b100 , (def_is_sim) ; # disabled, for SIM
+ 48:50 , 0b111 , any ; # disabled, was '100'
- # !! PLL_TUNEMDIV(0:1) Feedback divider (00=1, 01=2, 1x=reserved), "must be set to this value"
-# 51:52 , 0b00 , any ; # workaround?
- 51:52 , 0b00 , ((CEN.ATTR_MSS_FREQ/2) < 800) ; # < 1600 MT/s
- 51:52 , 0b01 , ((CEN.ATTR_MSS_FREQ/2) >= 800) ; # >=1600 MT/s
+ # PLL_TUNEMDIV(0:1) Feedback divider (00=1, 01=2, 1x=reserved), "must be set to this value(00)"
+ 51:52 , 0b00 , any ; # same as DD0
+# 51:52 , 0b00 , ((CEN.ATTR_MSS_FREQ/2) < 800) ; # < 1600 MT/s
+# 51:52 , 0b01 , ((CEN.ATTR_MSS_FREQ/2) >= 800) ; # >=1600 MT/s
# PLL_TUNEATST (0=HiZ, 1=CMFB internal) - HiZ, "for all frequencies 0 is required"
- 53 , 0b0 , any ; # HiZ
+ 53 , 0b0 , any ; # HiZ
# VREG_RANGE(0:1) (00=1.50V, 01=1.35V, 11=1.20V)
- # !! Need to change if using 1.25V since overlap occurs!
- 54:55 , 0b11 , CEN.ATTR_MSS_VOLT <= 1271 ; # set to 1.2V
- 54:55 , 0b01 , ((CEN.ATTR_MSS_VOLT > 1271) && (CEN.ATTR_MSS_VOLT <= 1421)) ; # set to 1.35V
- 54:55 , 0b00 , CEN.ATTR_MSS_VOLT > 1421 ; # set to 1.5V
+# 54:55 , 0b01 , (def_is_sim) ; # set to 1.35 for SIM
+ 54:55 , 0b11 , (CEN.ATTR_MSS_VOLT <= 1271) ; # set to 1.2V
+ 54:55 , 0b00 , any ; # set to 1.35V & 1.5V
# VREG_VREGSPARE, Extra pins for later expansion. should be put to 0
- 56 , 0b0 , any ;
+ 56 , 0b0 , any ;
# VREG_VCCTUNE(0:1) (00=850mV, 01=855mV, 10=860mV, 11=865mV)
-# !recent
- 57:58 , 0b00 , (def_is_sim) ; # match dials
-# 57:58 , 0b10 , any ; # standard operating point
+ 57:58 , 0b10 , any ; # standard operating point
# INTERP_SIG_SLEW(0:3), Interpolated Signal Slew (PRSTCH pins on ADR16) clk freq
-# !! Temp workaround for attribute
- 59:62 , 0b0000 , any ; # match dials
- 59:62 , 0b1001 , (CEN.ATTR_MSS_FREQ > 2260) ; # 2400
- 59:62 , 0b1001 , ((CEN.ATTR_MSS_FREQ > 1993) && (CEN.ATTR_MSS_FREQ <= 2260)) ; # 2133
- 59:62 , 0b0110 , ((CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
- 59:62 , 0b1010 , ((CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
- 59:62 , 0b0010 , ((CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
- 59:62 , 0b1100 , ((CEN.ATTR_MSS_FREQ > 1013) && (CEN.ATTR_MSS_FREQ <= 1200)) ; # 1066
- 59:62 , 0b0100 , ((CEN.ATTR_MSS_FREQ > 933) && (CEN.ATTR_MSS_FREQ <= 1113)) ; # 800
- 59:62 , 0b1000 , (CEN.ATTR_MSS_FREQ <= 933) ; # 666
+# 59:62 , 0b1010 , (def_is_sim) ; # for SIM
+# new setting from Joe Iadanza 11/30
+ 59:62 , 0b1000 , (CEN.ATTR_MSS_FREQ <= 1200) ; # -1066
+ 59:62 , 0b0100 , ((CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
+ 59:62 , 0b0010 , ((CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
+ 59:62 , 0b1100 , (CEN.ATTR_MSS_FREQ > 1732) ; # 1866+
+
+# 59:62 , 0b1001 , (CEN.ATTR_MSS_FREQ > 2260) ; # 2400
+# 59:62 , 0b1001 , ((CEN.ATTR_MSS_FREQ > 1993) && (CEN.ATTR_MSS_FREQ <= 2260)) ; # 2133
+# 59:62 , 0b0110 , ((CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
+# 59:62 , 0b1010 , ((CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
+# 59:62 , 0b0010 , ((CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
+# 59:62 , 0b1100 , ((CEN.ATTR_MSS_FREQ > 1013) && (CEN.ATTR_MSS_FREQ <= 1200)) ; # 1066
+# 59:62 , 0b0100 , ((CEN.ATTR_MSS_FREQ > 933) && (CEN.ATTR_MSS_FREQ <= 1113)) ; # 800
+# 59:62 , 0b1000 , (CEN.ATTR_MSS_FREQ <= 933) ; # 666
# ANALOG_WRAPON, Wrap Data control to attached ADR16(s)/ADR12(s)
- 63 , 0b0 , any ;
+ 63 , 0b0 , any ;
}
# ---------------------------------------------------------------------------------------
@@ -410,15 +522,33 @@ scom 0x800(0,1)BC310301143f { # PHY01 Port[0:1] broadcast ADR32S[0:1]
# PHYW.PHYX.GEN_DP#0.DPX.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_PLL_CONFIG0_L2
# scom 0x8000(00,04,08,0C,10)760301143f { # CONFIG0_P0_[0:4]
scom 0x800(0,1)3C760301143F { # CONFIG0_P[0:1] broadcast [0:4]
- bits , scom_data , expr ;
- # 0b111 000 111011 00 00 20uA, gain 1, SE(200 ohms, 24pF, 3pF), VCO=low
- 48:63 , 0xE3B0 , ((CEN.ATTR_MSS_FREQ/2) < 600) ; # 300-599.9 MHz, < 1200 MT/s
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# # 0b111 000 111011 00 00 20uA, gain 1, SE(200 ohms, 24pF, 3pF), VCO=low
+# # 300-599.9 MHz, < 1200 MT/s
+# 48:59 , 0xE3B , ((def_is_sim) && (CEN.ATTR_MSS_FREQ < 1200)) ;
+#
+# # 0b010 000 111000 00 00 40uA, gain 1, SE(200 ohms, 16pF, 2pF), VCO=low
+# # 600-999.9 MHz, 1200-2000 MT/s
+# 48:59 , 0x438 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ < 2000)) ;
+#
+# # 0b100 011 111011 01 00 28.57uA, gain 4, SE(200 ohms, 24pF, 3pF), VCO=high
+# # 1000-1066 MHz, >=2000 MT/s
+# 48:59 , 0x8FB , ((def_is_sim) && (CEN.ATTR_MSS_FREQ >= 2000)) ;
- # 0b010 000 111000 00 00 40uA, gain 1, SE(200 ohms, 16pF, 2pF), VCO=low
- 48:63 , 0x4380 , ((CEN.ATTR_MSS_FREQ/2) < 1000) ; # 600-999.9 MHz, 1200-2000 MT/s
+# new setting from Joe Iadanza 11/30
+# # 0b011 010 101 00 1 33.33uA, gain 3, SE(400 ohms, 16pF, 3pF)
+ 48:59 , 0x6A9 , (CEN.ATTR_MSS_FREQ < 1200) ; # < 600 MHz, 1200 MT/s
- # 0b100 011 111011 01 00 28.57uA, gain 4, SE(200 ohms, 24pF, 3pF), VCO=high
- 48:63 , 0x8FB4 , ((CEN.ATTR_MSS_FREQ/2) >= 1000) ; # 1000-1066 MHz, >=2000 MT/s
+# # 0b011 010 101 00 1 33.33uA, gain 3, SE(400 ohms, 16pF, 3pF)
+ 48:59 , 0x6A9 , (CEN.ATTR_MSS_FREQ < 1460) ; # < 730 MHz, < 1460 MT/s
+
+# # 0b011 010 101 00 1 33.33uA, gain 3, SE(400 ohms, 16pF, 3pF)
+ 48:59 , 0x6A9 , (CEN.ATTR_MSS_FREQ > 1459) ; # >= 730 MHz, >=1460 MT/s
+
+# 60:63 , 0x0 , (def_is_sim) ; # for SIM
+ 60:63 , 0x4 , (CEN.ATTR_MSS_FREQ > 1459) ; # VCO = high for >= 730MHz or 1460 MT/s
+ 60:63 , 0x0 , any ; # VCO = low for < 730MHz
}
# ---------------------------------------------------------------------------------------
@@ -428,37 +558,36 @@ scom 0x800(0,1)3C760301143F { # CONFIG0_P[0:1] broadcast [0:4]
# PHYW.PHYX.GEN_DP#0.DPX.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_PLL_CONFIG1_L2
# scom 0x8000(00,04,08,0C,10)770301143f { # CONFIG1_P0_[0:4]
scom 0x800(0,1)3C770301143F { # CONFIG1_P[0:1] broadcast [0:4]
- bits , scom_data , expr ;
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# PLL_TUNETDIV(0:2) PLLTESTOUT (all freq 1xx required)
- 48:50 , 0b100 , any ; # disabled
+# 48:50 , 0b100 , (def_is_sim) ; # disabled
+ 48:50 , 0b111 , any ; # disabled
- # !! PLL_TUNEMDIV(0:1) Feedback divider (00=1, 01=2, 1x=reserved), "must be set to this value"
-# 51:52 , 0b00 , any ; # workaround?
- 51:52 , 0b00 , ((CEN.ATTR_MSS_FREQ/2) < 800) ; # < 1600 MT/s
- 51:52 , 0b01 , ((CEN.ATTR_MSS_FREQ/2) >= 800) ; # >=1600 MT/s
+ # PLL_TUNEMDIV(0:1) Feedback divider (00=1, 01=2, 1x=reserved), "must be set to this value"
+# 51:52 , 0b01 , (def_is_sim) ; # 2
+ 51:52 , 0b00 , any ; # 1
# PLL_TUNEATST (0=HiZ, 1=CMFB internal) - HiZ, "for all frequencies 0 is required"
- 53 , 0b0 , any ; # HiZ
+ 53 , 0b0 , any ; # HiZ
# VREG_RANGE(0:1) (00=1.50V, 01=1.35V, 11=1.20V)
# !! Need to change if using 1.25V since overlap occurs!
- 54:55 , 0b11 , CEN.ATTR_MSS_VOLT <= 1271 ; # set to 1.2V
- 54:55 , 0b01 , ((CEN.ATTR_MSS_VOLT > 1271) && (CEN.ATTR_MSS_VOLT <= 1421)) ; # set to 1.35V
- 54:55 , 0b00 , CEN.ATTR_MSS_VOLT > 1421 ; # set to 1.5V
+# 54:55 , 0b01 , (def_is_sim) ; # set to 1.35V for sim
+ 54:55 , 0b11 , (CEN.ATTR_MSS_VOLT <= 1271) ; # set to 1.2V
+ 54:55 , 0b00 , any ; # set to 1.35V, & 1.5V
# CE0DLTVCCA
- 56 , 0b0 , any ; # must be 0
+ 56 , 0b0 , any ; # must be 0
# VREG_VCCTUNE(0:1) (00=850mV, 01=855mV, 10=860mV, 11=865mV)
-# !recent
- 57:58 , 0b00 , (def_is_sim) ; # match dials
-# 57:58 , 0b10 , any ; # standard = 860
+ 57:58 , 0b10 , any ; # standard = 860
- 59 , 0b0 , any ; # CE0DLTVCCD1, must be 0
- 60 , 0b0 , any ; # CE0DLTVCCD2, must be 0
- 61 , 0b0 , any ; # S0INSDLYTAP, must be 0
- 62 , 0b0 , any ; # S1INSDLYTAP, must be 0
-# 63 , 0b0 , any ; # Reserved
+ 59 , 0b0 , any ; # CE0DLTVCCD1, must be 0
+ 60 , 0b0 , any ; # CE0DLTVCCD2, must be 0
+ 61 , 0b0 , any ; # S0INSDLYTAP, must be 0
+ 62 , 0b0 , any ; # S1INSDLYTAP, must be 0
+# 63 , 0b0 , any ; # reserved
}
# freq ranges
@@ -487,41 +616,68 @@ scom 0x800(0,1)3C770301143F { # CONFIG1_P[0:1] broadcast [0:4]
# CEN.ATTR_MSS_FREQ
# ATTR_EFF_CEN_SLEW_RATE_DQ_DQS [0:15] 0=slow, 15=fast
#
+# FFE=feed forward equalization, DFE=decision feedback equalization
+#
# [01:23] [0:1][0:4]
# DPHY01_DDRPHY_DP18_IO_TX_CONFIG0_P0_0 0x075 0x800000750301143f
# PHYW.PHYX.GEN_DP#1.DPX.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_IO_TX_CONFIG0_L2
#scom 0x8000(00,04,08,0C,10)750301143F { # CONFIG0_P0_[0:4]
-scom 0x800(0,1)3C750301143F { # CONFIG0_P[0:1] broadcast [0:4]
- bits , scom_data , expr ;
+scom 0x80003C750301143F { # CONFIG0_P0 broadcast [0:4]
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ # INTERP_SIG_SLEW for phase rotator
+# 48:51 , 0b1100 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ <= 1200)) ; # 1066
+# 48:51 , 0b0010 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
+# 48:51 , 0b1010 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
+# 48:51 , 0b0110 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
+# 48:51 , 0b1001 , ((CEN.ATTR_MSS_FREQ > 1993) && (CEN.ATTR_MSS_FREQ <= 2260)) ; # 2133
+# 48:51 , 0b1001 , (CEN.ATTR_MSS_FREQ > 2260) ; # 2400
+
+# new setting from Joe Iadanza 11/30
+ 48:51 , 0b1000 , (CEN.ATTR_MSS_FREQ <= 1200) ; # 1066
+ 48:51 , 0b0100 , ((CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
+ 48:51 , 0b0010 , ((CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
+ 48:51 , 0b1100 , ((CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
+
+ # Post Cursor, tap coefficient for FFE, 0=no equalization
+ 52:55 , 0b0001 , (def_ffe1_p0) ;
+ 52:55 , 0b0011 , (def_ffe2_p0) ;
+ 52:55 , 0b0111 , (def_ffe3_p0) ;
+ 52:55 , 0b1111 , (def_ffe4_p0) ;
+ 52:55 , 0b0000 , any ;
+
+ # Slew rate set in ddrphy_reset procedure via slew FN call
+# 56:59 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 0) ; # SLEW_CTL, slowest
+# 60:63 , 0b0000 , any ; # reserved
+}
+
+# DPHY01_DDRPHY_DP18_IO_TX_CONFIG0_P1_0 0x075 0x800100750301143f
+scom 0x80013C750301143F { # CONFIG0_P1 broadcast [0:4]
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# INTERP_SIG_SLEW for phase rotator
- 48:51 , 0b1001 , (CEN.ATTR_MSS_FREQ > 2260) ; # 2400
- 48:51 , 0b1001 , ((CEN.ATTR_MSS_FREQ > 1993) && (CEN.ATTR_MSS_FREQ <= 2260)) ; # 2133
- 48:51 , 0b0110 , ((CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
- 48:51 , 0b1010 , ((CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
- 48:51 , 0b0010 , ((CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
- 48:51 , 0b1100 , (CEN.ATTR_MSS_FREQ <= 1200) ; # 1066
-
- # Post Cursor, tap coefficient for FFE, 0=no equalization, will be taken out for DD1?
- 52:55 , 0b0000 , any ;
-
- # choices... 0=2.83, 1=3.35, 2=4.35, 3=5.16, 4=6.16, 5=6.50 V/ns, 6..F ~180mV/step
- 56:59 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 0) ; # SLEW_CTL, slowest
- 56:59 , 0b0001 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 1) ; # faster .
- 56:59 , 0b0010 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 2) ; # faster ..
- 56:59 , 0b0011 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 3) ; # faster ...
- 56:59 , 0b0100 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 4) ; # faster ....
- 56:59 , 0b0101 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 5) ; # faster .....
- 56:59 , 0b0110 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 6) ; # faster ......
- 56:59 , 0b0111 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 7) ; # faster .......
- 56:59 , 0b1000 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 8) ; # faster ........
- 56:59 , 0b1001 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 9) ; # faster .........
- 56:59 , 0b1010 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 10) ; # faster ..........
- 56:59 , 0b1011 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 11) ; # faster ...........
- 56:59 , 0b1100 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 12) ; # faster ............
- 56:59 , 0b1101 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 13) ; # faster .............
- 56:59 , 0b1110 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 14) ; # faster ..............
- 56:59 , 0b1111 , (ATTR_EFF_CEN_SLEW_RATE_DQ_DQS == 15) ; # fastest...............
-# 60:63 , 0b0000 , any ; # reserved
+# 48:51 , 0b1100 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ <= 1200)) ; # 1066
+# 48:51 , 0b0010 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
+# 48:51 , 0b1010 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
+# 48:51 , 0b0110 , ((def_is_sim) && (CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
+# 48:51 , 0b1001 , ((CEN.ATTR_MSS_FREQ > 1993) && (CEN.ATTR_MSS_FREQ <= 2260)) ; # 2133
+# 48:51 , 0b1001 , (CEN.ATTR_MSS_FREQ > 2260) ; # 2400
+
+# new setting from Joe Iadanza 11/30
+ 48:51 , 0b1000 , (CEN.ATTR_MSS_FREQ <= 1200) ; # 1066
+ 48:51 , 0b0100 , ((CEN.ATTR_MSS_FREQ > 1200) && (CEN.ATTR_MSS_FREQ <= 1460)) ; # 1333
+ 48:51 , 0b0010 , ((CEN.ATTR_MSS_FREQ > 1460) && (CEN.ATTR_MSS_FREQ <= 1732)) ; # 1600
+ 48:51 , 0b1100 , ((CEN.ATTR_MSS_FREQ > 1732) && (CEN.ATTR_MSS_FREQ <= 1993)) ; # 1866
+
+ # Post Cursor, tap coefficient for FFE, 0=no equalization
+ 52:55 , 0b0001 , (def_ffe1_p1) ;
+ 52:55 , 0b0011 , (def_ffe2_p1) ;
+ 52:55 , 0b0111 , (def_ffe3_p1) ;
+ 52:55 , 0b1111 , (def_ffe4_p1) ;
+ 52:55 , 0b0000 , any ;
+ # Slew rate set in ddrphy_reset procedure via slew FN call
+# 56:59 , 0b0000 , any ;
+# 60:63 , 0b0000 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
@@ -535,7 +691,7 @@ scom 0x800(0,1)3C750301143F { # CONFIG0_P[0:1] broadcast [0:4]
# 48:55 = N/P FET slices (0-7), 56:59 = N/P FET FFE slices (0-4)
# 2 slices of 480 (FFE) = 1 slice of 240 (non-FFE)
#
-# for DDR4 where VDDR (POD)
+# for DDR4 where VDDR (POD=Pseudo Open Drain)
# DDR4 ohms = 1 / ((1 / (total 240 slices / 240)) + (1 / (total 480 slices / 480)))
#
# for DDR3 VDDR/2
@@ -545,67 +701,106 @@ scom 0x800(0,1)3C750301143F { # CONFIG0_P[0:1] broadcast [0:4]
# DPHY01_DDRPHY_DP18_IO_TX_NFET_TERM_P0_0 0x07A 0x8000007a0301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_IO_TX_NFET_TERM_L2(0:11)
#scom 0x8000(00,04,08,0C,10)7A0301143f { # NFET_TERM_P0_[0:4] broadcast
-scom 0x800(0,1)3C7A0301143f { # NFET_TERM_P[0:1]_[0:4] broadcast
+scom 0x80003C7A0301143f { # NFET_TERM_P0_[0:4] broadcast
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# for DDR3 = 1 ohms # ohm/slices
- 48:59 , 0xFF0 , ((def_is_ddr3) && (def_cri_dqs_ohm15)) ; # 240/8, 480/0
- 48:59 , 0x7E0 , ((def_is_ddr3) && (def_cri_dqs_ohm20)) ; # 240/6, 480/0
- 48:59 , 0x182 , ((def_is_ddr3) && (def_cri_dqs_ohm48)) ; # 240/2, 480/1
-
- 48:59 , 0x03F , ((def_is_ddr3) && (def_cri_dqs_ohm30)) ; # 240/2, 480/4
- 48:59 , 0x01F , ((def_is_ddr3) && (def_cri_dqs_ohm40)) ; # 240/1, 480/4
- 48:59 , 0x00F , ((def_is_ddr3) && (def_cri_dqs_ohm60)) ; # 240/0, 480/4
- 48:59 , 0x007 , ((def_is_ddr3) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 80)) ; # 240/0, 480/3
- 48:59 , 0x003 , ((def_is_ddr3) && (def_cri_dqs_ohm120)) ; # 240/0, 480/2
-# Joe Iadanza's spreadsheet (from Saravana note 3/28/12 11:20A) has this...
-# 48:59 , 0x3C0 , ((def_is_ddr3) && (def_cri_dqs_ohm30)) ; # 240/4, 480/0
-# 48:59 , 0x186 , ((def_is_ddr3) && (def_cri_dqs_ohm40)) ; # 240/2, 480/2
-# 48:59 , 0x180 , ((def_is_ddr3) && (def_cri_dqs_ohm60)) ; # 240/2, 480/0
-# 48:59 , 0x102 , ((def_is_ddr3) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 80)) ; # 240/1, 480/1
-# 48:59 , 0x100 , ((def_is_ddr3) && (def_cri_dqs_ohm120)) ; # 240/1, 480/0
-#
-# !! need to find out if supporting POD Mode Termination (DDR4 only?)
-# if no, then remove def_is_ddr3 from statements above
-# if yes, then leave above statements and remove commented section below.
-#
-# Note 6) For POD Mode Termination, the slice vector is only applied to the PFET portion of the Driver (High).
-# The NFET portion of the Driver uses vector 0,0 for high impedance
-#
-# 48:59 , 0x03F , ((def_is_ddr4) && (def_cri_dqs_ohm60)) ; # 240/2, 480/4
-# 48:59 , 0x01F , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 80)) ; # 240/1, 480/4
-# 48:59 , 0x00F , ((def_is_ddr4) && (def_cri_dqs_ohm120)) ; # 240/0, 480/4
-# 48:59 , 0x007 , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 160)) ; # 240/0, 480/3
-# 48:59 , 0x003 , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 240)) ; # 240/0, 480/2
-# for DDR4 will catch DDR3 & not valid imp
- 48:59 , 0x000 , any ; # 240/0, 480/0
+# Joe Iadanza's spreadsheet (from Saravanan note 3/28/12 11:20A) has this...
+ 48:59 , 0xFF0 , ((def_is_ddr3) && (def_cri_dqs_ohm15_p0)) ; # 240/8, 480/0
+ 48:59 , 0x7E0 , ((def_is_ddr3) && (def_cri_dqs_ohm20_p0)) ; # 240/6, 480/0
+ 48:59 , 0x3C0 , ((def_is_ddr3) && (def_cri_dqs_ohm30_p0)) ; # 240/4, 480/0
+# 48:59 , 0x382 , ((def_is_ddr3) && (def_cri_dqs_ohm34_p0)) ; # 240/3, 480/1
+ 48:59 , 0x186 , ((def_is_ddr3) && (def_cri_dqs_ohm40_p0)) ; # 240/2, 480/2
+ 48:59 , 0x182 , ((def_is_ddr3) && (def_cri_dqs_ohm48_p0)) ; # 240/2, 480/1
+ 48:59 , 0x180 , ((def_is_ddr3) && (def_cri_dqs_ohm60_p0)) ; # 240/2, 480/0
+ 48:59 , 0x102 , ((def_is_ddr3) && (def_cri_dqs_ohm80_p0)) ; # 240/1, 480/1
+ 48:59 , 0x100 , ((def_is_ddr3) && (def_cri_dqs_ohm120_p0)) ; # 240/1, 480/0
+ 48:59 , 0x007 , ((def_is_ddr3) && (def_cri_dqs_ohm160_p0)) ; # 240/0, 480/3
+ 48:59 , 0x003 , ((def_is_ddr3) && (def_cri_dqs_ohm240_p0)) ; # 240/0, 480/2
+ 48:59 , 0x000 , any ; # 240/0, 480/0
+# 60:63 , 0b0000 , any ; # reserved
}
# DPHY01_DDRPHY_DP18_IO_TX_PFET_TERM_P0_0 0x07B 0x8000007B0301143f
#scom 0x8000(00,04,08,0C,10)7B0301143f { # PFET_TERM_P0_[0:4]
-scom 0x800(0,1)3C7B0301143f { # PFET_TERM_P[0:1]_[0:4] broadcast
+scom 0x80003C7B0301143f { # PFET_TERM_P0_[0:4] broadcast
+ bits , scom_data, expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ # for DDR3 = 1 ohms # ohm/slices
+ 48:59 , 0xFF0 , ((def_is_ddr3) && (def_cri_dqs_ohm15_p0)) ; # 240/8, 480/0
+ 48:59 , 0x7E0 , ((def_is_ddr3) && (def_cri_dqs_ohm20_p0)) ; # 240/6, 480/0
+ 48:59 , 0x3C0 , ((def_is_ddr3) && (def_cri_dqs_ohm30_p0)) ; # 240/4, 480/0
+ # 48:59 , 0x382 , ((def_is_ddr3) && (def_cri_dqs_ohm34_p0)) ; # 240/3, 480/1
+ 48:59 , 0x186 , ((def_is_ddr3) && (def_cri_dqs_ohm40_p0)) ; # 240/2, 480/2
+ 48:59 , 0x182 , ((def_is_ddr3) && (def_cri_dqs_ohm48_p0)) ; # 240/2, 480/1
+ 48:59 , 0x180 , ((def_is_ddr3) && (def_cri_dqs_ohm60_p0)) ; # 240/2, 480/0
+ 48:59 , 0x102 , ((def_is_ddr3) && (def_cri_dqs_ohm80_p0)) ; # 240/1, 480/1
+ 48:59 , 0x100 , ((def_is_ddr3) && (def_cri_dqs_ohm120_p0)) ; # 240/1, 480/0
+ 48:59 , 0x007 , ((def_is_ddr3) && (def_cri_dqs_ohm160_p0)) ; # 240/0, 480/3
+ 48:59 , 0x003 , ((def_is_ddr3) && (def_cri_dqs_ohm240_p0)) ; # 240/0, 480/2
+ # for DDR4 = 2
+ # 48:59 , 0x7E6 , ((def_is_ddr4) && (def_cri_dqs_ohm34_p0)) ; # 240/8, 480/2
+ 48:59 , 0x7E0 , ((def_is_ddr4) && (def_cri_dqs_ohm40_p0)) ; # 240/8, 480/0
+ 48:59 , 0x3C6 , ((def_is_ddr4) && (def_cri_dqs_ohm48_p0)) ; # 240/4, 480/2
+ 48:59 , 0x3C0 , ((def_is_ddr4) && (def_cri_dqs_ohm60_p0)) ; # 240/4, 480/0
+ 48:59 , 0x186 , ((def_is_ddr4) && (def_cri_dqs_ohm80_p0)) ; # 240/2, 480/2
+ 48:59 , 0x180 , ((def_is_ddr4) && (def_cri_dqs_ohm120_p0)) ; # 240/2, 480/0
+# 48:59 , 0x--- , ((def_is_ddr4) && (def_cri_dqs_ohm160_p0)) ; # 240/?, 480/?
+ 48:59 , 0x100 , ((def_is_ddr4) && (def_cri_dqs_ohm240_p0)) ; # 240/1, 480/0
+# 48:59 , 0x002 , ((def_is_ddr4) && (def_cri_dqs_ohm480_p0)) ; # 240/0, 480/1
+ 48:59 , 0x000 , any ; # 240/0, 480/0
+# 60:63 , 0b0000 , any ; # reserved
+}
+
+# DPHY01_DDRPHY_DP18_IO_TX_NFET_TERM_P1_0 0x07A 0x8001007a0301143f
+#scom 0x8001(00,04,08,0C,10)7A0301143f { # NFET_TERM_P1_[0:4] broadcast
+scom 0x80013C7A0301143f { # NFET_TERM_P1_[0:4] broadcast
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ # for DDR3 = 1 ohms # ohm/slices
+ 48:59 , 0xFF0 , ((def_is_ddr3) && (def_cri_dqs_ohm15_p1)) ; # 240/8, 480/0
+ 48:59 , 0x7E0 , ((def_is_ddr3) && (def_cri_dqs_ohm20_p1)) ; # 240/6, 480/0
+ 48:59 , 0x3C0 , ((def_is_ddr3) && (def_cri_dqs_ohm30_p1)) ; # 240/4, 480/0
+# 48:59 , 0x382 , ((def_is_ddr3) && (def_cri_dqs_ohm34_p1)) ; # 240/3, 480/1
+ 48:59 , 0x186 , ((def_is_ddr3) && (def_cri_dqs_ohm40_p1)) ; # 240/2, 480/2
+ 48:59 , 0x182 , ((def_is_ddr3) && (def_cri_dqs_ohm48_p1)) ; # 240/2, 480/1
+ 48:59 , 0x180 , ((def_is_ddr3) && (def_cri_dqs_ohm60_p1)) ; # 240/2, 480/0
+ 48:59 , 0x102 , ((def_is_ddr3) && (def_cri_dqs_ohm80_p1)) ; # 240/1, 480/1
+ 48:59 , 0x100 , ((def_is_ddr3) && (def_cri_dqs_ohm120_p1)) ; # 240/1, 480/0
+ 48:59 , 0x007 , ((def_is_ddr3) && (def_cri_dqs_ohm160_p1)) ; # 240/0, 480/3
+ 48:59 , 0x003 , ((def_is_ddr3) && (def_cri_dqs_ohm240_p1)) ; # 240/0, 480/2
+ 48:59 , 0x000 , any ; # 240/0, 480/0
+# 60:63 , 0b0000 , any ; # reserved
+}
+# DPHY01_DDRPHY_DP18_IO_TX_PFET_TERM_P1_0 0x07B 0x8000007B0301143f
+#scom 0x8000(00,04,08,0C,10)7B0301143f { # PFET_TERM_P1_[0:4]
+scom 0x80013C7B0301143f { # PFET_TERM_P1_[0:4] broadcast
bits , scom_data, expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# for DDR3 = 1 ohms # ohm/slices
- 48:59 , 0x03F , ((def_is_ddr3) && (def_cri_dqs_ohm30)) ; # 240/2, 480/4
- 48:59 , 0x01F , ((def_is_ddr3) && (def_cri_dqs_ohm40)) ; # 240/1, 480/4
- 48:59 , 0x00F , ((def_is_ddr3) && (def_cri_dqs_ohm60)) ; # 240/0, 480/4
- 48:59 , 0x007 , ((def_is_ddr3) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 80)) ; # 240/0, 480/3
- 48:59 , 0x003 , ((def_is_ddr3) && (def_cri_dqs_ohm120)) ; # 240/0, 480/2
+ 48:59 , 0xFF0 , ((def_is_ddr3) && (def_cri_dqs_ohm15_p1)) ; # 240/8, 480/0
+ 48:59 , 0x7E0 , ((def_is_ddr3) && (def_cri_dqs_ohm20_p1)) ; # 240/6, 480/0
+ 48:59 , 0x3C0 , ((def_is_ddr3) && (def_cri_dqs_ohm30_p1)) ; # 240/4, 480/0
+# 48:59 , 0x382 , ((def_is_ddr3) && (def_cri_dqs_ohm34_p1)) ; # 240/3, 480/1
+ 48:59 , 0x186 , ((def_is_ddr3) && (def_cri_dqs_ohm40_p1)) ; # 240/2, 480/2
+ 48:59 , 0x182 , ((def_is_ddr3) && (def_cri_dqs_ohm48_p1)) ; # 240/2, 480/1
+ 48:59 , 0x180 , ((def_is_ddr3) && (def_cri_dqs_ohm60_p1)) ; # 240/2, 480/0
+ 48:59 , 0x102 , ((def_is_ddr3) && (def_cri_dqs_ohm80_p1)) ; # 240/1, 480/1
+ 48:59 , 0x100 , ((def_is_ddr3) && (def_cri_dqs_ohm120_p1)) ; # 240/1, 480/0
+ 48:59 , 0x007 , ((def_is_ddr3) && (def_cri_dqs_ohm160_p1)) ; # 240/0, 480/3
+ 48:59 , 0x003 , ((def_is_ddr3) && (def_cri_dqs_ohm240_p1)) ; # 240/0, 480/2
# for DDR4 = 2
- 48:59 , 0x03F , ((def_is_ddr4) && (def_cri_dqs_ohm60)) ; # 240/2, 480/4
- 48:59 , 0x01F , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 80)) ; # 240/1, 480/4
-# 48:59 , 0x01F , ((def_is_ddr4) && (def_cri_dqs_ohm80)) ; # 240/1, 480/4
- 48:59 , 0x00F , ((def_is_ddr4) && (def_cri_dqs_ohm120)) ; # 240/0, 480/4
- 48:59 , 0x007 , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 160)) ; # 240/0, 480/3
- 48:59 , 0x003 , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 240)) ; # 240/0, 480/2
- 48:59 , 0x000 , any ; # 240/0, 480/0
-# Joe Iadanza's spreadsheet (from Saravana note 3/28/12 11:20A) has this...
-# 48:59 , 0x3C0 , ((def_is_ddr4) && (def_cri_dqs_ohm60)) ; # 240/4, 480/0
-# 48:59 , 0x186 , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 80)) ; # 240/2, 480/2
-# 48:59 , 0x180 , ((def_is_ddr4) && (def_cri_dqs_ohm120)) ; # 240/2, 480/0
-# 48:59 , 0x--- , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 160)) ; # 240/?, 480/?
-# 48:59 , 0x100 , ((def_is_ddr4) && (ATTR_EFF_CEN_RCV_IMP_DQ_DQS == 240)) ; # 240/1, 480/0
-# 48:59 , 0x000 , any ; # 240/0, 480/0
+# 48:59 , 0x7E6 , ((def_is_ddr4) && (def_cri_dqs_ohm34_p1)) ; # 240/8, 480/2
+ 48:59 , 0x7E0 , ((def_is_ddr4) && (def_cri_dqs_ohm40_p1)) ; # 240/8, 480/0
+ 48:59 , 0x3C6 , ((def_is_ddr4) && (def_cri_dqs_ohm48_p1)) ; # 240/4, 480/2
+ 48:59 , 0x3C0 , ((def_is_ddr4) && (def_cri_dqs_ohm60_p1)) ; # 240/4, 480/0
+ 48:59 , 0x186 , ((def_is_ddr4) && (def_cri_dqs_ohm80_p1)) ; # 240/2, 480/2
+ 48:59 , 0x180 , ((def_is_ddr4) && (def_cri_dqs_ohm120_p1)) ; # 240/2, 480/0
+# 48:59 , 0x--- , ((def_is_ddr4) && (def_cri_dqs_ohm160_p1)) ; # 240/?, 480/?
+ 48:59 , 0x100 , ((def_is_ddr4) && (def_cri_dqs_ohm240_p1)) ; # 240/1, 480/0
+# 48:59 , 0x002 , ((def_is_ddr4) && (def_cri_dqs_ohm480_p1)) ; # 240/0, 480/1
+ 48:59 , 0x000 , any ; # 240/0, 480/0
+# 60:63 , 0b0000 , any ; # reserved
}
-
# ---------------------------------------------------------------------------------------
# Output(DQ/DQS) driver impedance settings
#
@@ -613,26 +808,33 @@ scom 0x800(0,1)3C7B0301143f { # PFET_TERM_P[0:1]_[0:4] broadcast
#
# [01:23] [N:P] [0:1][0:4]
# DPHY01_DDRPHY_DP18_IO_TX_NFET_SLICE_P0_0 0x078 0x800000780301143f
+# DPHY01_DDRPHY_DP18_IO_TX_PFET_SLICE_P0_0 0x079 0x800000790301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_IO_TX_NFET_SLICE_L2(0:11)
-#scom 0x800(0,1)3C780301143f { # NFET_SLICE_P[0:1]_[0:4] broadcast
-scom 0x800(0,1)3C7(8,9)0301143F { # [N:P]FET_SLICE_P[0:1]_[0:4] broadcast
- bits , scom_data , expr ; # ohm/slices
- 48:59 , 0xFFF , (def_cdi_dqs_ohm24) ; # 240/8, 480/4
- 48:59 , 0x3FF , (def_cdi_dqs_ohm30) ; # 240/6, 480/4
- 48:59 , 0x1FF , (def_cdi_dqs_ohm34) ; # 240/5, 480/4
- 48:59 , 0x0FF , (def_cdi_dqs_ohm40) ; # 240/4, 480/4
- 48:59 , 0x000 , any ; # 240/0, 480/0
+# (00,04,08,0C,10)
+#scom 0x80003C780301143f { # NFET_SLICE_P0_[0:4] broadcast
+scom 0x80003C7(8,9)0301143F { # [N:P]FET_SLICE_P0_[0:4] broadcast
+ bits , scom_data , expr ; # ohm/slices
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:59 , 0xFFF , (def_cdi_dqs_ohm24_p0) ; # 240/8, 480/4
+ 48:59 , 0x7EF , (def_cdi_dqs_ohm30_p0) ; # 240/6, 480/4
+ 48:59 , 0x3EF , (def_cdi_dqs_ohm34_p0) ; # 240/5, 480/4
+ 48:59 , 0x3CF , (def_cdi_dqs_ohm40_p0) ; # 240/4, 480/4
+ 48:59 , 0x000 , any ; # 240/0, 480/0
+# 60:63 , 0b0000 , any ; # reserved
+}
+
+# DPHY01_DDRPHY_DP18_IO_TX_NFET_SLICE_P1_0 0x078 0x800100780301143f
+# DPHY01_DDRPHY_DP18_IO_TX_PFET_SLICE_P1_0 0x079 0x800100790301143f
+scom 0x80013C7(8,9)0301143F { # [N:P]FET_SLICE_P1_[0:4] broadcast
+ bits , scom_data , expr ; # ohm/slices
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:59 , 0xFFF , (def_cdi_dqs_ohm24_p1) ; # 240/8, 480/4
+ 48:59 , 0x7EF , (def_cdi_dqs_ohm30_p1) ; # 240/6, 480/4
+ 48:59 , 0x3EF , (def_cdi_dqs_ohm34_p1) ; # 240/5, 480/4
+ 48:59 , 0x3CF , (def_cdi_dqs_ohm40_p1) ; # 240/4, 480/4
+ 48:59 , 0x000 , any ; # 240/0, 480/0
+# 60:63 , 0b0000 , any ; # reserved
}
-# DPHY01_DDRPHY_DP18_IO_TX_PFET_SLICE_P0_0 0x079 0x800000790301143f
-#scom 0x800(0,1)3C790301143f { # PFET_SLICE_P[0:1]_[0:4] broadcast
-# bits , scom_data, expr;
-# 48:55 , 0xFF , (def_cdi_dqs_ohm24) ; # 240/8
-# 48:55 , 0x3F , (def_cdi_dqs_ohm30) ; # 240/6
-# 48:55 , 0x1F , (def_cdi_dqs_ohm34) ; # 240/5
-# 48:55 , 0x0F , (def_cdi_dqs_ohm40) ; # 240/4
-# 48:55 , 0x00 , any ; # 240/0
-# 56:59 , 0x0F , any ; # FFE=480/4
-#}
#**********************************************************************************
#!! DO NOT NEED to set for Centaur from Joe Iadanza.
@@ -654,22 +856,24 @@ scom 0x800(0,1)3C7(8,9)0301143F { # [N:P]FET_SLICE_P[0:1]_[0:4] broadcast
#! ---------------------------------------------------------------------------------------
#! --- PHY01 ADR IO NFET SLICE EN[0:3] P[0:1] ADR[0:3] ---------------------------
#! ---------------------------------------------------------------------------------------
-#!DPHY01.DDRPHY_ADR_IO_NFET_SLICE_EN0_P0_ADR0 from (alias spydef)
+#!DPHY01.DDRPHY_ADR_IO_NFET_SLICE_EN0_P0_ADR0
#!scom 0x800(0,1)(40,44,48,4C)100301143F {
#!scom 0x800(0,1)(40,44,48,4C)(10,11,12,13)0301143F { # EN[0:3]_P[0:1]_ADR[0:3]
#!scom 0x800(0,1)7C(10,11,12,13)0301143F { # EN[0:3]_P[0:1]_ADR[0:3] via broadcast
#! bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
#! 48:63 , 0b1111111111110000 ;
#!}
#!
#! ---------------------------------------------------------------------------------------
#! --- PHY01 ADR IO PFET SLICE EN[0:3] P[0:1] ADR[0:3] ---------------------------
#! ---------------------------------------------------------------------------------------
-#!DPHY01.DDRPHY_ADR_IO_PFET_SLICE_EN0_P0_ADR0 from (alias spydef)
+#!DPHY01.DDRPHY_ADR_IO_PFET_SLICE_EN0_P0_ADR0
#!scom 0x800(0,1)(40,44,48,4C)140301143F {
#!scom 0x800(0,1)(40,44,48,4C)(14,15,16,17)0301143F { # EN[0:3]_P[0:1]_ADR[0:3]
#!scom 0x800(0,1)7C(14,15,16,17)0301143F { # EN[0:3]_P[0:1]_ADR[0:3] via broadcast
#! bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
#! 48:63 , 0b1111111111110000 ;
#!}
#**********************************************************************************
@@ -692,53 +896,80 @@ scom 0x800(0,1)3C7(8,9)0301143F { # [N:P]FET_SLICE_P[0:1]_[0:4] broadcast
# 11b = 40 ohm
#
# ---------------------------------------------------------------------------------
-# ----------------- Port 0 ADR 0 -----------------------------------------------
+# ----------------- Port 0 ADR 0 -------------------------- !! board wiring dependent !!
# ---------------------------------------------------------------------------------
# [01:23] [0:1][0:1][0:3]
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P0_ADR0 0x020 0x800040200301143f
# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.CONTROL.TWRAP.REG_A_20_L2(0:15)
scom 0x800040200301143f {
- bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL0
- 48:49 , 0b11 , any ; # SEL0, 40 or anything
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL2
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL2
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL2
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL2
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL3
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL3
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL3
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL3
-# 48:55 , 0b00000000 , (def_cdi_ctl_ohm15) ; # SEL0:SEL3
-# 48:55 , 0b01010101 , (def_cdi_ctl_ohm20) ; # SEL0:SEL3
-# 48:55 , 0b10101010 , (def_cdi_ctl_ohm30) ; # SEL0:SEL3
-# 48:55 , 0b11111111 , (def_cdi_ctl_ohm40) ; # SEL0:SEL3
-# 48:55 , 0x00 , (def_cdi_ctl_ohm15) ; # SEL0:SEL3
-# 48:55 , 0x55 , (def_cdi_ctl_ohm20) ; # SEL0:SEL3
-# 48:55 , 0xAA , (def_cdi_ctl_ohm30) ; # SEL0:SEL3
-# 48:55 , 0xFF , (def_cdi_ctl_ohm40) ; # SEL0:SEL3
- 56:57 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL7
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 0 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 0, A1_CKE1
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 1, A0_CS3n
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 2, A1_CKE0
+ 52:53 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 3, A0_ODT0
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 4, A_A15
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 5, A_PAR
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 6, A0_CKE1
+ 60:61 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 7, A0_CS1n
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 0 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 0, C0_CS0n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 1, C_A3
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 2, C1_CS3n
+ 52:53 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 3, C_RASn
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 4, C_A12
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 5, C_A7
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 6, C0_CLK1_p
+ 60:61 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 60:61 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 60:61 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 62:63 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 7, C0_CLK1_n
+ 62:63 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
# 48:63 , 0x0000 , any ; # SEL0-7
}
# ADR I/O FET Slice Enable Map 1, register 1 containing lanes 8:15
@@ -746,209 +977,410 @@ scom 0x800040200301143f {
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P0_ADR0
scom 0x800040210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL10 clk
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL10 clk
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL10 clk
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL10 clk
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL11 clk
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL11 clk
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL11 clk
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL11 clk
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 0 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 8, A0_CKE0
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 9, A1_ODT0
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 10, A0_CLK0_p
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 11, A0_CLK0_n
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 0 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 8, C1_CLK1_p
+ 48:49 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 9, C1_CLK1_n
+ 50:51 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba23)); # 10, C1_CKE2
+ 52:53 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba23));
+ 52:53 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba23));
+ 52:53 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba23));
+ 54:55 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba23)); # 11, C0_CKE2
+ 54:55 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba23));
+ 54:55 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba23));
+ 54:55 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba23));
+# 56:63 , 0x00 , any ; # reserved
}
# ----------------- Port 0 ADR 1 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P0_ADR1
scom 0x800044200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL0
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL0
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL2
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL2
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL2
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL2
- 54:55 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL3
- 54:55 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL3
- 54:55 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL3
- 54:55 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL3
- 56:57 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 1 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 0, A0_CS0n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba01)); # 1, A1_CKE3
+ 50:51 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba01));
+ 50:51 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba01));
+ 50:51 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba01));
+ 52:53 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 2, A1_ODT1
+ 52:53 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 3, A_A2
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 4, A_A6
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 5, A_A1
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 6, A_A14
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba01)); # 7, A0_CKE2
+ 62:63 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba01));
+ 62:63 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba01));
+ 62:63 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba01));
+# ------ PORT 2 ADR 1 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 0, C_BA2
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 1, C1_CKE1
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 2, C0_ODT1
+ 52:53 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 3, C_WEn
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 4, C0_CS1n
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 5, C_A11
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba23)); # 6, C0_CKE3
+ 60:61 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba23));
+ 60:61 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba23));
+ 60:61 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba23));
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 7, C0_CS2n
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P0_ADR1
scom 0x800044210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL10
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL10
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL10
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL10
- 54:55 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL11
- 54:55 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL11
- 54:55 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL11
- 54:55 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL11
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 1 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 8, A1_CS2n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba01)); # 9, A1_CKE2
+ 50:51 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba01));
+ 50:51 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba01));
+ 50:51 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba01));
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 10, A_A4
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 11, A_RASn
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 1 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 8, C0_ODT0
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 9, C_A8
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 10, C_A5
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 11, C1_CS0n
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+# 56:63 , 0x00 , any ; # reserved
}
# ----------------- Port 0 ADR 2 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P0_ADR2
scom 0x800048200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL0
- 48:49 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL0
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL2
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL2
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL2
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL2
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL3
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL3
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL3
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL3
- 56:57 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL4 clk
- 56:57 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL4 clk
- 56:57 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL4 clk
- 56:57 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL4 clk
- 58:59 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL5 clk
- 58:59 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL5 clk
- 58:59 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL5 clk
- 58:59 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL5 clk
- 60:61 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 2 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 0, A_A12
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 1, A_A0
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba01)); # 2, A0_CKE3
+ 52:53 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba01));
+ 52:53 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba01));
+ 52:53 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba01));
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 3, A1_CS3n
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 4, A1_CLK0_p
+ 56:57 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 5, A1_CLK0_n
+ 58:59 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 6, A0_ODT1
+ 60:61 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 7, A1_CS0n
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 2 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 0, C_A1
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 1, C_A6
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 2, C_A13
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 3, C0_CKE0
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 4, C1_ODT0
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 5, C1_CS1n
+ 58:59 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 6, C0_CKE1
+ 60:61 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 60:61 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 60:61 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 7, C1_CKE0
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P0_ADR2
scom 0x800048210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL10 clk
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL10 clk
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL10 clk
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL10 clk
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL11 clk
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL11 clk
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL11 clk
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL11 clk
- 56:57 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL12 clk
- 56:57 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL12 clk
- 56:57 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL12 clk
- 56:57 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL12 clk
- 58:59 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL13 clk
- 58:59 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL13 clk
- 58:59 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL13 clk
- 58:59 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL13 clk
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 2 lanes 8:13 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 8, A1_CS1n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 9, A_A10
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 10, A0_CLK1_n
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 11, A0_CLK1_p
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 12, A1_CLK1_n
+ 56:57 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba01)) ; # 13, A1_CLK1_p
+ 58:59 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 2 lanes 8:13 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 8, C_A0
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 9, C_BA1
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 10, C0_CLK0_n
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 11, C0_CLK0_p
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 12, C1_CS2n
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 13, C_A10
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+# 60:63 , 0b0000 , any ; # reserved
}
# ----------------- Port 0 ADR 3 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P0_ADR3
scom 0x80004c200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL0
- 48:49 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL0
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL2
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL2
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL2
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL2
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL3
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL3
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL3
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL3
- 56:57 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 3 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 0, A_A13
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 1, A_BA0
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 2, A_WEn
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba01)) ; # 3, A0_CS2n
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 4, A_BA1
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 5, A_CASn
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 6, A_A5
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 7, A_A3
+ 62:63 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 3 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 0, C_PAR
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 1, C1_ODT1
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 2, C1_CLK0_p
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p0) && (def_is_mba23)) ; # 3, C1_CLK0_n
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p0) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 4, C_A14
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 5, C_A9
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 6, C_ACTn
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 62:63 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 7, C_A2
+ 62:63 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P0_ADR3
scom 0x80004c210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL10
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL10
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL10
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL10
- 54:55 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL11
- 54:55 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL11
- 54:55 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL11
- 54:55 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL11
- 56:57 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL12
- 56:57 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL12
- 56:57 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL12
- 56:57 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL12
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL13
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL13
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL13
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL13
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 3 lanes 8:13 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 8, A_BA2
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 9, A_A11
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 10, A_A7
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 11, A_ACTn
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 12, A_A9
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba01)) ; # 13, A_A8
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba01)) ;
+# ------ PORT 2 ADR 3 lanes 8:13 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_spcke_ohm15_p0) && (def_is_mba23)); # 8, C1_CKE3
+ 48:49 , 0b01 , ((def_cdi_spcke_ohm20_p0) && (def_is_mba23));
+ 48:49 , 0b10 , ((def_cdi_spcke_ohm30_p0) && (def_is_mba23));
+ 48:49 , 0b11 , ((def_cdi_spcke_ohm40_p0) && (def_is_mba23));
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 9, C_A15
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 10, C_BA0
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 11, C_CASn
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p0) && (def_is_mba23)) ; # 12, C_A4
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p0) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p0) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p0) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_ctl_ohm15_p0) && (def_is_mba23)) ; # 13, C0_CS3n
+ 58:59 , 0b01 , ((def_cdi_ctl_ohm20_p0) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_ctl_ohm30_p0) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_ctl_ohm40_p0) && (def_is_mba23)) ;
+# 60:63 , 0b0000 , any ; # reserved
}
# =================================================================================
# ----------------- Port 1 ADR 0 -----------------------------------------------
@@ -956,328 +1388,510 @@ scom 0x80004c210301143f {
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P1_ADR0
scom 0x800140200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL0 clk
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL0 clk
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL0 clk
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL0 clk
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL1 clk
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL1 clk
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL1 clk
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL1 clk
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL2 clk
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL2 clk
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL2 clk
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL2 clk
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL3 clk
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL3 clk
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL3 clk
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL3 clk
- 56:57 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 0 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 0, B1_CLK0_n
+ 48:49 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 1, B1_CLK0_p
+ 50:51 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 2, B1_CLK1_n
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 3, B1_CLK1_p
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba01)); # 4, B0_CKE3
+ 56:57 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba01));
+ 56:57 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba01));
+ 56:57 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba01));
+ 58:59 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 5, B0_CS3n
+ 58:59 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 6, B_BA0
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 7, B1_ODT1
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 0 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 0, D1_CKE1
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 1, D_BA2
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 2, D_A1
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 3, D_A5
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 4, D_A12
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 5, D_BA0
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba23)); # 6, D1_CKE2
+ 60:61 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba23));
+ 60:61 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba23));
+ 60:61 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba23));
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 7, D1_CS1n
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P1_ADR0
scom 0x800140210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL10
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL10
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL10
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL10
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL11
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL11
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL11
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL11
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 0 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba01)); # 8, B1_CKE3
+ 48:49 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba01));
+ 48:49 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba01));
+ 48:49 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba01));
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 9, B_A15
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 10, B1_CS2n
+ 52:53 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 11, B0_CKE1
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 0 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 8, D0_CKE0
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 9, D0_CS2n
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 10, D1_CLK0_p
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 11, D1_CLK0_n
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+# 56:63 , 0x00 , any ; # reserved
}
# ----------------- Port 1 ADR 1 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P1_ADR1
scom 0x800144200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL0
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL0
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL2
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL2
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL2
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL2
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL3
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL3
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL3
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL3
- 56:57 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 1 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba01)); # 0, B0_CKE2
+ 48:49 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba01));
+ 48:49 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba01));
+ 48:49 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba01));
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 1, B_A7
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 2, B_A10
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 3, B1_CKE1
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 4, B0_CS1n
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 5, B_A8
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 6, B_A6
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 7, B1_CS3n
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 1 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 0, D_A8
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 1, D_A13
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 2, D0_ODT1
+ 52:53 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 3, D_PAR
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 4, D1_CS0n
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 5, D_A11
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 6, D0_CKE1
+ 60:61 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 60:61 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 60:61 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 62:63 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 7, D_WEn
+ 62:63 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P1_ADR1
scom 0x800144210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL10
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL10
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL10
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL10
- 54:55 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL11
- 54:55 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL11
- 54:55 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL11
- 54:55 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL11
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 1 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 8, B_A4
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 9, B1_CS1n
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 10, B_A1
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 11, B_BA1
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 1 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba23)); # 8, D0_CKE3
+ 48:49 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba23));
+ 48:49 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba23));
+ 48:49 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba23));
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 9, D1_ODT0
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 10, D_RASn
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 11, D0_CS1n
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+# 56:63 , 0x00 , any ; # reserved
}
# ----------------- Port 1 ADR 2 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P1_ADR2
scom 0x800148200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL0
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL0
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL2
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL2
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL2
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL2
- 54:55 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL3
- 54:55 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL3
- 54:55 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL3
- 54:55 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL3
- 56:57 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 2 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 0, B0_CS2n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 1, B0_ODT0
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 2, B_WEn
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 3, B_A2
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 4, B0_ODT1
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 5, B0_CS0n
+ 58:59 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 6, B_A3
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 62:63 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 7, B_A0
+ 62:63 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 2 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 0, D0_CS0n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 1, D_A10
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 2, D_A4
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 3, D1_CS3n
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 4, D_ACTn
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 5, D_A9
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba23)); # 6, D1_CKE3
+ 60:61 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba23));
+ 60:61 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba23));
+ 60:61 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba23));
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 7, D1_CKE0
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P1_ADR2
scom 0x800148210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL8 clk
- 48:49 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL8 clk
- 48:49 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL8 clk
- 48:49 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL8 clk
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL9 clk
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL9 clk
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL9 clk
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL9 clk
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL10
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL10
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL10
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL10
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL11
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL11
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL11
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL11
- 56:57 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL12
- 56:57 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL12
- 56:57 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL12
- 56:57 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL12
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL13
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL13
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL13
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL13
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 2 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 8, B0_CLK1_p
+ 48:49 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 9, B0_CLK1_n
+ 50:51 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 10, B_CASn
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 11, B1_CS0n
+ 54:55 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 12, B1_CKE0
+ 56:57 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 13, B_A12
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 2 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 8, D0_CS3n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 9, D_A2
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 10, D1_CLK1_n
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 11, D1_CLK1_p
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 12, D0_CLK1_n
+ 56:57 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 13, D0_CLK1_p
+ 58:59 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+# 60:63 , 0b0000 , any ; # reserved
}
# ----------------- Port 1 ADR 3 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0_P1_ADR3
scom 0x80014c200301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL0
- 48:49 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL0
- 48:49 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL0
- 48:49 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL0
- 50:51 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL1
- 50:51 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL1
- 50:51 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL1
- 50:51 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL1
- 52:53 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL2 clk
- 52:53 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL2 clk
- 52:53 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL2 clk
- 52:53 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL2 clk
- 54:55 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL3 clk
- 54:55 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL3 clk
- 54:55 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL3 clk
- 54:55 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL3 clk
- 56:57 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL4
- 56:57 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL4
- 56:57 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL4
- 56:57 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL4
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL5
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL5
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL5
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL5
- 60:61 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL6
- 60:61 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL6
- 60:61 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL6
- 60:61 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL6
- 62:63 , 0b00 , (def_cdi_ctl_ohm15) ; # SEL7
- 62:63 , 0b01 , (def_cdi_ctl_ohm20) ; # SEL7
- 62:63 , 0b10 , (def_cdi_ctl_ohm30) ; # SEL7
- 62:63 , 0b11 , (def_cdi_ctl_ohm40) ; # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 3 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 0, B_A11
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 1, B0_CKE0
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 2, B0_CLK0_n
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba01)) ; # 3, B0_CLK0_p
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 4, B_A13
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 5, B_A14
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 60:61 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba01)); # 6, B1_CKE2
+ 60:61 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba01));
+ 60:61 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba01));
+ 60:61 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba01));
+ 62:63 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba01)) ; # 7, B1_ODT0
+ 62:63 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba01)) ;
+ 62:63 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba01)) ;
+ 62:63 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 3 lanes 0:7 ---------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 0, D1_CS2n
+ 48:49 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 1, D0_ODT0
+ 50:51 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 2, D0_CLK0_n
+ 52:53 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_clk_ohm15_p1) && (def_is_mba23)) ; # 3, D0_CLK0_p
+ 54:55 , 0b01 , ((def_cdi_clk_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_clk_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_clk_ohm40_p1) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 4, D_A6
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_ctl_ohm15_p1) && (def_is_mba23)) ; # 5, D1_ODT1
+ 58:59 , 0b01 , ((def_cdi_ctl_ohm20_p1) && (def_is_mba23)) ;
+ 58:59 , 0b10 , ((def_cdi_ctl_ohm30_p1) && (def_is_mba23)) ;
+ 58:59 , 0b11 , ((def_cdi_ctl_ohm40_p1) && (def_is_mba23)) ;
+ 60:61 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 6, D_A0
+ 60:61 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 60:61 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 60:61 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 62:63 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 7, D_CASn
+ 62:63 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 62:63 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 62:63 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
}
# DPHY01_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1_P1_ADR3
scom 0x80014c210301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL8
- 48:49 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL8
- 48:49 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL8
- 48:49 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL8
- 50:51 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL9
- 50:51 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL9
- 50:51 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL9
- 50:51 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL9
- 52:53 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL10
- 52:53 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL10
- 52:53 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL10
- 52:53 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL10
- 54:55 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL11
- 54:55 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL11
- 54:55 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL11
- 54:55 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL11
- 56:57 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL12
- 56:57 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL12
- 56:57 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL12
- 56:57 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL12
- 58:59 , 0b00 , (def_cdi_cmd_ohm15) ; # SEL13
- 58:59 , 0b01 , (def_cdi_cmd_ohm20) ; # SEL13
- 58:59 , 0b10 , (def_cdi_cmd_ohm30) ; # SEL13
- 58:59 , 0b11 , (def_cdi_cmd_ohm40) ; # SEL13
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 3 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 8, B_A9
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 9, B_BA2
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 10, B_RASn
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 11, B_ACTn
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 12, B_A5
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+ 58:59 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba01)) ; # 13, B_PAR
+ 58:59 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba01)) ;
+ 58:59 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba01)) ;
+ 58:59 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba01)) ;
+# ------ PORT 3 ADR 3 lanes 8:11 --------------------------------------------
+ 48:49 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 8, D_A14
+ 48:49 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 48:49 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 48:49 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 50:51 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 9, D_A3
+ 50:51 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 50:51 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 50:51 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 52:53 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 10, D_A7
+ 52:53 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 52:53 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 52:53 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 54:55 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 11, D_A15
+ 54:55 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 54:55 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 54:55 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 56:57 , 0b00 , ((def_cdi_addr_ohm15_p1) && (def_is_mba23)) ; # 12, D_BA1
+ 56:57 , 0b01 , ((def_cdi_addr_ohm20_p1) && (def_is_mba23)) ;
+ 56:57 , 0b10 , ((def_cdi_addr_ohm30_p1) && (def_is_mba23)) ;
+ 56:57 , 0b11 , ((def_cdi_addr_ohm40_p1) && (def_is_mba23)) ;
+ 58:59 , 0b00 , ((def_cdi_spcke_ohm15_p1) && (def_is_mba23)); # 13, D0_CKE2
+ 58:59 , 0b01 , ((def_cdi_spcke_ohm20_p1) && (def_is_mba23));
+ 58:59 , 0b10 , ((def_cdi_spcke_ohm30_p1) && (def_is_mba23));
+ 58:59 , 0b11 , ((def_cdi_spcke_ohm40_p1) && (def_is_mba23));
+# 60:63 , 0b0000 , any ; # reserved
}
#**********************************************************************************
# ADR Slew Calibration control default=0
-#
-# Controls the circuit that performs the ADR slew calibration.
-#
-# [01:23] [0:1] [0:1]
# DPHY01_DDRPHY_ADR_SLEW_CAL_CNTL_P0_ADR32S0 0x039 0x800080390301143f
-# Controls the circuit that performs the ADR slew calibration.
#
-scom 0x800080390301143f {
- bits , scom_data ;
- 48 , 0b0 ; # enable
- 49 , 0b1 ; # start
-# 50 , 0b0 ; # reserved
- 51 , 0b1 ; # override enable
- 52:55 , 0b0100 ; # override vector
-# 56:58 , 0b010 ; # reserved
- 59:63 , 0b10111 ; # slew target phase rotator offset
-}
-#
-# !! looks like 4,5,6V/ns for 1.35V and 4,5V/ns at 1.2V, need to add this to the
-# ddr_reset_phy procedure. Waiting on details from analog PHY team for settings.
-#
-#**********************************************************************************
-
-# ---------------------------------------------------------------------------------------
-# Configure slew rate mux(CTL) registers(4)
-# CTL0 = CMD, CTL1 = CNTL, CTL2 = unused, CTL3 = unused
-#
-# ATTR_EFF_CEN_SLEW_RATE_CMD 0=slow, 15=fast use in CTL0
-# ATTR_EFF_CEN_SLEW_RATE_CNTL 0=slow, 15=fast use in CTL1
-#
-# choices... 0=3.61, 1=4.33, 2=5.41, 3=6.69, 4=8.11, 5=8.58 V/ns
-# 6..F is approximately 180mV/step, F=10.56 V/ns
+# ---------------------------------------------------------------------------------
+# Configure slew rate mux(CTL) registers(4) slew mapping/slew mux
+# set in ddrphy_reset procedure via FN call
+# CTL0 = CMD, CTL1 = CNTL, CTL2 = CLK, CTL3 = SPCKE
#
-# [01:23] [0:1][0:3]
+# [01:23] [0:1][0:3]
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_P0_ADR0 0x01A 0x8000401a0301143f
#scom 0x8000(40,44,48,4c)1A0301143f { # VALUE_P0_ADR[0:3]
-scom 0x800(0,1)7C1A0301143f { # VALUE_P[0:1]_ADR[0:3] broadcast
- bits , scom_data , expr ;
- # SLEW_CTL0, used for command
- 48:51 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 0) ; # slow
- 48:51 , 0b0001 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 1) ; # faster .
- 48:51 , 0b0010 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 2) ; # faster ..
- 48:51 , 0b0011 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 3) ; # faster ...
- 48:51 , 0b0100 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 4) ; # faster ....
- 48:51 , 0b0101 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 5) ; # faster .....
- 48:51 , 0b0110 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 6) ; # faster ......
- 48:51 , 0b0111 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 7) ; # faster .......
- 48:51 , 0b1000 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 8) ; # faster ........
- 48:51 , 0b1001 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 9) ; # faster .........
- 48:51 , 0b1010 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 10) ; # faster ..........
- 48:51 , 0b1011 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 11) ; # faster ...........
- 48:51 , 0b1100 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 12) ; # faster ............
- 48:51 , 0b1101 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 13) ; # faster .............
- 48:51 , 0b1110 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 14) ; # faster ..............
- 48:51 , 0b1111 , (ATTR_EFF_CEN_SLEW_RATE_CMD == 15) ; # fastest...............
- # SLEW_CTL1, used for control
- 52:55 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 0) ; # slow
- 52:55 , 0b0001 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 1) ; # faster .
- 52:55 , 0b0010 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 2) ; # faster ..
- 52:55 , 0b0011 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 3) ; # faster ...
- 52:55 , 0b0100 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 4) ; # faster ....
- 52:55 , 0b0101 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 5) ; # faster .....
- 52:55 , 0b0110 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 6) ; # faster ......
- 52:55 , 0b0111 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 7) ; # faster .......
- 52:55 , 0b1000 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 8) ; # faster ........
- 52:55 , 0b1001 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 9) ; # faster .........
- 52:55 , 0b1010 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 10) ; # faster ..........
- 52:55 , 0b1011 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 11) ; # faster ...........
- 52:55 , 0b1100 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 12) ; # faster ............
- 52:55 , 0b1101 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 13) ; # faster .............
- 52:55 , 0b1110 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 14) ; # faster ..............
- 52:55 , 0b1111 , (ATTR_EFF_CEN_SLEW_RATE_CNTL == 15) ; # fastest...............
- # SLEW_CTL2 3.61 V/ns, not used currently
- 56:59 , 0b0000 , any ; # slow
- # SLEW_CTL3 3.61 V/ns, not used currently
- 60:63 , 0b0000 , any ; # slow
-}
+#scom 0x800(0,1)7C1A0301143f { # VALUE_P[0:1]_ADR[0:3] broadcast
+# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ # SLEW_CTL0, used for command (A0:15, BA0:3, ACT, PAR, CAS, RAS, WE)
+# 48:51 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_ADDR[0]) ;
+ # SLEW_CTL1, used for control (CKE0:1, CKE4:5, ODT, CSN0:7)
+# 52:55 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_CNTL[0]) ;
+ # SLEW_CTL2, used for clocks (CLK0:3)
+# 56:59 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_CLK[0]) ;
+ # SLEW_CTL3, used for spare drams (CKE2:3, CKE6:7)
+# 60:63 , 0b0000 , (ATTR_EFF_CEN_SLEW_RATE_SPCKE[0) ;
+#}
+#**********************************************************************************
-# ---------------------------------------------------------------------------------------
+# ---------------------------------------------------------------------------------
# Set slew rate to select CMD(CTL0) or CNTL(CTL1)
#
# MAP0 = SLEW_CTL_SEL{0:7} MAP1 = SLEW_CTL_SEL{8:15}
@@ -1288,23 +1902,30 @@ scom 0x800(0,1)7C1A0301143f { # VALUE_P[0:1]_ADR[0:3] broadcast
# ----------------- Port 0 ADR 0 -----------------------------------------------
scom 0x8000402a0301143f { # MAP0_P0_ADR0
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL0
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL1
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL2
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL3
- 56:57 , 0b00 , (def_is_mba01) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba01) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba01) ; # CNTL # SEL7
- # ----------------- Port 2 ADR 0 Map 0 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL0
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL1
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL2
- 54:55 , 0b00 , (def_is_mba23) ; # CMD # SEL3
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba23) ; # CNTL # SEL6 clk
- 62:63 , 0b01 , (def_is_mba23) ; # CNTL # SEL7 clk
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 0 lanes 0:7 ---------------------------------------------
+# A1_CKE1, A0_CS3n, A1_CKE0, A0_ODT0, A_A15, A_PAR, A0_CKE1, A0_CS1n
+# 48:63 , 0x5505 , (def_is_mba01) ;
+# ------ PORT 2 ADR 0 lanes 0:7 ---------------------------------------------
+# C0_CS0n, C_A3, C1_CS3n, C_RASn, C_A12, C_A7, C0_CLK1_p, C0_CLK1_n
+# 48:63 , 0x440A , (def_is_mba23) ;
+ 48:49 , 0b01 , (def_is_mba01) ; # 0 CNTL , A1_CKE1
+ 50:51 , 0b01 , (def_is_mba01) ; # 1 CNTL , A0_CS3n
+ 52:53 , 0b01 , (def_is_mba01) ; # 2 CNTL , A1_CKE0
+ 54:55 , 0b01 , (def_is_mba01) ; # 3 CNTL , A0_ODT0
+ 56:57 , 0b00 , (def_is_mba01) ; # 4 ADDR , A_A15
+ 58:59 , 0b00 , (def_is_mba01) ; # 5 ADDR , A_PAR
+ 60:61 , 0b01 , (def_is_mba01) ; # 6 CNTL , A0_CKE1
+ 62:63 , 0b01 , (def_is_mba01) ; # 7 CNTL , A0_CS1n
+ # ----------------- Port 2 ADR 0 Map 0 ----------------------
+ 48:49 , 0b01 , (def_is_mba23) ; # 0 CNTL , C0_CS0n
+ 50:51 , 0b00 , (def_is_mba23) ; # 1 ADDR , C_A3
+ 52:53 , 0b01 , (def_is_mba23) ; # 2 CNTL , C1_CS3n
+ 54:55 , 0b00 , (def_is_mba23) ; # 3 ADDR , C_RASn
+ 56:57 , 0b00 , (def_is_mba23) ; # 4 ADDR , C_A12
+ 58:59 , 0b00 , (def_is_mba23) ; # 5 ADDR , C_A7
+ 60:61 , 0b10 , (def_is_mba23) ; # 6 CLK , C0_CLK1_p
+ 62:63 , 0b10 , (def_is_mba23) ; # 7 CLK , C0_CLK1_n
}
# ADR I/O FET Slice Enable Map 1
# Register 1 containing lanes 8:15
@@ -1312,128 +1933,181 @@ scom 0x8000402a0301143f { # MAP0_P0_ADR0
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P0_ADR0 0x02b 0x8000402b0301143f
scom 0x8000402b0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL8
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL9
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL10 clk
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL11 clk
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 0 lanes 8:11 --------------------------------------------
+# A0_CKE0, A1_ODT0, A0_CLK0_p, A0_CLK0_n
+# 48:55 , 0x5A , (def_is_mba01) ;
+# ------ PORT 2 ADR 0 lanes 8:11 --------------------------------------------
+# C1_CLK1_p, C1_CLK1_n, C1_CKE2, C0_CKE2
+# 48:55 , 0xAF , (def_is_mba23) ;
+ 48:49 , 0b01 , (def_is_mba01) ; # 8 CNTL , A0_CKE0
+ 50:51 , 0b01 , (def_is_mba01) ; # 9 CNTL , A1_ODT0
+ 52:53 , 0b10 , (def_is_mba01) ; #10 CLK , A0_CLK0_p
+ 54:55 , 0b10 , (def_is_mba01) ; #11 CLK , A0_CLK0_n
# ----------------- Port 2 ADR 0 Map 1 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL8 clk
- 50:51 , 0b01 , (def_is_mba23) ; # CNTL # SEL9 clk
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL10
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL11
+ 48:49 , 0b10 , (def_is_mba23) ; # 8 CLK , C1_CLK1_p
+ 50:51 , 0b10 , (def_is_mba23) ; # 9 CLK , C1_CLK1_n
+ 52:53 , 0b11 , (def_is_mba23) ; #10 SPCKE , C1_CKE2
+ 54:55 , 0b11 , (def_is_mba23) ; #11 SPCKE , C0_CKE2
+# 56:63 , 0b00000000 , any ; # reserved
}
# ----------------- Port 0 ADR 1 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P0_ADR1
scom 0x8000442a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL0
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL1
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL2
- 54:55 , 0b00 , (def_is_mba01) ; # CMD # SEL3
- 56:57 , 0b00 , (def_is_mba01) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL5
- 60:61 , 0b00 , (def_is_mba01) ; # CMD # SEL6
- 62:63 , 0b01 , (def_is_mba01) ; # CNTL # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 1 lanes 0:7 ---------------------------------------------
+# A0_CS0n, A1_CKE3, A1_ODT1, A_A2, A_A6, A_A1, A_A14, A0_CKE2
+# 48:63 , 0x7403 , (def_is_mba01) ;
+# ------ PORT 2 ADR 1 lanes 0:7 ---------------------------------------------
+# C_BA2, C1_CKE1, C0_ODT1, C_WEn, C0_CS1n, C_A11, C0_CKE3, C0_CS2n
+# 48:63 , 0x144D , (def_is_mba23) ;
+ 48:49 , 0b01 , (def_is_mba01) ; # 0 CNTL , A0_CS0n
+ 50:51 , 0b11 , (def_is_mba01) ; # 1 SPCKE , A1_CKE3
+ 52:53 , 0b01 , (def_is_mba01) ; # 2 CNTL , A1_ODT1
+ 54:55 , 0b00 , (def_is_mba01) ; # 3 ADDR , A_A2
+ 56:57 , 0b00 , (def_is_mba01) ; # 4 ADDR , A_A6
+ 58:59 , 0b00 , (def_is_mba01) ; # 5 ADDR , A_A1
+ 60:61 , 0b00 , (def_is_mba01) ; # 6 ADDR , A_A14
+ 62:63 , 0b11 , (def_is_mba01) ; # 7 SPCKE , A0_CKE2
# ----------------- Port 2 ADR 1 Map 0 ------------------------------------
- 48:49 , 0b00 , (def_is_mba23) ; # CMD # SEL0
- 50:51 , 0b01 , (def_is_mba23) ; # CNTL # SEL1
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL2
- 54:55 , 0b00 , (def_is_mba23) ; # CMD # SEL3
- 56:57 , 0b01 , (def_is_mba23) ; # CNTL # SEL4
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba23) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba23) ; # CNTL # SEL7
+ 48:49 , 0b00 , (def_is_mba23) ; # 0 ADDR , C_BA2
+ 50:51 , 0b01 , (def_is_mba23) ; # 1 CNTL , C1_CKE1
+ 52:53 , 0b01 , (def_is_mba23) ; # 2 CNTL , C0_ODT1
+ 54:55 , 0b00 , (def_is_mba23) ; # 3 ADDR , C_WEn
+ 56:57 , 0b01 , (def_is_mba23) ; # 4 CNTL , C0_CS1n
+ 58:59 , 0b00 , (def_is_mba23) ; # 5 ADDR , C_A11
+ 60:61 , 0b11 , (def_is_mba23) ; # 6 SPCKE , C0_CKE3
+ 62:63 , 0b01 , (def_is_mba23) ; # 7 CNTL , C0_CS2n
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P0_ADR1
scom 0x8000442b0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL8
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL9
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL10
- 54:55 , 0b00 , (def_is_mba01) ; # CMD # SEL11
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 1 lanes 8:11 --------------------------------------------
+# A1_CS2n, A1_CKE2, A_A4, A_RASn
+# 48:55 , 0x70 , (def_is_mba01) ;
+# ------ PORT 2 ADR 1 lanes 8:11 --------------------------------------------
+# C0_ODT0, C_A8, C_A5, C1_CS0n
+# 48:55 , 0x41 , (def_is_mba23) ;
+ 48:49 , 0b01 , (def_is_mba01) ; # 8 CNTL , A1_CS2n
+ 50:51 , 0b11 , (def_is_mba01) ; # 9 SPCKE , A1_CKE2
+ 52:53 , 0b00 , (def_is_mba01) ; #10 ADDR , A_A4
+ 54:55 , 0b00 , (def_is_mba01) ; #11 ADDR , A_RASn
# ----------------- Port 2 ADR 1 Map 1 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL8
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL9
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL10
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL11
+ 48:49 , 0b01 , (def_is_mba23) ; # 8 CNTL , C0_ODT0
+ 50:51 , 0b00 , (def_is_mba23) ; # 9 ADDR , C_A8
+ 52:53 , 0b00 , (def_is_mba23) ; #10 ADDR , C_A5
+ 54:55 , 0b01 , (def_is_mba23) ; #11 CNTL , C1_CS0n
+# 56:63 , 0b00000000 , any ; # reserved
}
# ----------------- Port 0 ADR 2 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P0_ADR2
scom 0x8000482a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_is_mba01) ; # CMD # SEL0
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL1
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL2
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL3
- 56:57 , 0b01 , (def_is_mba01) ; # CNTL # SEL4 clk
- 58:59 , 0b01 , (def_is_mba01) ; # CNTL # SEL5 clk
- 60:61 , 0b01 , (def_is_mba01) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba01) ; # CNTL # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 2 lanes 0:7 ---------------------------------------------
+# A_A12, A_A0, A0_CKE3, A1_CS3n, A1_CLK0_p, A1_CLK0_n, A0_ODT1, A1_CS0n
+# 48:63 , 0x0DA5 , (def_is_mba01) ;
+# ------ PORT 2 ADR 2 lanes 0:7 ---------------------------------------------
+# C_A1, C_A6, C_A13, C0_CKE0, C1_ODT0, C1_CS1n, C0_CKE1, C1_CKE0
+# 48:63 , 0x0155 , (def_is_mba23) ;
+ 48:49 , 0b00 , (def_is_mba01) ; # 0 ADDR , A_A12
+ 50:51 , 0b00 , (def_is_mba01) ; # 1 ADDR , A_A0
+ 52:53 , 0b11 , (def_is_mba01) ; # 2 SPCKE , A0_CKE3
+ 54:55 , 0b01 , (def_is_mba01) ; # 3 CNTL , A1_CS3n
+ 56:57 , 0b10 , (def_is_mba01) ; # 4 CLK , A1_CLK0_p
+ 58:59 , 0b10 , (def_is_mba01) ; # 5 CLK , A1_CLK0_n
+ 60:61 , 0b01 , (def_is_mba01) ; # 6 CNTL , A0_ODT1
+ 62:63 , 0b01 , (def_is_mba01) ; # 7 CNTL , A1_CS0n
# ----------------- Port 2 ADR 2 Map 0 ------------------------------------
- 48:49 , 0b00 , (def_is_mba23) ; # CMD # SEL0
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL1
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL2
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL3
- 56:57 , 0b01 , (def_is_mba23) ; # CNTL # SEL4
- 58:59 , 0b01 , (def_is_mba23) ; # CNTL # SEL5
- 60:61 , 0b01 , (def_is_mba23) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba23) ; # CNTL # SEL7
+ 48:49 , 0b00 , (def_is_mba23) ; # 0 ADDR , C_A1
+ 50:51 , 0b00 , (def_is_mba23) ; # 1 ADDR , C_A6
+ 52:53 , 0b00 , (def_is_mba23) ; # 2 ADDR , C_A13
+ 54:55 , 0b01 , (def_is_mba23) ; # 3 CNTL , C0_CKE0
+ 56:57 , 0b01 , (def_is_mba23) ; # 4 CNTL , C1_ODT0
+ 58:59 , 0b01 , (def_is_mba23) ; # 5 CNTL , C1_CS1n
+ 60:61 , 0b01 , (def_is_mba23) ; # 6 CNTL , C0_CKE1
+ 62:63 , 0b01 , (def_is_mba23) ; # 7 CNTL , C1_CKE0
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P0_ADR2
scom 0x8000482b0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL8
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL9
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL10 clk
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL11 clk
- 56:57 , 0b01 , (def_is_mba01) ; # CNTL # SEL12 clk
- 58:59 , 0b01 , (def_is_mba01) ; # CNTL # SEL13 clk
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 2 lanes 8:13 --------------------------------------------
+# A1_CS1n, A_A10, A0_CLK1_n, A0_CLK1_p, A1_CLK1_n, A1_CLK1_p
+# 48:59 , 0x4AA , (def_is_mba01) ;
+# ------ PORT 2 ADR 2 lanes 8:13 --------------------------------------------
+# C_A0, C_BA1, C0_CLK0_n, C0_CLK0_p, C1_CS2n, C_A10
+# 48:59 , 0x0A4 , (def_is_mba23) ;
+ 48:49 , 0b01 , (def_is_mba01) ; # 8 CNTL , A1_CS1n
+ 50:51 , 0b00 , (def_is_mba01) ; # 9 ADDR , A_A10
+ 52:53 , 0b10 , (def_is_mba01) ; #10 CLK , A0_CLK1_n
+ 54:55 , 0b10 , (def_is_mba01) ; #11 CLK , A0_CLK1_p
+ 56:57 , 0b10 , (def_is_mba01) ; #12 CLK , A1_CLK1_n
+ 58:59 , 0b10 , (def_is_mba01) ; #13 CLK , A1_CLK1_p
# ----------------- Port 2 ADR 2 Map 1 ------------------------------------
- 48:49 , 0b00 , (def_is_mba23) ; # CMD # SEL8
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL9
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL10 clk
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL11 clk
- 56:57 , 0b01 , (def_is_mba23) ; # CNTL # SEL12
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL13
+ 48:49 , 0b00 , (def_is_mba23) ; # 8 ADDR , C_A0
+ 50:51 , 0b00 , (def_is_mba23) ; # 9 ADDR , C_BA1
+ 52:53 , 0b10 , (def_is_mba23) ; #10 CLK , C0_CLK0_n
+ 54:55 , 0b10 , (def_is_mba23) ; #11 CLK , C0_CLK0_p
+ 56:57 , 0b01 , (def_is_mba23) ; #12 CNTL , C1_CS2n
+ 58:59 , 0b00 , (def_is_mba23) ; #13 ADDR , C_A10
+# 60:63 , 0b0000 , any ; # reserved
}
# ----------------- Port 0 ADR 3 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P0_ADR3
scom 0x80004c2a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_is_mba01) ; # CMD # SEL0
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL1
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL2
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL3
- 56:57 , 0b00 , (def_is_mba01) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL5
- 60:61 , 0b00 , (def_is_mba01) ; # CMD # SEL6
- 62:63 , 0b00 , (def_is_mba01) ; # CMD # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 3 lanes 0:7 ---------------------------------------------
+# A_A13, A_BA0, A_WEn, A0_CS2n, A_BA1, A_CASn, A_A5, A_A3
+# 48:63 , 0x0100 , (def_is_mba01) ;
+# ------ PORT 2 ADR 3 lanes 0:7 ---------------------------------------------
+# C_PAR, C1_ODT1, C1_CLK0_p, C1_CLK0_n, C_A14, C_A9, C_ACTn, C_A2
+# 48:63 , 0x1A00 , (def_is_mba23) ;
+ 48:49 , 0b00 , (def_is_mba01) ; # 0 ADDR , A_A13
+ 50:51 , 0b00 , (def_is_mba01) ; # 1 ADDR , A_BA0
+ 52:53 , 0b00 , (def_is_mba01) ; # 2 ADDR , A_WEn
+ 54:55 , 0b01 , (def_is_mba01) ; # 3 CNTL , A0_CS2n
+ 56:57 , 0b00 , (def_is_mba01) ; # 4 ADDR , A_BA1
+ 58:59 , 0b00 , (def_is_mba01) ; # 5 ADDR , A_CASn
+ 60:61 , 0b00 , (def_is_mba01) ; # 6 ADDR , A_A5
+ 62:63 , 0b00 , (def_is_mba01) ; # 7 ADDR , A_A3
# ----------------- Port 2 ADR 3 Map 0 ------------------------------------
- 48:49 , 0b00 , (def_is_mba23) ; # CMD # SEL0
- 50:51 , 0b01 , (def_is_mba23) ; # CNTL # SEL1
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL2 clk
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL3 clk
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL5
- 60:61 , 0b00 , (def_is_mba23) ; # CMD # SEL6
- 62:63 , 0b00 , (def_is_mba23) ; # CMD # SEL7
+ 48:49 , 0b00 , (def_is_mba23) ; # 0 ADDR , C_PAR
+ 50:51 , 0b01 , (def_is_mba23) ; # 1 CNTL , C1_ODT1
+ 52:53 , 0b10 , (def_is_mba23) ; # 2 CLK , C1_CLK0_p
+ 54:55 , 0b10 , (def_is_mba23) ; # 3 CLK , C1_CLK0_n
+ 56:57 , 0b00 , (def_is_mba23) ; # 4 ADDR , C_A14
+ 58:59 , 0b00 , (def_is_mba23) ; # 5 ADDR , C_A9
+ 60:61 , 0b00 , (def_is_mba23) ; # 6 ADDR , C_ACTn
+ 62:63 , 0b00 , (def_is_mba23) ; # 7 ADDR , C_A2
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P0_ADR3
scom 0x80004c2b0301143f {
- bits , scom_data , expr ;
- 48:49 , 0b00 , (def_is_mba01) ; # CMD # SEL8
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL9
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL10
- 54:55 , 0b00 , (def_is_mba01) ; # CMD # SEL11
- 56:57 , 0b00 , (def_is_mba01) ; # CMD # SEL12
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL13
+ bits , scom_data , expr ; # signal
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 0 ADR 3 lanes 8:13 --------------------------------------------
+# A_BA2, A_A11, A_A7, A_ACTn, A_A9, A_A8
+# 48:59 , 0x000 , (def_is_mba01) ;
+# ------ PORT 2 ADR 3 lanes 8:13 --------------------------------------------
+# C1_CKE3, C_A15, C_BA0, C_CASn, C_A4, C0_CS3n
+# 48:59 , 0xC01 , (def_is_mba23) ;
+ 48:49 , 0b00 , (def_is_mba01) ; # 8 ADDR , A_BA2
+ 50:51 , 0b00 , (def_is_mba01) ; # 9 ADDR , A_A11
+ 52:53 , 0b00 , (def_is_mba01) ; #10 ADDR , A_A7
+ 54:55 , 0b00 , (def_is_mba01) ; #11 ADDR , A_ACTn
+ 56:57 , 0b00 , (def_is_mba01) ; #12 ADDR , A_A9
+ 58:59 , 0b00 , (def_is_mba01) ; #13 ADDR , A_A8
# ----------------- Port 2 ADR 3 Map 1 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL8
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL9
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL10
- 54:55 , 0b00 , (def_is_mba23) ; # CMD # SEL11
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL12
- 58:59 , 0b01 , (def_is_mba23) ; # CNTL # SEL13
+ 48:49 , 0b11 , (def_is_mba23) ; # 8 SPCKE , C1_CKE3
+ 50:51 , 0b00 , (def_is_mba23) ; # 9 ADDR , C_A15
+ 52:53 , 0b00 , (def_is_mba23) ; #10 ADDR , C_BA0
+ 54:55 , 0b00 , (def_is_mba23) ; #11 ADDR , C_CASn
+ 56:57 , 0b00 , (def_is_mba23) ; #12 ADDR , C_A4
+ 58:59 , 0b01 , (def_is_mba23) ; #13 CNTL , C0_CS3n
+# 60:63 , 0b0000 , any ; # reserved
}
# =================================================================================
# ----------------- Port 1 ADR 0 -----------------------------------------------
@@ -1441,179 +2115,220 @@ scom 0x80004c2b0301143f {
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P1_ADR0
scom 0x8001402a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL0 clk
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL1 clk
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL2 clk
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL3 clk
- 56:57 , 0b01 , (def_is_mba01) ; # CNTL # SEL4
- 58:59 , 0b01 , (def_is_mba01) ; # CNTL # SEL5
- 60:61 , 0b00 , (def_is_mba01) ; # CMD # SEL6
- 62:63 , 0b01 , (def_is_mba01) ; # CNTL # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 0 lanes 0:7 ---------------------------------------------
+# B1_CLK0_n, B1_CLK0_p, B1_CLK1_n, B1_CLK1_p, B0_CKE3, B0_CS3n, B_BA0, B1_ODT1
+# 48:63 , 0xAAD1 , (def_is_mba01) ;
+# ------ PORT 3 ADR 0 lanes 0:7 ---------------------------------------------
+# D1_CKE1, D_BA2, D_A1, D_A5, D_A12, D_BA0, D1_CKE2, D1_CS1n
+# 48:63 , 0x400D , (def_is_mba23) ;
+ 48:49 , 0b10 , (def_is_mba01) ; # 0 CLK , B1_CLK0_n
+ 50:51 , 0b10 , (def_is_mba01) ; # 1 CLK , B1_CLK0_p
+ 52:53 , 0b10 , (def_is_mba01) ; # 2 CLK , B1_CLK1_n
+ 54:55 , 0b10 , (def_is_mba01) ; # 3 CLK , B1_CLK1_p
+ 56:57 , 0b11 , (def_is_mba01) ; # 4 SPCKE , B0_CKE3
+ 58:59 , 0b01 , (def_is_mba01) ; # 5 CNTL , B0_CS3n
+ 60:61 , 0b00 , (def_is_mba01) ; # 6 ADDR , B_BA0
+ 62:63 , 0b01 , (def_is_mba01) ; # 7 CNTL , B1_ODT1
# ----------------- Port 3 ADR 0 Map 0 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL0
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL1
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL2
- 54:55 , 0b00 , (def_is_mba23) ; # CMD # SEL3
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba23) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba23) ; # CNTL # SEL7
+ 48:49 , 0b01 , (def_is_mba23) ; # 0 CNTL , D1_CKE1
+ 50:51 , 0b00 , (def_is_mba23) ; # 1 ADDR , D_BA2
+ 52:53 , 0b00 , (def_is_mba23) ; # 2 ADDR , D_A1
+ 54:55 , 0b00 , (def_is_mba23) ; # 3 ADDR , D_A5
+ 56:57 , 0b00 , (def_is_mba23) ; # 4 ADDR , D_A12
+ 58:59 , 0b00 , (def_is_mba23) ; # 5 ADDR , D_BA0
+ 60:61 , 0b11 , (def_is_mba23) ; # 6 SPCKE , D1_CKE2
+ 62:63 , 0b01 , (def_is_mba23) ; # 7 CNTL , D1_CS1n
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P1_ADR0
scom 0x8001402b0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL8
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL9
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL10
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL11
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 0 lanes 8:11 --------------------------------------------
+# B1_CKE3, B_A15, B1_CS2n, B0_CKE1
+# 48:55 , 0xC5 , (def_is_mba01) ;
+# ------ PORT 3 ADR 0 lanes 8:11 --------------------------------------------
+# D0_CKE0, D0_CS2n, D1_CLK0_p, D1_CLK0_n
+# 48:55 , 0x5A , (def_is_mba23) ;
+ 48:49 , 0b11 , (def_is_mba01) ; # 8 SPCKE , B1_CKE3
+ 50:51 , 0b00 , (def_is_mba01) ; # 9 ADDR , B_A15
+ 52:53 , 0b01 , (def_is_mba01) ; #10 CNTL , B1_CS2n
+ 54:55 , 0b01 , (def_is_mba01) ; #11 CNTL , B0_CKE1
# ----------------- Port 3 ADR 0 Map 1 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL8
- 50:51 , 0b01 , (def_is_mba23) ; # CNTL # SEL9
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL10 clk
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL11 clk
+ 48:49 , 0b01 , (def_is_mba23) ; # 8 CNTL , D0_CKE0
+ 50:51 , 0b01 , (def_is_mba23) ; # 9 CNTL , D0_CS2n
+ 52:53 , 0b10 , (def_is_mba23) ; #10 CLK , D1_CLK0_p
+ 54:55 , 0b10 , (def_is_mba23) ; #11 CLK , D1_CLK0_n
+# 56:63 , 0b00000000 , any ; # reserved
}
# ----------------- Port 1 ADR 1 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P1_ADR1
scom 0x8001442a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL0
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL1
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL2
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL3
- 56:57 , 0b01 , (def_is_mba01) ; # CNTL # SEL4
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL5
- 60:61 , 0b00 , (def_is_mba01) ; # CMD # SEL6
- 62:63 , 0b01 , (def_is_mba01) ; # CNTL # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 1 lanes 0:7 ---------------------------------------------
+# B0_CKE2, B_A7, B_A10, B1_CKE1, B0_CS1n, B_A8, B_A6, B1_CS3n
+# 48:63 , 0xC141 , (def_is_mba01) ;
+# ------ PORT 3 ADR 1 lanes 0:7 ---------------------------------------------
+# D_A8, D_A13, D0_ODT1, D_PAR, D1_CS0n, D_A11, D0_CKE1, D_WEn
+# 48:63 , 0x0444 , (def_is_mba23) ;
+ 48:49 , 0b11 , (def_is_mba01) ; # 0 SPCKE , B0_CKE2
+ 50:51 , 0b00 , (def_is_mba01) ; # 1 ADDR , B_A7
+ 52:53 , 0b00 , (def_is_mba01) ; # 2 ADDR , B_A10
+ 54:55 , 0b01 , (def_is_mba01) ; # 3 CNTL , B1_CKE1
+ 56:57 , 0b01 , (def_is_mba01) ; # 4 CNTL , B0_CS1n
+ 58:59 , 0b00 , (def_is_mba01) ; # 5 ADDR , B_A8
+ 60:61 , 0b00 , (def_is_mba01) ; # 6 ADDR , B_A6
+ 62:63 , 0b01 , (def_is_mba01) ; # 7 CNTL , B1_CS3n
# ----------------- Port 3 ADR 1 Map 0 ------------------------------------
- 48:49 , 0b00 , (def_is_mba23) ; # CMD # SEL0
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL1
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL2
- 54:55 , 0b00 , (def_is_mba23) ; # CMD # SEL3
- 56:57 , 0b01 , (def_is_mba23) ; # CNTL # SEL4
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba23) ; # CNTL # SEL6
- 62:63 , 0b00 , (def_is_mba23) ; # CMD # SEL7
+ 48:49 , 0b00 , (def_is_mba23) ; # 0 ADDR , D_A8
+ 50:51 , 0b00 , (def_is_mba23) ; # 1 ADDR , D_A13
+ 52:53 , 0b01 , (def_is_mba23) ; # 2 CNTL , D0_ODT1
+ 54:55 , 0b00 , (def_is_mba23) ; # 3 ADDR , D_PAR
+ 56:57 , 0b01 , (def_is_mba23) ; # 4 CNTL , D1_CS0n
+ 58:59 , 0b00 , (def_is_mba23) ; # 5 ADDR , D_A11
+ 60:61 , 0b01 , (def_is_mba23) ; # 6 CNTL , D0_CKE1
+ 62:63 , 0b00 , (def_is_mba23) ; # 7 ADDR , D_WEn
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P1_ADR1
scom 0x8001442b0301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_is_mba01) ; # CMD # SEL8
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL9
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL10
- 54:55 , 0b00 , (def_is_mba01) ; # CMD # SEL11
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 1 lanes 8:11 --------------------------------------------
+# B_A4, B1_CS1n, B_A1, B_BA1
+# 48:55 , 0x10 , (def_is_mba01) ;
+# ------ PORT 3 ADR 1 lanes 8:11 --------------------------------------------
+# D0_CKE3, D1_ODT0, D_RASn, D0_CS1n
+# 48:55 , 0xD1 , (def_is_mba23) ;
+ 48:49 , 0b00 , (def_is_mba01) ; # 8 ADDR , B_A4
+ 50:51 , 0b01 , (def_is_mba01) ; # 9 CNTL , B1_CS1n
+ 52:53 , 0b00 , (def_is_mba01) ; #10 ADDR , B_A1
+ 54:55 , 0b00 , (def_is_mba01) ; #11 ADDR , B_BA1
# ----------------- Port 3 ADR 1 Map 1 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL8
- 50:51 , 0b01 , (def_is_mba23) ; # CNTL # SEL9
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL10
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL11
+ 48:49 , 0b11 , (def_is_mba23) ; # 8 CNTL , D0_CKE3
+ 50:51 , 0b01 , (def_is_mba23) ; # 9 CNTL , D1_ODT0
+ 52:53 , 0b00 , (def_is_mba23) ; #10 ADDR , D_RASn
+ 54:55 , 0b01 , (def_is_mba23) ; #11 CNTL , D0_CS1n
+# 56:63 , 0b00000000 , any ; # reserved
}
# ----------------- Port 1 ADR 2 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P1_ADR2
scom 0x8001482a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL0
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL1
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL2
- 54:55 , 0b00 , (def_is_mba01) ; # CMD # SEL3
- 56:57 , 0b01 , (def_is_mba01) ; # CNTL # SEL4
- 58:59 , 0b01 , (def_is_mba01) ; # CNTL # SEL5
- 60:61 , 0b00 , (def_is_mba01) ; # CMD # SEL6
- 62:63 , 0b00 , (def_is_mba01) ; # CMD # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 2 lanes 0:7 ---------------------------------------------
+# B0_CS2n, B0_ODT0, B_WEn, B_A2, B0_ODT1, B0_CS0n, B_A3, B_A0
+# 48:63 , 0x5050 , (def_is_mba01) ;
+# ------ PORT 3 ADR 2 lanes 0:7 ---------------------------------------------
+# D0_CS0n, D_A10, D_A4, D1_CS3n, D_ACTn, D_A9, D1_CKE3, D1_CKE0
+# 48:63 , 0x410D , (def_is_mba23) ;
+ 48:49 , 0b01 , (def_is_mba01) ; # 0 CNTL , B0_CS2n
+ 50:51 , 0b01 , (def_is_mba01) ; # 1 CNTL , B0_ODT0
+ 52:53 , 0b00 , (def_is_mba01) ; # 2 ADDR , B_WEn
+ 54:55 , 0b00 , (def_is_mba01) ; # 3 ADDR , B_A2
+ 56:57 , 0b01 , (def_is_mba01) ; # 4 CNTL , B0_ODT1
+ 58:59 , 0b01 , (def_is_mba01) ; # 5 CNTL , B0_CS0n
+ 60:61 , 0b00 , (def_is_mba01) ; # 6 ADDR , B_A3
+ 62:63 , 0b00 , (def_is_mba01) ; # 7 ADDR , B_A0
# ----------------- Port 3 ADR 2 Map 0 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL0
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL1
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL2
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL3
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba23) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba23) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba23) ; # CNTL # SEL7
+ 48:49 , 0b01 , (def_is_mba23) ; # 0 CNTL , D0_CS0n
+ 50:51 , 0b00 , (def_is_mba23) ; # 1 ADDR , D_A10
+ 52:53 , 0b00 , (def_is_mba23) ; # 2 ADDR , D_A4
+ 54:55 , 0b01 , (def_is_mba23) ; # 3 CNTL , D1_CS3n
+ 56:57 , 0b00 , (def_is_mba23) ; # 4 ADDR , D_ACTn
+ 58:59 , 0b00 , (def_is_mba23) ; # 5 ADDR , D_A9
+ 60:61 , 0b11 , (def_is_mba23) ; # 6 SPCKE , D1_CKE3
+ 62:63 , 0b01 , (def_is_mba23) ; # 7 CNTL , D1_CKE0
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P1_ADR2
scom 0x8001482b0301143f {
bits , scom_data , expr ;
- 48:49 , 0b01 , (def_is_mba01) ; # CNTL # SEL8 clk
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL9 clk
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL10
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL11
- 56:57 , 0b01 , (def_is_mba01) ; # CNTL # SEL12
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL13
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 2 lanes 8:11 --------------------------------------------
+# B0_CLK1_p, B0_CLK1_n, B_CASn, B1_CS0n, B1_CKE0, B_A12
+# 48:59 , 0xA14 , (def_is_mba01) ;
+# ------ PORT 3 ADR 2 lanes 8:11 --------------------------------------------
+# D0_CS3n, D_A2, D1_CLK1_n, D1_CLK1_p, D0_CLK1_n, D0_CLK1_p
+# 48:59 , 0x4AA , (def_is_mba23) ;
+ 48:49 , 0b10 , (def_is_mba01) ; # 8 CLK , B0_CLK1_p
+ 50:51 , 0b10 , (def_is_mba01) ; # 9 CLK , B0_CLK1_n
+ 52:53 , 0b00 , (def_is_mba01) ; #10 ADDR , B_CASn
+ 54:55 , 0b01 , (def_is_mba01) ; #11 CNTL , B1_CS0n
+ 56:57 , 0b01 , (def_is_mba01) ; #12 CNTL , B1_CKE0
+ 58:59 , 0b00 , (def_is_mba01) ; #13 ADDR , B_A12
# ----------------- Port 3 ADR 2 Map 1 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL8
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL9
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL10 clk
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL11 clk
- 56:57 , 0b01 , (def_is_mba23) ; # CNTL # SEL12 clk
- 58:59 , 0b01 , (def_is_mba23) ; # CNTL # SEL13 clk
+ 48:49 , 0b01 , (def_is_mba23) ; # 8 CNTL , D0_CS3n
+ 50:51 , 0b00 , (def_is_mba23) ; # 9 ADDR , D_A2
+ 52:53 , 0b10 , (def_is_mba23) ; #10 CLK , D1_CLK1_n
+ 54:55 , 0b10 , (def_is_mba23) ; #11 CLK , D1_CLK1_p
+ 56:57 , 0b10 , (def_is_mba23) ; #12 CLK , D0_CLK1_n
+ 58:59 , 0b10 , (def_is_mba23) ; #13 CLK , D0_CLK1_p
+# 60:63 , 0b0000 , any ; # reserved
}
# ----------------- Port 1 ADR 3 -----------------------------------------------
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0_P1_ADR3
scom 0x80014c2a0301143f {
bits , scom_data , expr ;
- 48:49 , 0b00 , (def_is_mba01) ; # CMD # SEL0
- 50:51 , 0b01 , (def_is_mba01) ; # CNTL # SEL1
- 52:53 , 0b01 , (def_is_mba01) ; # CNTL # SEL2 clk
- 54:55 , 0b01 , (def_is_mba01) ; # CNTL # SEL3 clk
- 56:57 , 0b00 , (def_is_mba01) ; # CMD # SEL4
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL5
- 60:61 , 0b01 , (def_is_mba01) ; # CNTL # SEL6
- 62:63 , 0b01 , (def_is_mba01) ; # CNTL # SEL7
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 3 lanes 0:7 ---------------------------------------------
+# B_A11, B0_CKE0, B0_CLK0_n, B0_CLK0_p, B_A13, B_A14, B1_CKE2, B1_ODT0
+# 48:63 , 0x1A0D , (def_is_mba01) ;
+# ------ PORT 3 ADR 3 lanes 0:7 ---------------------------------------------
+# D1_CS2n, D0_ODT0, D0_CLK0_n, D0_CLK0_p, D_A6, D1_ODT1, D_A0, D_CASn
+# 48:63 , 0x5A10 , (def_is_mba23) ;
+ 48:49 , 0b00 , (def_is_mba01) ; # 0 ADDR , B_A11
+ 50:51 , 0b01 , (def_is_mba01) ; # 1 CNTL , B0_CKE0
+ 52:53 , 0b10 , (def_is_mba01) ; # 2 CLK , B0_CLK0_n
+ 54:55 , 0b10 , (def_is_mba01) ; # 3 CLK , B0_CLK0_p
+ 56:57 , 0b00 , (def_is_mba01) ; # 4 ADDR , B_A13
+ 58:59 , 0b00 , (def_is_mba01) ; # 5 ADDR , B_A14
+ 60:61 , 0b11 , (def_is_mba01) ; # 6 SPCKE , B1_CKE2
+ 62:63 , 0b01 , (def_is_mba01) ; # 7 CNTL , B1_ODT0
# ----------------- Port 3 ADR 3 Map 0 ------------------------------------
- 48:49 , 0b01 , (def_is_mba23) ; # CNTL # SEL0
- 50:51 , 0b01 , (def_is_mba23) ; # CNTL # SEL1
- 52:53 , 0b01 , (def_is_mba23) ; # CNTL # SEL2 clk
- 54:55 , 0b01 , (def_is_mba23) ; # CNTL # SEL3 clk
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL4
- 58:59 , 0b01 , (def_is_mba23) ; # CNTL # SEL5
- 60:61 , 0b00 , (def_is_mba23) ; # CMD # SEL6
- 62:63 , 0b00 , (def_is_mba23) ; # CMD # SEL7
+ 48:49 , 0b01 , (def_is_mba23) ; # 0 CNTL , D1_CS2n
+ 50:51 , 0b01 , (def_is_mba23) ; # 1 CNTL , D0_ODT0
+ 52:53 , 0b10 , (def_is_mba23) ; # 2 CLK , D0_CLK0_n
+ 54:55 , 0b10 , (def_is_mba23) ; # 3 CLK , D0_CLK0_p
+ 56:57 , 0b00 , (def_is_mba23) ; # 4 ADDR , D_A6
+ 58:59 , 0b01 , (def_is_mba23) ; # 5 CNTL , D1_ODT1
+ 60:61 , 0b00 , (def_is_mba23) ; # 6 ADDR , D_A0
+ 62:63 , 0b00 , (def_is_mba23) ; # 7 ADDR , D_CASn
}
# DPHY01_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1_P1_ADR3
scom 0x80014c2b0301143f {
- bits , scom_data , expr ;
- 48:49 , 0b00 , (def_is_mba01) ; # CMD # SEL8
- 50:51 , 0b00 , (def_is_mba01) ; # CMD # SEL9
- 52:53 , 0b00 , (def_is_mba01) ; # CMD # SEL10
- 54:55 , 0b00 , (def_is_mba01) ; # CMD # SEL11
- 56:57 , 0b00 , (def_is_mba01) ; # CMD # SEL12
- 58:59 , 0b00 , (def_is_mba01) ; # CMD # SEL13
+ bits , scom_data , expr ; # signal
+# 0:47 , 0x000000000000, any ; # reserved
+# ------ PORT 1 ADR 3 lanes 8:11 --------------------------------------------
+# B_A9, B_BA2, B_RASn, B_ACTn, B_A5, B_PAR
+# 48:59 , 0x000 , (def_is_mba01) ;
+# ------ PORT 3 ADR 3 lanes 8:11 --------------------------------------------
+# D_A14, D_A3, D_A7, D_A15, D_BA1, D0_CKE2
+# 48:59 , 0x003 , (def_is_mba23) ;
+ 48:49 , 0b00 , (def_is_mba01) ; # 8 ADDR , B_A9
+ 50:51 , 0b00 , (def_is_mba01) ; # 9 ADDR , B_BA2
+ 52:53 , 0b00 , (def_is_mba01) ; #10 ADDR , B_RASn
+ 54:55 , 0b00 , (def_is_mba01) ; #11 ADDR , B_ACTn
+ 56:57 , 0b00 , (def_is_mba01) ; #12 ADDR , B_A5
+ 58:59 , 0b00 , (def_is_mba01) ; #13 ADDR , B_PAR
# ----------------- Port 3 ADR 3 Map 1 ------------------------------------
- 48:49 , 0b00 , (def_is_mba23) ; # CMD # SEL8
- 50:51 , 0b00 , (def_is_mba23) ; # CMD # SEL9
- 52:53 , 0b00 , (def_is_mba23) ; # CMD # SEL10
- 54:55 , 0b00 , (def_is_mba23) ; # CMD # SEL11
- 56:57 , 0b00 , (def_is_mba23) ; # CMD # SEL12
- 58:59 , 0b01 , (def_is_mba23) ; # CNTL # SEL13
+ 48:49 , 0b00 , (def_is_mba23) ; # 8 ADDR , D_A14
+ 50:51 , 0b00 , (def_is_mba23) ; # 9 ADDR , D_A3
+ 52:53 , 0b00 , (def_is_mba23) ; #10 ADDR , D_A7
+ 54:55 , 0b00 , (def_is_mba23) ; #11 ADDR , D_A15
+ 56:57 , 0b00 , (def_is_mba23) ; #12 ADDR , D_BA1
+ 58:59 , 0b11 , (def_is_mba23) ; #13 SPCKE , D0_CKE2
+# 60:63 , 0b0000 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
-# ADR I/O Post Cursor Value Register default=0 !! need to set?
-#
-# This register contains four Driver Post Cursor Slice values. The registers described in
-# Section 5.2.2.7 ADR I/O Post Cursor Value Map {0-1} on page 303 selects which one of
-# these four values are sent to each ADR output pin.
-#
-# The POST_CURSOR* control vectors select the amount of equalization enabled in the address
-# drivers. While the vectors determine whether a subset of the slices in each I/O operate
-# in either a normal data or post cursor data regime, it is the data history which determines
-# the amount of equalization provided at the driver output at any time.
-#
+# ADR I/O Post Cursor Value Register default=0 not needed anymore
# DPHY01_DDRPHY_ADR_IO_POST_CURSOR_VALUE_P0_ADR0 0x018 0x800040180301143f
# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.REG_A_18_L2
#
-
# ---------------------------------------------------------------------------------------
-# ADR I/O Post Cursor Value Map {0-1} Register default=0 !! need to set?
-#
-# Each predefined pin pair on the ADR can be mapped to one of four Post Cursor values. These
-# registers determine which of the four Post Cursor values in the register described in
-# Section 5.2.2.6 ADR I/O Post Cursor Value on page 301 are used for the given ADR output pin.
-# Pins are defined by the mnemonic {{0-1}*8+n}, with n = 0 - 7, with register 0 containing
-# lanes 0:7 and register 1 containing lanes 8:15
-#
+# ADR I/O Post Cursor Value Map {0-1} Register default=0 not needed anymore
# DPHY01_DDRPHY_ADR_IO_POST_CURSOR_VALUE_MAP0_P0_ADR0 0x028 0x800040280301143f
# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.REG_A_28_L2
-#
# ---------------------------------------------------------------------------------------
# Centaur Vref Trimmer Control & RCM default=0 !! need to set RCM for DDR3/4
@@ -1639,39 +2354,225 @@ scom 0x80014c2b0301143f {
# 0x9 = 0.52750 0x6 = 0.41750 | 0x9 = 0.72750 0x6 = 0.61750
# 0x8 = 0.51375 0x7 = 0.40375 | 0x8 = 0.71375 0x7 = 0.60375
#
+# DP18_IO_RX_CONFIG0
# [01:23] P[0:1]_[0:4]
# DPHY01_DDRPHY_DP18_RX_PEAK_AMP_P0_0 0x006 0x800000060301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.RDDP18WRAP.RDDP18CNTL_MAC.RCVRPEAK_L2
#scom 0x800(0,1)(00,04,08,0C,10)060301143f { # _P[0:1]_[0:4]
-scom 0x800(0,1)3C060301143f { # _P[0:1]_[0:4] via broadcast
+scom 0x80003C060301143f { # _P[0:1]_[0:4] via broadcast
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:50 , 0b000 , any ; # PEAK_AMP_CTL_SIDE0, amp ctl bits
+# 51 , 0b0 , any ; # reserved, 0=no peaking, [1:7]=0.3dB-0.9dB
+ 52:54 , 0b000 , any ; # PEAK_AMP_CTL_SIDE1, amp ctl bits
+# 55 , 0b0 , any ; # reserved
+ # SxMCVREF_0_3, Vref trim ctl signals DDR3 DDR4
+ 56:59 , 0xF , ((ATTR_EFF_CEN_RD_VREF[0] == 61000) || (ATTR_EFF_CEN_RD_VREF[0] == 81000)) ;
+ 56:59 , 0xE , ((ATTR_EFF_CEN_RD_VREF[0] == 59625) || (ATTR_EFF_CEN_RD_VREF[0] == 79625)) ;
+ 56:59 , 0xD , ((ATTR_EFF_CEN_RD_VREF[0] == 58250) || (ATTR_EFF_CEN_RD_VREF[0] == 78250)) ;
+ 56:59 , 0xC , ((ATTR_EFF_CEN_RD_VREF[0] == 56875) || (ATTR_EFF_CEN_RD_VREF[0] == 76875)) ;
+ 56:59 , 0xB , ((ATTR_EFF_CEN_RD_VREF[0] == 55500) || (ATTR_EFF_CEN_RD_VREF[0] == 75500)) ;
+ 56:59 , 0xA , ((ATTR_EFF_CEN_RD_VREF[0] == 54125) || (ATTR_EFF_CEN_RD_VREF[0] == 74125)) ;
+ 56:59 , 0x9 , ((ATTR_EFF_CEN_RD_VREF[0] == 52750) || (ATTR_EFF_CEN_RD_VREF[0] == 72750)) ;
+ 56:59 , 0x8 , ((ATTR_EFF_CEN_RD_VREF[0] == 51375) || (ATTR_EFF_CEN_RD_VREF[0] == 71375)) ;
+ 56:59 , 0x0 , ((ATTR_EFF_CEN_RD_VREF[0] == 50000) || (ATTR_EFF_CEN_RD_VREF[0] == 70000)) ;
+ 56:59 , 0x1 , ((ATTR_EFF_CEN_RD_VREF[0] == 48625) || (ATTR_EFF_CEN_RD_VREF[0] == 68625)) ;
+ 56:59 , 0x2 , ((ATTR_EFF_CEN_RD_VREF[0] == 47250) || (ATTR_EFF_CEN_RD_VREF[0] == 67250)) ;
+ 56:59 , 0x3 , ((ATTR_EFF_CEN_RD_VREF[0] == 45875) || (ATTR_EFF_CEN_RD_VREF[0] == 65875)) ;
+ 56:59 , 0x4 , ((ATTR_EFF_CEN_RD_VREF[0] == 44500) || (ATTR_EFF_CEN_RD_VREF[0] == 64500)) ;
+ 56:59 , 0x5 , ((ATTR_EFF_CEN_RD_VREF[0] == 43125) || (ATTR_EFF_CEN_RD_VREF[0] == 63125)) ;
+ 56:59 , 0x6 , ((ATTR_EFF_CEN_RD_VREF[0] == 41750) || (ATTR_EFF_CEN_RD_VREF[0] == 61750)) ;
+ 56:59 , 0x7 , ((ATTR_EFF_CEN_RD_VREF[0] == 40375) || (ATTR_EFF_CEN_RD_VREF[0] == 60375)) ;
+ 56:59 , 0x0 , any ;
+ 60 , 0b1 , (def_is_ddr4) ; # SxPODVREF, if DDR4, POD=0.7*VDD
+ 60 , 0b0 , any ; # else (DDR3), POD=0.5*VDD
+ 61 , 0b0 , any ; # 1=DISABLE_TERMINATION, for dq/dqs pins
+ # READ_CENTERING_MODE
+ # (00=MPR_PATTERN_BIT or staggered, custom [01=serial, 10=parallel, 11=custom] using SEQ rd/wr data
+ 62:63 , 0b11 , def_is_ddr4 ; # for DDR4
+ 62:63 , 0b00 , any ; #
+}
+
+scom 0x80013C060301143f { # _P1_[0:4] via broadcast
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:50 , 0b000 , any ; # PEAK_AMP_CTL_SIDE0, amp ctl bits
# 51 , 0b0 , any ; # reserved, 0=no peaking, [1:7]=0.3dB-0.9dB
52:54 , 0b000 , any ; # PEAK_AMP_CTL_SIDE1, amp ctl bits
# 55 , 0b0 , any ; # reserved
# SxMCVREF_0_3, Vref trim ctl signals DDR3 DDR4
- 56:59 , 0xF , ((ATTR_EFF_CEN_RD_VREF == 61000) || (ATTR_EFF_CEN_RD_VREF == 81000)) ;
- 56:59 , 0xE , ((ATTR_EFF_CEN_RD_VREF == 59625) || (ATTR_EFF_CEN_RD_VREF == 79625)) ;
- 56:59 , 0xD , ((ATTR_EFF_CEN_RD_VREF == 58250) || (ATTR_EFF_CEN_RD_VREF == 78250)) ;
- 56:59 , 0xC , ((ATTR_EFF_CEN_RD_VREF == 56875) || (ATTR_EFF_CEN_RD_VREF == 76875)) ;
- 56:59 , 0xB , ((ATTR_EFF_CEN_RD_VREF == 55500) || (ATTR_EFF_CEN_RD_VREF == 75500)) ;
- 56:59 , 0xA , ((ATTR_EFF_CEN_RD_VREF == 54125) || (ATTR_EFF_CEN_RD_VREF == 74125)) ;
- 56:59 , 0x9 , ((ATTR_EFF_CEN_RD_VREF == 52750) || (ATTR_EFF_CEN_RD_VREF == 72750)) ;
- 56:59 , 0x8 , ((ATTR_EFF_CEN_RD_VREF == 51375) || (ATTR_EFF_CEN_RD_VREF == 71375)) ;
- 56:59 , 0x0 , ((ATTR_EFF_CEN_RD_VREF == 50000) || (ATTR_EFF_CEN_RD_VREF == 70000)) ;
- 56:59 , 0x1 , ((ATTR_EFF_CEN_RD_VREF == 48625) || (ATTR_EFF_CEN_RD_VREF == 68625)) ;
- 56:59 , 0x2 , ((ATTR_EFF_CEN_RD_VREF == 47250) || (ATTR_EFF_CEN_RD_VREF == 67250)) ;
- 56:59 , 0x3 , ((ATTR_EFF_CEN_RD_VREF == 45875) || (ATTR_EFF_CEN_RD_VREF == 65875)) ;
- 56:59 , 0x4 , ((ATTR_EFF_CEN_RD_VREF == 44500) || (ATTR_EFF_CEN_RD_VREF == 64500)) ;
- 56:59 , 0x5 , ((ATTR_EFF_CEN_RD_VREF == 43125) || (ATTR_EFF_CEN_RD_VREF == 63125)) ;
- 56:59 , 0x6 , ((ATTR_EFF_CEN_RD_VREF == 41750) || (ATTR_EFF_CEN_RD_VREF == 61750)) ;
- 56:59 , 0x7 , ((ATTR_EFF_CEN_RD_VREF == 40375) || (ATTR_EFF_CEN_RD_VREF == 60375)) ;
+ 56:59 , 0xF , ((ATTR_EFF_CEN_RD_VREF[1] == 61000) || (ATTR_EFF_CEN_RD_VREF[1] == 81000)) ;
+ 56:59 , 0xE , ((ATTR_EFF_CEN_RD_VREF[1] == 59625) || (ATTR_EFF_CEN_RD_VREF[1] == 79625)) ;
+ 56:59 , 0xD , ((ATTR_EFF_CEN_RD_VREF[1] == 58250) || (ATTR_EFF_CEN_RD_VREF[1] == 78250)) ;
+ 56:59 , 0xC , ((ATTR_EFF_CEN_RD_VREF[1] == 56875) || (ATTR_EFF_CEN_RD_VREF[1] == 76875)) ;
+ 56:59 , 0xB , ((ATTR_EFF_CEN_RD_VREF[1] == 55500) || (ATTR_EFF_CEN_RD_VREF[1] == 75500)) ;
+ 56:59 , 0xA , ((ATTR_EFF_CEN_RD_VREF[1] == 54125) || (ATTR_EFF_CEN_RD_VREF[1] == 74125)) ;
+ 56:59 , 0x9 , ((ATTR_EFF_CEN_RD_VREF[1] == 52750) || (ATTR_EFF_CEN_RD_VREF[1] == 72750)) ;
+ 56:59 , 0x8 , ((ATTR_EFF_CEN_RD_VREF[1] == 51375) || (ATTR_EFF_CEN_RD_VREF[1] == 71375)) ;
+ 56:59 , 0x0 , ((ATTR_EFF_CEN_RD_VREF[1] == 50000) || (ATTR_EFF_CEN_RD_VREF[1] == 70000)) ;
+ 56:59 , 0x1 , ((ATTR_EFF_CEN_RD_VREF[1] == 48625) || (ATTR_EFF_CEN_RD_VREF[1] == 68625)) ;
+ 56:59 , 0x2 , ((ATTR_EFF_CEN_RD_VREF[1] == 47250) || (ATTR_EFF_CEN_RD_VREF[1] == 67250)) ;
+ 56:59 , 0x3 , ((ATTR_EFF_CEN_RD_VREF[1] == 45875) || (ATTR_EFF_CEN_RD_VREF[1] == 65875)) ;
+ 56:59 , 0x4 , ((ATTR_EFF_CEN_RD_VREF[1] == 44500) || (ATTR_EFF_CEN_RD_VREF[1] == 64500)) ;
+ 56:59 , 0x5 , ((ATTR_EFF_CEN_RD_VREF[1] == 43125) || (ATTR_EFF_CEN_RD_VREF[1] == 63125)) ;
+ 56:59 , 0x6 , ((ATTR_EFF_CEN_RD_VREF[1] == 41750) || (ATTR_EFF_CEN_RD_VREF[1] == 61750)) ;
+ 56:59 , 0x7 , ((ATTR_EFF_CEN_RD_VREF[1] == 40375) || (ATTR_EFF_CEN_RD_VREF[1] == 60375)) ;
56:59 , 0x0 , any ;
60 , 0b1 , (def_is_ddr4) ; # SxPODVREF, if DDR4, POD=0.7*VDD
60 , 0b0 , any ; # else (DDR3), POD=0.5*VDD
61 , 0b0 , any ; # 1=DISABLE_TERMINATION, for dq/dqs pins
+ # READ_CENTERING_MODE
# (00=MPR_PATTERN_BIT or staggered, custom [01=serial, 10=parallel, 11=custom] using SEQ rd/wr data
- 62:63 , 0b00 , any ; # READ_CENTERING_MODE
+ 62:63 , 0b11 , def_is_ddr4 ; # for DDR4
+ 62:63 , 0b00 , any ; #
+}
+
+#-------------------------------------------------------------------------------
+# DDR Vref Output Driver Control register default=0, output to DIMM
+#
+# ATTR_EFF_DRAM_WR_VREF DDR3 = [420, 425, 430, ... 575]
+# Note: NOT valid for DDR4.
+#
+# Vref driven to the DIMM(s) in 0.5% increments from 0.420 to 0.575.
+# Example: VDD=1.5V(nom DDR3), ATTR_EFF_DRAM_WR_VREF = 500,
+# Vref = VDD * ATTR_EFF_DRAM_WR_VREF/1000 = 0.750 V
+#
+# sign bit, VREFDQ[0:3]D
+# 01111 = 575+ 01110 = 535 10000 = 495 10001 = 455
+# 00111 = 570 00110 = 530 11000 = 490 11001 = 450
+# 01011 = 565 01010 = 525 10100 = 485 10101 = 445
+# 00011 = 560 00010 = 520 11100 = 480 11101 = 440
+# 01101 = 555 01100 = 515 10010 = 475 10011 = 435
+# 00101 = 550 00100 = 510 11010 = 470 11011 = 430
+# 01001 = 545 01000 = 505 10110 = 465 10111 = 425
+# 00001 = 540 00000 = 500* 11110 = 460 11111 = 420-
+#
+# [01:23] [0:1]
+# DPHY01_DDRPHY_PC_VREF_DRV_CONTROL_P0 0x015 0x8000c0150301143f
+scom 0x8000c0150301143f {
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48 , 0b1 , (ATTR_EFF_DRAM_WR_VREF[0] < 500) ; # VREF[0]DQ0 sign bit
+ 48 , 0b0 , (ATTR_EFF_DRAM_WR_VREF[0] >= 500) ; # VREF[0]DQ0 sign bit
+ # VREF[0]DQ0D bit enables
+ 49:52 , 0xF , ((ATTR_EFF_DRAM_WR_VREF[0] == 575) || (ATTR_EFF_DRAM_WR_VREF[0] == 420)) ;
+ 49:52 , 0x7 , ((ATTR_EFF_DRAM_WR_VREF[0] == 570) || (ATTR_EFF_DRAM_WR_VREF[0] == 425)) ;
+ 49:52 , 0xB , ((ATTR_EFF_DRAM_WR_VREF[0] == 565) || (ATTR_EFF_DRAM_WR_VREF[0] == 430)) ;
+ 49:52 , 0x3 , ((ATTR_EFF_DRAM_WR_VREF[0] == 560) || (ATTR_EFF_DRAM_WR_VREF[0] == 435)) ;
+ 49:52 , 0xD , ((ATTR_EFF_DRAM_WR_VREF[0] == 555) || (ATTR_EFF_DRAM_WR_VREF[0] == 440)) ;
+ 49:52 , 0x5 , ((ATTR_EFF_DRAM_WR_VREF[0] == 550) || (ATTR_EFF_DRAM_WR_VREF[0] == 445)) ;
+ 49:52 , 0x9 , ((ATTR_EFF_DRAM_WR_VREF[0] == 545) || (ATTR_EFF_DRAM_WR_VREF[0] == 450)) ;
+ 49:52 , 0x1 , ((ATTR_EFF_DRAM_WR_VREF[0] == 540) || (ATTR_EFF_DRAM_WR_VREF[0] == 455)) ;
+ 49:52 , 0xE , ((ATTR_EFF_DRAM_WR_VREF[0] == 535) || (ATTR_EFF_DRAM_WR_VREF[0] == 460)) ;
+ 49:52 , 0x6 , ((ATTR_EFF_DRAM_WR_VREF[0] == 530) || (ATTR_EFF_DRAM_WR_VREF[0] == 465)) ;
+ 49:52 , 0xA , ((ATTR_EFF_DRAM_WR_VREF[0] == 525) || (ATTR_EFF_DRAM_WR_VREF[0] == 470)) ;
+ 49:52 , 0x2 , ((ATTR_EFF_DRAM_WR_VREF[0] == 520) || (ATTR_EFF_DRAM_WR_VREF[0] == 475)) ;
+ 49:52 , 0xC , ((ATTR_EFF_DRAM_WR_VREF[0] == 515) || (ATTR_EFF_DRAM_WR_VREF[0] == 480)) ;
+ 49:52 , 0x4 , ((ATTR_EFF_DRAM_WR_VREF[0] == 510) || (ATTR_EFF_DRAM_WR_VREF[0] == 485)) ;
+ 49:52 , 0x8 , ((ATTR_EFF_DRAM_WR_VREF[0] == 505) || (ATTR_EFF_DRAM_WR_VREF[0] == 490)) ;
+ 49:52 , 0x0 , ((ATTR_EFF_DRAM_WR_VREF[0] == 500) || (ATTR_EFF_DRAM_WR_VREF[0] == 495)) ;
+ 49:52 , 0b0000 , any ; # VREF[0]DQ0D bit enables
+ 53 , 0b1 , (ATTR_EFF_DRAM_WR_VREF[0] < 500) ; # VREF[0]DQ1 sign bit
+ 53 , 0b0 , (ATTR_EFF_DRAM_WR_VREF[0] >= 500) ; # VREF[0]DQ1 sign bit
+ # VREF[0]DQ1D bit enables
+ 54:57 , 0xF , ((ATTR_EFF_DRAM_WR_VREF[0] == 575) || (ATTR_EFF_DRAM_WR_VREF[0] == 420)) ;
+ 54:57 , 0x7 , ((ATTR_EFF_DRAM_WR_VREF[0] == 570) || (ATTR_EFF_DRAM_WR_VREF[0] == 425)) ;
+ 54:57 , 0xB , ((ATTR_EFF_DRAM_WR_VREF[0] == 565) || (ATTR_EFF_DRAM_WR_VREF[0] == 430)) ;
+ 54:57 , 0x3 , ((ATTR_EFF_DRAM_WR_VREF[0] == 560) || (ATTR_EFF_DRAM_WR_VREF[0] == 435)) ;
+ 54:57 , 0xD , ((ATTR_EFF_DRAM_WR_VREF[0] == 555) || (ATTR_EFF_DRAM_WR_VREF[0] == 440)) ;
+ 54:57 , 0x5 , ((ATTR_EFF_DRAM_WR_VREF[0] == 550) || (ATTR_EFF_DRAM_WR_VREF[0] == 445)) ;
+ 54:57 , 0x9 , ((ATTR_EFF_DRAM_WR_VREF[0] == 545) || (ATTR_EFF_DRAM_WR_VREF[0] == 450)) ;
+ 54:57 , 0x1 , ((ATTR_EFF_DRAM_WR_VREF[0] == 540) || (ATTR_EFF_DRAM_WR_VREF[0] == 455)) ;
+ 54:57 , 0xE , ((ATTR_EFF_DRAM_WR_VREF[0] == 535) || (ATTR_EFF_DRAM_WR_VREF[0] == 460)) ;
+ 54:57 , 0x6 , ((ATTR_EFF_DRAM_WR_VREF[0] == 530) || (ATTR_EFF_DRAM_WR_VREF[0] == 465)) ;
+ 54:57 , 0xA , ((ATTR_EFF_DRAM_WR_VREF[0] == 525) || (ATTR_EFF_DRAM_WR_VREF[0] == 470)) ;
+ 54:57 , 0x2 , ((ATTR_EFF_DRAM_WR_VREF[0] == 520) || (ATTR_EFF_DRAM_WR_VREF[0] == 475)) ;
+ 54:57 , 0xC , ((ATTR_EFF_DRAM_WR_VREF[0] == 515) || (ATTR_EFF_DRAM_WR_VREF[0] == 480)) ;
+ 54:57 , 0x4 , ((ATTR_EFF_DRAM_WR_VREF[0] == 510) || (ATTR_EFF_DRAM_WR_VREF[0] == 485)) ;
+ 54:57 , 0x8 , ((ATTR_EFF_DRAM_WR_VREF[0] == 505) || (ATTR_EFF_DRAM_WR_VREF[0] == 490)) ;
+ 54:57 , 0x0 , ((ATTR_EFF_DRAM_WR_VREF[0] == 500) || (ATTR_EFF_DRAM_WR_VREF[0] == 495)) ;
+ 54:57 , 0b0000 , any ;
+# 58:63 , 0b000000 , any ; # reserved
+
+# 48:57 , 0x1EF , (ATTR_EFF_DRAM_WR_VREF[0] == 575) ; # 0b 0 1111 0 1111 , 0b01 1110 1111
+# 48:57 , 0x0E7 , (ATTR_EFF_DRAM_WR_VREF[0] == 570) ; # 0b 0 0111 0 0111 , 0b00 1110 0111
+# 48:57 , 0x16B , (ATTR_EFF_DRAM_WR_VREF[0] == 565) ; # 0b 0 1011 0 1011 , 0b01 0110 1011
+# 48:57 , 0x063 , (ATTR_EFF_DRAM_WR_VREF[0] == 560) ; # 0b 0 0011 0 0011 , 0b00 0110 0011
+# 48:57 , 0x1AD , (ATTR_EFF_DRAM_WR_VREF[0] == 555) ; # 0b 0 1101 0 1101 , 0b01 1010 1101
+# 48:57 , 0x0A5 , (ATTR_EFF_DRAM_WR_VREF[0] == 550) ; # 0b 0 0101 0 0101 , 0b00 1010 0101
+# 48:57 , 0x129 , (ATTR_EFF_DRAM_WR_VREF[0] == 545) ; # 0b 0 1001 0 1001 , 0b01 0010 1001
+# 48:57 , 0x029 , (ATTR_EFF_DRAM_WR_VREF[0] == 540) ; # 0b 0 0001 0 0001 , 0b00 0010 0001
+# 48:57 , 0x1CE , (ATTR_EFF_DRAM_WR_VREF[0] == 535) ; # 0b 0 1110 0 1110 , 0b01 1100 1110
+# 48:57 , 0x0C6 , (ATTR_EFF_DRAM_WR_VREF[0] == 530) ; # 0b 0 0110 0 0110 , 0b00 1100 0110
+# 48:57 , 0x14A , (ATTR_EFF_DRAM_WR_VREF[0] == 525) ; # 0b 0 1010 0 1010 , 0b01 0100 1010
+# 48:57 , 0x042 , (ATTR_EFF_DRAM_WR_VREF[0] == 520) ; # 0b 0 0010 0 0010 , 0b00 0100 0010
+# 48:57 , 0x01C , (ATTR_EFF_DRAM_WR_VREF[0] == 515) ; # 0b 0 1100 0 1100 , 0b01 1000 1100
+# 48:57 , 0x004 , (ATTR_EFF_DRAM_WR_VREF[0] == 510) ; # 0b 0 0100 0 0100 , 0b00 1000 0100
+# 48:57 , 0x108 , (ATTR_EFF_DRAM_WR_VREF[0] == 505) ; # 0b 0 1000 0 1000 , 0b01 0000 1000
+# 48:57 , 0x000 , (ATTR_EFF_DRAM_WR_VREF[0] == 500) ; # 0b 0 0000 0 0000 , 0b00 0000 0000
+# 48:57 , 0x210 , (ATTR_EFF_DRAM_WR_VREF[0] == 495) ; # 0b 1 0000 1 0000 , 0b10 0001 0000
+# 48:57 , 0x318 , (ATTR_EFF_DRAM_WR_VREF[0] == 490) ; # 0b 1 1000 1 1000 , 0b11 0001 1000
+# 48:57 , 0x294 , (ATTR_EFF_DRAM_WR_VREF[0] == 485) ; # 0b 1 0100 1 0100 , 0b10 1001 0100
+# 48:57 , 0x39C , (ATTR_EFF_DRAM_WR_VREF[0] == 480) ; # 0b 1 1100 1 1100 , 0b11 1001 1100
+# 48:57 , 0x252 , (ATTR_EFF_DRAM_WR_VREF[0] == 475) ; # 0b 1 0010 1 0010 , 0b10 0101 0010
+# 48:57 , 0x35A , (ATTR_EFF_DRAM_WR_VREF[0] == 470) ; # 0b 1 1010 1 1010 , 0b11 0101 1010
+# 48:57 , 0x2D6 , (ATTR_EFF_DRAM_WR_VREF[0] == 465) ; # 0b 1 0110 1 0110 , 0b10 1101 0110
+# 48:57 , 0x3DE , (ATTR_EFF_DRAM_WR_VREF[0] == 460) ; # 0b 1 1110 1 1110 , 0b11 1101 1110
+# 48:57 , 0x231 , (ATTR_EFF_DRAM_WR_VREF[0] == 455) ; # 0b 1 0001 1 0001 , 0b10 0011 0001
+# 48:57 , 0x339 , (ATTR_EFF_DRAM_WR_VREF[0] == 450) ; # 0b 1 1001 1 1001 , 0b11 0011 1001
+# 48:57 , 0x2B5 , (ATTR_EFF_DRAM_WR_VREF[0] == 445) ; # 0b 1 0101 1 0101 , 0b10 1011 0101
+# 48:57 , 0x3BD , (ATTR_EFF_DRAM_WR_VREF[0] == 440) ; # 0b 1 1101 1 1101 , 0b11 1011 1101
+# 48:57 , 0x273 , (ATTR_EFF_DRAM_WR_VREF[0] == 435) ; # 0b 1 0011 1 0011 , 0b10 0111 0011
+# 48:57 , 0x37B , (ATTR_EFF_DRAM_WR_VREF[0] == 430) ; # 0b 1 1011 1 1011 , 0b11 0111 1011
+# 48:57 , 0x2F7 , (ATTR_EFF_DRAM_WR_VREF[0] == 425) ; # 0b 1 0111 1 0111 , 0b10 1111 0111
+# 48:57 , 0x3FF , (ATTR_EFF_DRAM_WR_VREF[0] == 420) ; # 0b 1 1111 1 1111 , 0b11 1111 1111
+# 58:63 , 0b000000 , any ; # reserved
+}
+# DPHY01_DDRPHY_PC_VREF_DRV_CONTROL_P1 0x015 0x8001c0150301143f
+scom 0x8001c0150301143f {
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48 , 0b1 , (ATTR_EFF_DRAM_WR_VREF[1] < 500) ; # VREF[1]DQ0 sign bit
+ 48 , 0b0 , (ATTR_EFF_DRAM_WR_VREF[1] >= 500) ; # VREF[1]DQ0 sign bit
+ # VREF[1]DQ0D bit enables
+ 49:52 , 0xF , ((ATTR_EFF_DRAM_WR_VREF[1] == 575) || (ATTR_EFF_DRAM_WR_VREF[1] == 420)) ;
+ 49:52 , 0x7 , ((ATTR_EFF_DRAM_WR_VREF[1] == 570) || (ATTR_EFF_DRAM_WR_VREF[1] == 425)) ;
+ 49:52 , 0xB , ((ATTR_EFF_DRAM_WR_VREF[1] == 565) || (ATTR_EFF_DRAM_WR_VREF[1] == 430)) ;
+ 49:52 , 0x3 , ((ATTR_EFF_DRAM_WR_VREF[1] == 560) || (ATTR_EFF_DRAM_WR_VREF[1] == 435)) ;
+ 49:52 , 0xD , ((ATTR_EFF_DRAM_WR_VREF[1] == 555) || (ATTR_EFF_DRAM_WR_VREF[1] == 440)) ;
+ 49:52 , 0x5 , ((ATTR_EFF_DRAM_WR_VREF[1] == 550) || (ATTR_EFF_DRAM_WR_VREF[1] == 445)) ;
+ 49:52 , 0x9 , ((ATTR_EFF_DRAM_WR_VREF[1] == 545) || (ATTR_EFF_DRAM_WR_VREF[1] == 450)) ;
+ 49:52 , 0x1 , ((ATTR_EFF_DRAM_WR_VREF[1] == 540) || (ATTR_EFF_DRAM_WR_VREF[1] == 455)) ;
+ 49:52 , 0xE , ((ATTR_EFF_DRAM_WR_VREF[1] == 535) || (ATTR_EFF_DRAM_WR_VREF[1] == 460)) ;
+ 49:52 , 0x6 , ((ATTR_EFF_DRAM_WR_VREF[1] == 530) || (ATTR_EFF_DRAM_WR_VREF[1] == 465)) ;
+ 49:52 , 0xA , ((ATTR_EFF_DRAM_WR_VREF[1] == 525) || (ATTR_EFF_DRAM_WR_VREF[1] == 470)) ;
+ 49:52 , 0x2 , ((ATTR_EFF_DRAM_WR_VREF[1] == 520) || (ATTR_EFF_DRAM_WR_VREF[1] == 475)) ;
+ 49:52 , 0xC , ((ATTR_EFF_DRAM_WR_VREF[1] == 515) || (ATTR_EFF_DRAM_WR_VREF[1] == 480)) ;
+ 49:52 , 0x4 , ((ATTR_EFF_DRAM_WR_VREF[1] == 510) || (ATTR_EFF_DRAM_WR_VREF[1] == 485)) ;
+ 49:52 , 0x8 , ((ATTR_EFF_DRAM_WR_VREF[1] == 505) || (ATTR_EFF_DRAM_WR_VREF[1] == 490)) ;
+ 49:52 , 0x0 , ((ATTR_EFF_DRAM_WR_VREF[1] == 500) || (ATTR_EFF_DRAM_WR_VREF[1] == 495)) ;
+ 49:52 , 0b0000 , any ; # VREF[1]DQ0D bit enables
+ 53 , 0b1 , (ATTR_EFF_DRAM_WR_VREF[1] < 500) ; # VREF[1]DQ1 sign bit
+ 53 , 0b0 , (ATTR_EFF_DRAM_WR_VREF[1] >= 500) ; # VREF[1]DQ1 sign bit
+ # VREF[1]DQ1D bit enables
+ 54:57 , 0xF , ((ATTR_EFF_DRAM_WR_VREF[1] == 575) || (ATTR_EFF_DRAM_WR_VREF[1] == 420)) ;
+ 54:57 , 0x7 , ((ATTR_EFF_DRAM_WR_VREF[1] == 570) || (ATTR_EFF_DRAM_WR_VREF[1] == 425)) ;
+ 54:57 , 0xB , ((ATTR_EFF_DRAM_WR_VREF[1] == 565) || (ATTR_EFF_DRAM_WR_VREF[1] == 430)) ;
+ 54:57 , 0x3 , ((ATTR_EFF_DRAM_WR_VREF[1] == 560) || (ATTR_EFF_DRAM_WR_VREF[1] == 435)) ;
+ 54:57 , 0xD , ((ATTR_EFF_DRAM_WR_VREF[1] == 555) || (ATTR_EFF_DRAM_WR_VREF[1] == 440)) ;
+ 54:57 , 0x5 , ((ATTR_EFF_DRAM_WR_VREF[1] == 550) || (ATTR_EFF_DRAM_WR_VREF[1] == 445)) ;
+ 54:57 , 0x9 , ((ATTR_EFF_DRAM_WR_VREF[1] == 545) || (ATTR_EFF_DRAM_WR_VREF[1] == 450)) ;
+ 54:57 , 0x1 , ((ATTR_EFF_DRAM_WR_VREF[1] == 540) || (ATTR_EFF_DRAM_WR_VREF[1] == 455)) ;
+ 54:57 , 0xE , ((ATTR_EFF_DRAM_WR_VREF[1] == 535) || (ATTR_EFF_DRAM_WR_VREF[1] == 460)) ;
+ 54:57 , 0x6 , ((ATTR_EFF_DRAM_WR_VREF[1] == 530) || (ATTR_EFF_DRAM_WR_VREF[1] == 465)) ;
+ 54:57 , 0xA , ((ATTR_EFF_DRAM_WR_VREF[1] == 525) || (ATTR_EFF_DRAM_WR_VREF[1] == 470)) ;
+ 54:57 , 0x2 , ((ATTR_EFF_DRAM_WR_VREF[1] == 520) || (ATTR_EFF_DRAM_WR_VREF[1] == 475)) ;
+ 54:57 , 0xC , ((ATTR_EFF_DRAM_WR_VREF[1] == 515) || (ATTR_EFF_DRAM_WR_VREF[1] == 480)) ;
+ 54:57 , 0x4 , ((ATTR_EFF_DRAM_WR_VREF[1] == 510) || (ATTR_EFF_DRAM_WR_VREF[1] == 485)) ;
+ 54:57 , 0x8 , ((ATTR_EFF_DRAM_WR_VREF[1] == 505) || (ATTR_EFF_DRAM_WR_VREF[1] == 490)) ;
+ 54:57 , 0x0 , ((ATTR_EFF_DRAM_WR_VREF[1] == 500) || (ATTR_EFF_DRAM_WR_VREF[1] == 495)) ;
+ 54:57 , 0b0000 , any ;
+# 58:63 , 0b000000 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
@@ -1698,18 +2599,22 @@ scom 0x800(0,1)3C060301143f { # _P[0:1]_[0:4] via broadcast
#
# [0:1]
# DPHY01_DDRPHY_SEQ_RD_WR_DATA0_P0 0x000-0x001 0x8000c4000301143f
+# DPHY01_DDRPHY_SEQ_RD_WR_DATA1_P0
# PHYW.PHYX.SYNTHX.D3SIDEA.SEQX.U_SEQ_APB.RD_WR_DATA0_L2
scom 0x8000c40(0,1)0301143f {
bits , scom_data , expr ; # beat 12345678
- 48:63 , 0x0000 , (def_is_sim) ; # to match dials
+# 0:47 , 0x000000000000, any ; # reserved
+# 48:63 , 0x0000 , (def_is_sim) ; # to match dials
48:63 , 0x5555 , any ; # MPR_PATTERN_BIT of 0F0F0F0F pattern
# 48:63 , 0xD896 , any ; # 1st half-nibble of EA0CA653 pattern
}
-# DPHY01_DDRPHY_SEQ_RD_WR_DATA[0:1]_P1
+# DPHY01_DDRPHY_SEQ_RD_WR_DATA0_P1
+# DPHY01_DDRPHY_SEQ_RD_WR_DATA1_P1
scom 0x8001c40(0,1)0301143f {
bits , scom_data , expr ; # beat 12345678
- 48:63 , 0x0000 , (def_is_sim) ; # to match dials
+# 0:47 , 0x000000000000, any ; # reserved
+# 48:63 , 0x0000 , (def_is_sim) ; # to match dials
48:63 , 0x5555 , any ; # MPR_PATTERN_BIT of 0F0F0F0F pattern
# 48:63 , 0xCD03 , any ; # 2st half-nibble of EA0CA653 pattern
}
@@ -1750,117 +2655,6 @@ scom 0x8001c40(0,1)0301143f {
#
#-------------------------------------------------------------------------------
-# DDR Vref Output Driver Control register default=0, output to DIMM
-#
-# ATTR_EFF_DRAM_WR_VREF DDR3 = [420, 425, 430, ... 575]
-# Note: NOT valid for DDR4.
-#
-# Vref driven to the DIMM(s) in 0.5% increments from 0.420 to 0.575.
-# Example: VDD=1.5V(nom DDR3), ATTR_EFF_DRAM_WR_VREF = 500,
-# Vref = VDD * ATTR_EFF_DRAM_WR_VREF/1000 = 0.750 V
-#
-# sign bit, VREFDQ[0:3]D
-# 01111 = 575+ 01110 = 535 10000 = 495 10001 = 455
-# 00111 = 570 00110 = 530 11000 = 490 11001 = 450
-# 01011 = 565 01010 = 525 10100 = 485 10101 = 445
-# 00011 = 560 00010 = 520 11100 = 480 11101 = 440
-# 01101 = 555 01100 = 515 10010 = 475 10011 = 435
-# 00101 = 550 00100 = 510 11010 = 470 11011 = 430
-# 01001 = 545 01000 = 505 10110 = 465 10111 = 425
-# 00001 = 540 00000 = 500* 11110 = 460 11111 = 420-
-#
-# [01:23] [0:1]
-# DPHY01_DDRPHY_PC_VREF_DRV_CONTROL_P0 0x015 0x8000c0150301143f
-scom 0x8000c0150301143f {
- bits , scom_data , expr ;
- 48 , 0b1 , (ATTR_EFF_DRAM_WR_VREF < 500) ; # VREFDQ0 sign bit
- 48 , 0b0 , (ATTR_EFF_DRAM_WR_VREF >= 500) ; # VREFDQ0 sign bit
- # VREFDQ0D bit enables
- 49:52 , 0xF , ((ATTR_EFF_DRAM_WR_VREF == 575) || (ATTR_EFF_DRAM_WR_VREF == 420)) ;
- 49:52 , 0x7 , ((ATTR_EFF_DRAM_WR_VREF == 570) || (ATTR_EFF_DRAM_WR_VREF == 425)) ;
- 49:52 , 0xB , ((ATTR_EFF_DRAM_WR_VREF == 565) || (ATTR_EFF_DRAM_WR_VREF == 430)) ;
- 49:52 , 0x3 , ((ATTR_EFF_DRAM_WR_VREF == 560) || (ATTR_EFF_DRAM_WR_VREF == 435)) ;
- 49:52 , 0xD , ((ATTR_EFF_DRAM_WR_VREF == 555) || (ATTR_EFF_DRAM_WR_VREF == 440)) ;
- 49:52 , 0x5 , ((ATTR_EFF_DRAM_WR_VREF == 550) || (ATTR_EFF_DRAM_WR_VREF == 445)) ;
- 49:52 , 0x9 , ((ATTR_EFF_DRAM_WR_VREF == 545) || (ATTR_EFF_DRAM_WR_VREF == 450)) ;
- 49:52 , 0x1 , ((ATTR_EFF_DRAM_WR_VREF == 540) || (ATTR_EFF_DRAM_WR_VREF == 455)) ;
- 49:52 , 0xE , ((ATTR_EFF_DRAM_WR_VREF == 535) || (ATTR_EFF_DRAM_WR_VREF == 460)) ;
- 49:52 , 0x6 , ((ATTR_EFF_DRAM_WR_VREF == 530) || (ATTR_EFF_DRAM_WR_VREF == 465)) ;
- 49:52 , 0xA , ((ATTR_EFF_DRAM_WR_VREF == 525) || (ATTR_EFF_DRAM_WR_VREF == 470)) ;
- 49:52 , 0x2 , ((ATTR_EFF_DRAM_WR_VREF == 520) || (ATTR_EFF_DRAM_WR_VREF == 475)) ;
- 49:52 , 0xC , ((ATTR_EFF_DRAM_WR_VREF == 515) || (ATTR_EFF_DRAM_WR_VREF == 480)) ;
- 49:52 , 0x4 , ((ATTR_EFF_DRAM_WR_VREF == 510) || (ATTR_EFF_DRAM_WR_VREF == 485)) ;
- 49:52 , 0x8 , ((ATTR_EFF_DRAM_WR_VREF == 505) || (ATTR_EFF_DRAM_WR_VREF == 490)) ;
- 49:52 , 0x0 , ((ATTR_EFF_DRAM_WR_VREF == 500) || (ATTR_EFF_DRAM_WR_VREF == 495)) ;
- 49:52 , 0b0000 , any ; # VREFDQ0D bit enables
- 53 , 0b1 , (ATTR_EFF_DRAM_WR_VREF < 500) ; # VREFDQ1 sign bit
- 53 , 0b0 , (ATTR_EFF_DRAM_WR_VREF >= 500) ; # VREFDQ1 sign bit
- # VREFDQ1D bit enables
- 54:57 , 0xF , ((ATTR_EFF_DRAM_WR_VREF == 575) || (ATTR_EFF_DRAM_WR_VREF == 420)) ;
- 54:57 , 0x7 , ((ATTR_EFF_DRAM_WR_VREF == 570) || (ATTR_EFF_DRAM_WR_VREF == 425)) ;
- 54:57 , 0xB , ((ATTR_EFF_DRAM_WR_VREF == 565) || (ATTR_EFF_DRAM_WR_VREF == 430)) ;
- 54:57 , 0x3 , ((ATTR_EFF_DRAM_WR_VREF == 560) || (ATTR_EFF_DRAM_WR_VREF == 435)) ;
- 54:57 , 0xD , ((ATTR_EFF_DRAM_WR_VREF == 555) || (ATTR_EFF_DRAM_WR_VREF == 440)) ;
- 54:57 , 0x5 , ((ATTR_EFF_DRAM_WR_VREF == 550) || (ATTR_EFF_DRAM_WR_VREF == 445)) ;
- 54:57 , 0x9 , ((ATTR_EFF_DRAM_WR_VREF == 545) || (ATTR_EFF_DRAM_WR_VREF == 450)) ;
- 54:57 , 0x1 , ((ATTR_EFF_DRAM_WR_VREF == 540) || (ATTR_EFF_DRAM_WR_VREF == 455)) ;
- 54:57 , 0xE , ((ATTR_EFF_DRAM_WR_VREF == 535) || (ATTR_EFF_DRAM_WR_VREF == 460)) ;
- 54:57 , 0x6 , ((ATTR_EFF_DRAM_WR_VREF == 530) || (ATTR_EFF_DRAM_WR_VREF == 465)) ;
- 54:57 , 0xA , ((ATTR_EFF_DRAM_WR_VREF == 525) || (ATTR_EFF_DRAM_WR_VREF == 470)) ;
- 54:57 , 0x2 , ((ATTR_EFF_DRAM_WR_VREF == 520) || (ATTR_EFF_DRAM_WR_VREF == 475)) ;
- 54:57 , 0xC , ((ATTR_EFF_DRAM_WR_VREF == 515) || (ATTR_EFF_DRAM_WR_VREF == 480)) ;
- 54:57 , 0x4 , ((ATTR_EFF_DRAM_WR_VREF == 510) || (ATTR_EFF_DRAM_WR_VREF == 485)) ;
- 54:57 , 0x8 , ((ATTR_EFF_DRAM_WR_VREF == 505) || (ATTR_EFF_DRAM_WR_VREF == 490)) ;
- 54:57 , 0x0 , ((ATTR_EFF_DRAM_WR_VREF == 500) || (ATTR_EFF_DRAM_WR_VREF == 495)) ;
- 54:57 , 0b0000 , any ;
-# 58:63 , 0b000000 , any ; # reserved
-
-# sign bit, VREFDQ[0:3]D
-# 01111 = 575+ 01110 = 535 10000 = 495 10001 = 455
-# 00111 = 570 00110 = 530 11000 = 490 11001 = 450
-# 01011 = 565 01010 = 525 10100 = 485 10101 = 445
-# 00011 = 560 00010 = 520 11100 = 480 11101 = 440
-# 01101 = 555 01100 = 515 10010 = 475 10011 = 435
-# 00101 = 550 00100 = 510 11010 = 470 11011 = 430
-# 01001 = 545 01000 = 505 10110 = 465 10111 = 425
-# 00001 = 540 00000 = 500* 11110 = 460 11111 = 420-
-#
-# D0SIGN, D0ENA, D1SIGN, D1ENA
-# 48:57 , 0x1EF , (ATTR_EFF_DRAM_WR_VREF == 575) ; # 0b 0 1111 0 1111 , 0b01 1110 1111
-# 48:57 , 0x0E7 , (ATTR_EFF_DRAM_WR_VREF == 570) ; # 0b 0 0111 0 0111 , 0b00 1110 0111
-# 48:57 , 0x16B , (ATTR_EFF_DRAM_WR_VREF == 565) ; # 0b 0 1011 0 1011 , 0b01 0110 1011
-# 48:57 , 0x063 , (ATTR_EFF_DRAM_WR_VREF == 560) ; # 0b 0 0011 0 0011 , 0b00 0110 0011
-# 48:57 , 0x1AD , (ATTR_EFF_DRAM_WR_VREF == 555) ; # 0b 0 1101 0 1101 , 0b01 1010 1101
-# 48:57 , 0x0A5 , (ATTR_EFF_DRAM_WR_VREF == 550) ; # 0b 0 0101 0 0101 , 0b00 1010 0101
-# 48:57 , 0x129 , (ATTR_EFF_DRAM_WR_VREF == 545) ; # 0b 0 1001 0 1001 , 0b01 0010 1001
-# 48:57 , 0x029 , (ATTR_EFF_DRAM_WR_VREF == 540) ; # 0b 0 0001 0 0001 , 0b00 0010 0001
-# 48:57 , 0x1CE , (ATTR_EFF_DRAM_WR_VREF == 535) ; # 0b 0 1110 0 1110 , 0b01 1100 1110
-# 48:57 , 0x0C6 , (ATTR_EFF_DRAM_WR_VREF == 530) ; # 0b 0 0110 0 0110 , 0b00 1100 0110
-# 48:57 , 0x14A , (ATTR_EFF_DRAM_WR_VREF == 525) ; # 0b 0 1010 0 1010 , 0b01 0100 1010
-# 48:57 , 0x042 , (ATTR_EFF_DRAM_WR_VREF == 520) ; # 0b 0 0010 0 0010 , 0b00 0100 0010
-# 48:57 , 0x01C , (ATTR_EFF_DRAM_WR_VREF == 515) ; # 0b 0 1100 0 1100 , 0b01 1000 1100
-# 48:57 , 0x004 , (ATTR_EFF_DRAM_WR_VREF == 510) ; # 0b 0 0100 0 0100 , 0b00 1000 0100
-# 48:57 , 0x108 , (ATTR_EFF_DRAM_WR_VREF == 505) ; # 0b 0 1000 0 1000 , 0b01 0000 1000
-# 48:57 , 0x000 , (ATTR_EFF_DRAM_WR_VREF == 500) ; # 0b 0 0000 0 0000 , 0b00 0000 0000
-# 48:57 , 0x210 , (ATTR_EFF_DRAM_WR_VREF == 495) ; # 0b 1 0000 1 0000 , 0b10 0001 0000
-# 48:57 , 0x318 , (ATTR_EFF_DRAM_WR_VREF == 490) ; # 0b 1 1000 1 1000 , 0b11 0001 1000
-# 48:57 , 0x294 , (ATTR_EFF_DRAM_WR_VREF == 485) ; # 0b 1 0100 1 0100 , 0b10 1001 0100
-# 48:57 , 0x39C , (ATTR_EFF_DRAM_WR_VREF == 480) ; # 0b 1 1100 1 1100 , 0b11 1001 1100
-# 48:57 , 0x252 , (ATTR_EFF_DRAM_WR_VREF == 475) ; # 0b 1 0010 1 0010 , 0b10 0101 0010
-# 48:57 , 0x35A , (ATTR_EFF_DRAM_WR_VREF == 470) ; # 0b 1 1010 1 1010 , 0b11 0101 1010
-# 48:57 , 0x2D6 , (ATTR_EFF_DRAM_WR_VREF == 465) ; # 0b 1 0110 1 0110 , 0b10 1101 0110
-# 48:57 , 0x3DE , (ATTR_EFF_DRAM_WR_VREF == 460) ; # 0b 1 1110 1 1110 , 0b11 1101 1110
-# 48:57 , 0x231 , (ATTR_EFF_DRAM_WR_VREF == 455) ; # 0b 1 0001 1 0001 , 0b10 0011 0001
-# 48:57 , 0x339 , (ATTR_EFF_DRAM_WR_VREF == 450) ; # 0b 1 1001 1 1001 , 0b11 0011 1001
-# 48:57 , 0x2B5 , (ATTR_EFF_DRAM_WR_VREF == 445) ; # 0b 1 0101 1 0101 , 0b10 1011 0101
-# 48:57 , 0x3BD , (ATTR_EFF_DRAM_WR_VREF == 440) ; # 0b 1 1101 1 1101 , 0b11 1011 1101
-# 48:57 , 0x273 , (ATTR_EFF_DRAM_WR_VREF == 435) ; # 0b 1 0011 1 0011 , 0b10 0111 0011
-# 48:57 , 0x37B , (ATTR_EFF_DRAM_WR_VREF == 430) ; # 0b 1 1011 1 1011 , 0b11 0111 1011
-# 48:57 , 0x2F7 , (ATTR_EFF_DRAM_WR_VREF == 425) ; # 0b 1 0111 1 0111 , 0b10 1111 0111
-# 48:57 , 0x3FF , (ATTR_EFF_DRAM_WR_VREF == 420) ; # 0b 1 1111 1 1111 , 0b11 1111 1111
-}
-
-#-------------------------------------------------------------------------------
# ODT Default Configuration Register
#
# Determines the ODT values sent to all ranks during MRS commands
@@ -1887,24 +2681,28 @@ scom 0x8000c0150301143f {
scom 0x8000C40E0301143F {
# ODT 01234567
bits , scom_data ; # DIMM0, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[0][0][0] ; # when Read of Rank0
56:63 , ATTR_EFF_ODT_RD[0][0][1] ; # when Read of Rank1
}
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG1_P0
scom 0x8000C40F0301143F {
bits , scom_data ; # DIMM0, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[0][0][2] ; # when Read of Rank2
56:63 , ATTR_EFF_ODT_RD[0][0][3] ; # when Read of Rank3
}
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG2_P0
scom 0x8000C4100301143F {
bits , scom_data ; # DIMM1, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[0][1][0] ; # when Read of Rank4
56:63 , ATTR_EFF_ODT_RD[0][1][1] ; # when Read of Rank5
}
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG3_P0
scom 0x8000C4110301143F {
bits , scom_data ; # DIMM1, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[0][1][2] ; # when Read of Rank6
56:63 , ATTR_EFF_ODT_RD[0][1][3] ; # when Read of Rank7
}
@@ -1912,24 +2710,28 @@ scom 0x8000C4110301143F {
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG0_P1
scom 0x8001C40E0301143F {
bits , scom_data ; # DIMM2, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[1][0][0] ; # when Read of Rank0
56:63 , ATTR_EFF_ODT_RD[1][0][1] ; # when Read of Rank1
}
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG1_P1
scom 0x8001C40F0301143F {
bits , scom_data ; # DIMM2, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[1][0][2] ; # when Read of Rank2
56:63 , ATTR_EFF_ODT_RD[1][0][3] ; # when Read of Rank3
}
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG2_P1
scom 0x8001C4100301143F {
bits , scom_data ; # DIMM3, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[1][1][0] ; # when Read of Rank4
56:63 , ATTR_EFF_ODT_RD[1][1][1] ; # when Read of Rank5
}
# DPHY01_DDRPHY_SEQ_ODT_RD_CONFIG3_P1
scom 0x8001C4110301143F {
bits , scom_data ; # DIMM3, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_RD[1][1][2] ; # when Read of Rank6
56:63 , ATTR_EFF_ODT_RD[1][1][3] ; # when Read of Rank7
}
@@ -1943,24 +2745,28 @@ scom 0x8001C4110301143F {
# PHYW.PHYX.SYNTHX.D3SIDEA.SEQX.U_SEQ_APB.ODT_WR_CONFIG0_L2
scom 0x8000C40A0301143F {
bits , scom_data ; # DIMM0, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[0][0][0] ; # when write of Rank0
56:63 , ATTR_EFF_ODT_WR[0][0][1] ; # when write of Rank1
}
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG1_P0
scom 0x8000C40B0301143F {
bits , scom_data ; # DIMM0, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[0][0][2] ; # when write of Rank2
56:63 , ATTR_EFF_ODT_WR[0][0][3] ; # when write of Rank3
}
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG2_P0
scom 0x8000C40C0301143F {
bits , scom_data ; # DIMM1, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[0][1][0] ; # when write of Rank4
56:63 , ATTR_EFF_ODT_WR[0][1][1] ; # when write of Rank5
}
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG3_P0
scom 0x8000C40D0301143F {
bits , scom_data ; # DIMM1, Port0
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[0][1][2] ; # when write of Rank6
56:63 , ATTR_EFF_ODT_WR[0][1][3] ; # when write of Rank7
}
@@ -1968,24 +2774,28 @@ scom 0x8000C40D0301143F {
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG0_P1
scom 0x8001C40A0301143F {
bits , scom_data ; # DIMM2, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[1][0][0] ; # when write of Rank0
56:63 , ATTR_EFF_ODT_WR[1][0][1] ; # when write of Rank1
}
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG1_P1
scom 0x8001C40B0301143F {
bits , scom_data ; # DIMM2, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[1][0][2] ; # when write of Rank2
56:63 , ATTR_EFF_ODT_WR[1][0][3] ; # when write of Rank3
}
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG2_P1
scom 0x8001C40C0301143F {
bits , scom_data ; # DIMM3, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[1][1][0] ; # when write of Rank4
56:63 , ATTR_EFF_ODT_WR[1][1][1] ; # when write of Rank5
}
# DPHY01_DDRPHY_SEQ_ODT_WR_CONFIG3_P1
scom 0x8001C40D0301143F {
bits , scom_data ; # DIMM3, Port1
+# 0:47 , 0x000000000000 ; # reserved
48:55 , ATTR_EFF_ODT_WR[1][1][2] ; # when write of Rank6
56:63 , ATTR_EFF_ODT_WR[1][1][3] ; # when write of Rank7
}
@@ -1995,46 +2805,13 @@ scom 0x8001C40D0301143F {
#
# DPHY01_DDRPHY_PC_MR0_PRI_RP0_P0 0x01C 0x8000c01c0301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG28_RP0_L2
-#
-# ~~~~~~~~~~~~ Mode Register settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# -- MR0 -- DDRPHY_PC_MR0_PRI_RP[0:3]_P[0:1] 0x01C 0x8000c01c0301143f
-# ATTR_EFF_DRAM_DLL_PPD # 0=slow exit, 1=fast exit
-# ATTR_EFF_DRAM_WR
-# ATTR_EFF_DRAM_DLL_RESET # 0=no, 1=yes
-# ATTR_EFF_DRAM_TM # 0=normal, 1= Test
-# ATTR_EFF_DRAM_CL
-# ATTR_EFF_DRAM_RBT # 0=sequential, 1=interleave
-# ATTR_EFF_DRAM_BL # 0=BL8, OTF=1, BC4=2
-# -- MR1 -- DDRPHY_PC_MR1_PRI_RP[0:3]_P[0:1] 0x01D 0x8000c01d0301143f
-# ATTR_EFF_DRAM_OUTPUT_BUFFER # 0=enable, 1=disable
-# ATTR_EFF_DRAM_TDQS # 0=disable, 1=enable
-# ATTR_EFF_DRAM_RTT_NOM [0..1][0..1][0..3] # 0, 20, 30, 34(DDR4), 40, 48(DDR4), 50, 80(DDR4), 120, 240(DDR4)
-# ATTR_EFF_DRAM_WR_LVL_ENABLE # 0=disable, 1=enable
-# ATTR_EFF_DRAM_RON [0..1][0..1] # 34, 40(DDR3)
-# ATTR_EFF_DRAM_AL # 0=disable, 1=CL-1, 2=CL-2
-# ATTR_EFF_DRAM_DLL_ENABLE # 0=enable 1=disable
-# -- MR2 -- DDRPHY_PC_MR2_PRI_RP[0:3]_P[0:1] 0x01E 0x8000c01e0301143f
-# ATTR_EFF_DRAM_RTT_WR [0..1][0..1][0..3] # 0, 60, 120
-# ATTR_EFF_DRAM_SRT # 0=normal, 1=extend
-# ATTR_EFF_DRAM_ASR # 0=SRT, 1=ASR
-# ATTR_EFF_DRAM_CWL
-# ATTR_EFF_DRAM_PASR # 0=full, 1=1st 1/2, 2=1st 1/4, 3=1st 1/8, 4=last 3/4, 5=last 1/2, 6=last 1/4, 7=last 1/8
-# -- MR3 -- DDRPHY_PC_MR3_PRI_RP[0:3]_P[0:1] 0x01F 0x8000c01f0301143f
-# ATTR_EFF_MPR_MODE # 0=disable, 1=enable
-# ATTR_EFF_MPR_LOC
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#
-# ATTR_EFF_DIMM_RCD_CNTL_WORD_0_15 [0..1][0..1] uint64
-#
-# RCD_LRDIM_CNTL_WORD0_15Q 0x000000dd
-# CWD=BA1,BA0,A4,A3 0:3=CWD0, 4:7=CWD1, 8:11=CWD2, etc.
-# last RCD or LRDIMM control word that was programmed using CCS.
# ---------------------------------------------------------------------------------------
-# PC Chip select ID configuration register default=0 !! need to set?
+# PC Chip select ID configuration register default=0 NEED to be programmed for DDR4/TSV dimms.
+# HERE MW
#
# This register controls the value of Chip Select (CS) signals not selected
-# by any of the PC Rank Pair registers during initial calibration.
+# by any of the PC Rank Pair registers during initial calibration for DDR4 / TSV dimms.
#
# DPHY01_DDRPHY_PC_CSID_CFG_P0 0x033 0x8000c0330301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG51_L2
@@ -2062,6 +2839,7 @@ scom 0x8001C40D0301143F {
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.RDDP18WRAP.RDDP18CNTL_MAC.DQSOFFSET_L2(0:6)
scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
# 48 , 0b0 , any ; # reserved
# 49:55 , 0b0010000 , (def_is_sim) ; # DQS_OFFSET
49:55 , def_dqs_offset , any ; # DQS_OFFSET, 7 bits
@@ -2090,6 +2868,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# _RP[0:3]_P[0:1]_[0:4], all instances and rank pairs via broadcast, both ports
# scom 0x800(0,1)3CFE0301143f { # _RP[0:3]_P[0:1]_[0:4]
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# 48:51 , 0x0 , any ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , any ; # DQ_WR_OFFSET_N1
# 56:59 , 0x0 , any ; # DQ_WR_OFFSET_N2
@@ -2098,6 +2877,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
#
# scom 0x80003C7E0301143f { # _RP0_P0_[0:4], rank pair 0, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2111,6 +2891,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# scom 0x80003D7E0301143f { # _RP1_P0_[0:4], rank pair 1, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2124,6 +2905,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# scom 0x80003E7E0301143f { # _RP2_P0_[0:4], rank pair 2, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2137,6 +2919,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# scom 0x80003F7E0301143f { # _RP3_P0_[0:4], rank pair 3, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2151,6 +2934,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# ===============================================================================
# scom 0x80013C7E0301143f { # _RP0_P1_[0:4], rank pair 0, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2164,6 +2948,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# scom 0x80013D7E0301143f { # _RP1_P1_[0:4], rank pair 1, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2177,6 +2962,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# scom 0x80013E7E0301143f { # _RP2_P1_[0:4], rank pair 2, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2190,6 +2976,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# scom 0x80013F7E0301143f { # _RP3_P1_[0:4], rank pair 3, all instances via broadcast
# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# ~~~~~~~~~~~~~~~ Port 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 48:51 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N0
# 52:55 , 0x0 , (def_is_mba01) ; # DQ_WR_OFFSET_N1
@@ -2203,7 +2990,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# }
# ---------------------------------------------------------------------------------------
-# DP18 Write Delay Value {0-23} Register default=0x0008 !! need to set this?
+# DP18 Write Delay Value {0-23} Register default=0x0008 !! set after characterization
#
# Attributes
# Read/Write via programming interface. Write via hardware.
@@ -2223,7 +3010,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
#
# ---------------------------------------------------------------------------------------
-# DP18 Read Delay Value {0-11} Register default=0x4040 !! need to set this?
+# DP18 Read Delay Value {0-11} Register default=0x4040 !! characterization req'd
#
# Attributes
# Read/Write via programming interface. Write via hardware. Each register holds the delay value
@@ -2241,7 +3028,7 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
#
# ---------------------------------------------------------------------------------------
-# DP18 Drift Limits Register default=0 !! need to set this?
+# DP18 Drift Limits Register default=0 !! set after characterization
#
# Description
# This register holds the limits for periodic drift of the data eye and the received strobe.
@@ -2249,6 +3036,8 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# DPHY01_DDRPHY_DP18_DRIFT_LIMITS_P0_0 0x00A 0x8000000a0301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.RDDP18WRAP.RDDP18CNTL_MAC.LIMITS_L2
#
+# min_rd_eye_size, max_dqs_drift
+# 0 disables check
# ---------------------------------------------------------------------------------------
# DP18 DQS Gate Delay Register default=0 !! need to set this?
@@ -2286,19 +3075,20 @@ scom 0x800(0,1)3C370301143f { # _P[0:1]_[0:4]
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG22_L2
scom 0x8000C0160301143F { # Port 0
bits , scom_data , expr ;
- 48 , 0b1 , (def_is_sim) ; # ENA_WR_LEVEL
- 49 , 0b0 , (def_is_sim) ; # ENA_INITIAL_PAT_WR, for custom pattern
- 50 , 0b1 , (def_is_sim) ; # ENA_DQS_ALIGN
- 51 , 0b1 , (def_is_sim) ; # ENA_RDCLK_ALIGN
+# 0:47 , 0x000000000000, any ; # reserved
+ 48 , 0b1 , any ; # ENA_WR_LEVEL
+ 49 , 0b0 , any ; # ENA_INITIAL_PAT_WR, for custom pattern
+ 50 , 0b1 , any ; # ENA_DQS_ALIGN
+ 51 , 0b1 , any ; # ENA_RDCLK_ALIGN
- 52 , 0b1 , (def_is_sim) ; # ENA_READ_CTR
- 53 , 0b1 , (def_is_sim) ; # ENA_WRITE_CTR
- 54 , 0b1 , (def_is_sim) ; # ENA_INITIAL_COARSE_WR
- 55 , 0b1 , (def_is_sim) ; # ENA_COARSE_RD
+ 52 , 0b1 , any ; # ENA_READ_CTR
+ 53 , 0b1 , any ; # ENA_WRITE_CTR
+ 54 , 0b1 , any ; # ENA_INITIAL_COARSE_WR
+ 55 , 0b1 , any ; # ENA_COARSE_RD
56 , 0b0 , any ; # ENA_CUSTOM_RD
57 , 0b0 , any ; # ENA_CUSTOM_WR
- 58 , 0b1 , (def_is_sim) ; # ABORT_ON_CAL_ERROR
+ 58 , 0b1 , any ; # ABORT_ON_CAL_ERROR
59 , 0b0 , any ; # ENA_DIGITAL_EYE
# ENA_RANK_GROUP[0:3], 4 bits
@@ -2315,6 +3105,7 @@ scom 0x8000C0160301143F { # Port 0
# DPHY01.DDRPHY_PC_INIT_CAL_CONFIG0_P1
scom 0x8001C0160301143F { # Port 1
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48 , 0b1 , (def_is_sim) ; # ENA_WR_LEVEL
49 , 0b0 , (def_is_sim) ; # ENA_INITIAL_PAT_WR, for custom pattern
50 , 0b1 , (def_is_sim) ; # ENA_DQS_ALIGN
@@ -2340,23 +3131,35 @@ scom 0x8001C0160301143F { # Port 1
# ---------------------------------------------------------------------------------------
# Initial calibration sequence Config1 register default=0
+# EFF_DRAM_TRFI
#
# Controls refreshes during calibration, and regular refresh interval.
-# !! Needed? Does a procedure do this?
-#
-# EFF_DRAM_TRFI
+# if DDR3/4 with custom pattern then need refresh since pattern written into memory
+#
+# REFRESH_CONTROL { 00 = Refresh commands are only sent at start of initial calibration,
+# based on the value in the .REFRESH_COUNT. field. Disables if count=0
+# 01 = Use the internal Refresh Interval timer to determine when refresh
+# commands are sent; allow refreshes to occur between calibration routines.
+# 10 = Reserved
+# 11 = Use the internal Refresh Interval timer to determine when refresh
+# commands should be sent; in addition to allowing refreshes commands to be
+# issued between calibration routines, also allow refreshes to interrupt each
+# calibration routine (as required). This is the recommended setting when
+# refreshes are required during initial calibration.
+# }
#
# DPHY01_DDRPHY_PC_INIT_CAL_CONFIG1_P0 0x017 0x8000c0170301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG23_L2
scom 0x800(0,1)C0170301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:51 , 0b0000 , any ; # REFRESH_COUNT, num of refreshes before cal
52:53 , 0b00 , any ; # REFRESH_CONTROL during initial calibration
54 , 0b0 , any ; # REFRESH_ALL_RANKS, during calibration
# 55:56 , 0b00 , any ; # reserved
# REFRESH_INTERVAL, defaults to 6 if value < 6, value*256=num clks between refreshes
# ATTR_EFF_DRAM_TRFI = refresh interval in clocks
- 57:63 , 0b0000000 , (def_is_sim) ; # match dials
+# 57:63 , 0b0000000 , (def_is_sim) ; # match dials
57:63 , (ATTR_EFF_DRAM_TRFI >> 8) , any ; # field needs refresh/256
}
@@ -2368,53 +3171,57 @@ scom 0x800(0,1)C0170301143F { # _P[0:1]
# DPHY01_DDRPHY_PC_PER_CAL_CONFIG_P0 0x00B 0x8000c00b0301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG11_L2
scom 0x8000C00B0301143F { # Port 0
- bits , scom_data , expr ;
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# PER_ENA_RANK_GROUP[0:3], 4 bits
- 48 , 0b1 , (def_val_prg0_p0) ; # enable primary rank group 0
- 48 , 0b0 , any ; # disable primary rank group 0
- 49 , 0b1 , (def_val_prg1_p0) ; # enable primary rank group 1
- 49 , 0b0 , any ; # disable primary rank group 1
- 50 , 0b1 , (def_val_prg2_p0) ; # enable primary rank group 2
- 50 , 0b0 , any ; # disable primary rank group 2
- 51 , 0b1 , (def_val_prg3_p0) ; # enable primary rank group 3
- 51 , 0b0 , any ; # disable primary rank group 3
-
- 52 , 0b1 , any ; # PER_ENA_ZCAL
- 53 , 0b1 , any ; # PER_ENA_SYSCLK_ALIGN
- 54 , 0b1 , any ; # ENA_PER_RDCLK_ALIGN
- 55 , 0b1 , any ; # ENA_PER_DQS_ALIGN
- 56 , 0b1 , any ; # ENA_PER_READ_CTR
- 57:58 , 0b00 , any ; # PER_NEXT_RANK_group
- 59 , 0b1 , any ; # FAST_SIM_PER_CNTR
- 60 , 0b0 , any ; # START_INIT_CAL
- 61 , 0b0 , any ; # START_PER_CAL
- 62 , 0b0 , any ; # ABORT_ON_ERR_EN
- 63 , 0b0 , any ; # ZCAL_UPDATE_MODE
+ 48 , 0b1 , (def_val_prg0_p0) ; # enable primary rank group 0
+ 48 , 0b0 , any ; # disable primary rank group 0
+ 49 , 0b1 , (def_val_prg1_p0) ; # enable primary rank group 1
+ 49 , 0b0 , any ; # disable primary rank group 1
+ 50 , 0b1 , (def_val_prg2_p0) ; # enable primary rank group 2
+ 50 , 0b0 , any ; # disable primary rank group 2
+ 51 , 0b1 , (def_val_prg3_p0) ; # enable primary rank group 3
+ 51 , 0b0 , any ; # disable primary rank group 3
+
+ 52 , 0b1 , any ; # PER_ENA_ZCAL
+ 53 , 0b1 , any ; # PER_ENA_SYSCLK_ALIGN
+ 54 , 0b1 , any ; # ENA_PER_RDCLK_ALIGN
+ 55 , 0b1 , any ; # ENA_PER_DQS_ALIGN
+ 56 , 0b1 , any ; # ENA_PER_READ_CTR
+ 57:58 , 0b00 , any ; # PER_NEXT_RANK_PAIR
+ 59 , 0b1 , (def_FAST_SIM_PC==1) ; # FAST_SIM_PER_CNTR
+ 59 , 0b0 , (def_FAST_SIM_PC==0) ; # FAST_SIM_PER_CNTR
+ 60 , 0b0 , any ; # START_INIT_CAL
+ 61 , 0b0 , any ; # START_PER_CAL
+ 62 , 0b0 , any ; # ABORT_ON_ERR_EN
+ 63 , 0b0 , any ; # ZCAL_UPDATE_MODE
}
# DPHY01.DDRPHY_PC_PER_CAL_CONFIG_P1
scom 0x8001C00B0301143F { # Port 1
- bits , scom_data , expr ;
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# PER_ENA_RANK_GROUP[0:3], 4 bits
- 48 , 0b1 , (def_val_prg0_p1) ; # enable primary rank group 0
- 48 , 0b0 , any ; # disable primary rank group 0
- 49 , 0b1 , (def_val_prg1_p1) ; # enable primary rank group 1
- 49 , 0b0 , any ; # disable primary rank group 1
- 50 , 0b1 , (def_val_prg2_p1) ; # enable primary rank group 2
- 50 , 0b0 , any ; # disable primary rank group 2
- 51 , 0b1 , (def_val_prg3_p1) ; # enable primary rank group 3
- 51 , 0b0 , any ; # disable primary rank group 3
-
- 52 , 0b1 , any ; # PER_ENA_ZCAL
- 53 , 0b1 , any ; # PER_ENA_SYSCLK_ALIGN
- 54 , 0b1 , any ; # ENA_PER_RDCLK_ALIGN
- 55 , 0b1 , any ; # ENA_PER_DQS_ALIGN
- 56 , 0b1 , any ; # ENA_PER_READ_CTR
- 57:58 , 0b00 , any ; # PER_NEXT_RANK_PAIR
- 59 , 0b1 , any ; # FAST_SIM_PER_CNTR
- 60 , 0b0 , any ; # START_INIT_CAL
- 61 , 0b0 , any ; # START_PER_CAL
- 62 , 0b0 , any ; # ABORT_ON_ERR_EN
- 63 , 0b0 , any ; # ZCAL_UPDATE_MODE
+ 48 , 0b1 , (def_val_prg0_p1) ; # enable primary rank group 0
+ 48 , 0b0 , any ; # disable primary rank group 0
+ 49 , 0b1 , (def_val_prg1_p1) ; # enable primary rank group 1
+ 49 , 0b0 , any ; # disable primary rank group 1
+ 50 , 0b1 , (def_val_prg2_p1) ; # enable primary rank group 2
+ 50 , 0b0 , any ; # disable primary rank group 2
+ 51 , 0b1 , (def_val_prg3_p1) ; # enable primary rank group 3
+ 51 , 0b0 , any ; # disable primary rank group 3
+
+ 52 , 0b1 , any ; # PER_ENA_ZCAL
+ 53 , 0b1 , any ; # PER_ENA_SYSCLK_ALIGN
+ 54 , 0b1 , any ; # ENA_PER_RDCLK_ALIGN
+ 55 , 0b1 , any ; # ENA_PER_DQS_ALIGN
+ 56 , 0b1 , any ; # ENA_PER_READ_CTR
+ 57:58 , 0b00 , any ; # PER_NEXT_RANK_PAIR
+ 59 , 0b1 , (def_FAST_SIM_PC==1) ; # FAST_SIM_PER_CNTR
+ 59 , 0b0 , (def_FAST_SIM_PC==0) ; # FAST_SIM_PER_CNTR
+ 60 , 0b0 , any ; # START_INIT_CAL
+ 61 , 0b0 , any ; # START_PER_CAL
+ 62 , 0b0 , any ; # ABORT_ON_ERR_EN
+ 63 , 0b0 , any ; # ZCAL_UPDATE_MODE
}
# ---------------------------------------------------------------------------------------
@@ -2436,10 +3243,9 @@ scom 0x8001C00B0301143F { # Port 1
# DPHY01_DDRPHY_PC_RELOAD_VALUE0_P0 0x005 0x8000c0050301143f
scom 0x800(0,1)C0050301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48 , 0b0 , any ; # PERIODIC_CAL_REQ_EN
49:63 , 0x0001 , any ; # PERIODIC_RELOAD_VALUE0
-# !! problem with right alignment that needs to be 0x0002 instead of 0x0001
-# 49:63 , 0x0002 , any ; # PERIODIC_RELOAD_VALUE0
}
# ---------------------------------------------------------------------------------------
@@ -2464,23 +3270,23 @@ scom 0x800(0,1)C0050301143F { # _P[0:1]
# DPHY01_DDRPHY_PC_CAL_TIMER_RELOAD_VALUE_P0 0x008 0x8000c0080301143f
# PHYE.PHYX.SYNTHX.D3SIDEA.PCX.REG08_L2
scom 0x800(0,1)c0080301143f { # _P[0:1]
- bits , scom_data , expr ; # must be >= 2...
- 48:63 , 0x0000 , (def_is_sim) ; # match dials
-# need to fix...
-# 48:63 , ((ATTR_EFF_MEMCAL_INTERVAL/196605)+1) , any ; # FAST_SIM_PER_CNTR=0
-# 48:63 , ((ATTR_EFF_MEMCAL_INTERVAL/765)+1) , any ; # FAST_SIM_PER_CNTR=1
- 48:63 , 0x01D1 , any ; # 464 = 114ms @ 1600MHz
+ bits , scom_data , expr ; # must be >= 2...
+# 0:47 , 0x000000000000 , any ; # reserved
+# 48:63 , 0x0000 , (def_is_sim) ; # match dials
+ 48:63 , ((ATTR_EFF_MEMCAL_INTERVAL/196605)+1) , (def_FAST_SIM_PC==0) ; # FAST_SIM_PER_CNTR=0
+ 48:63 , ((ATTR_EFF_MEMCAL_INTERVAL/765)+1) , (def_FAST_SIM_PC==1) ; # FAST_SIM_PER_CNTR=1
+# 48:63 , 0x01D1 , any ; # 464 = 114ms @ 1600MHz
}
# ---------------------------------------------------------------------------------------
# Periodic ZQcal configuration register default=0
#
-# DPHY01.DDRPHY_PC_PER_ZCAL_CONFIG_P0 from (alias spydef)
# DPHY01_DDRPHY_PC_PER_ZCAL_CONFIG_P0 0x00F 0x8000c00f0301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG15_L2
scom 0x8000C00F0301143F { # Port0
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# PER_ZCAL_ENA_RANK for ranks [0:7]
48:51 , 0b1000 , (ATTR_EFF_NUM_RANKS_PER_DIMM[0][0] == 1) ; # dimm0 = 1 rank
48:51 , 0b1100 , (ATTR_EFF_NUM_RANKS_PER_DIMM[0][0] == 2) ; # dimm0 = 2 rank
@@ -2496,9 +3302,11 @@ scom 0x8000C00F0301143F { # Port0
56:58 , 0b000 , any ;
# START_PER_ZCAL
59 , 0b0 , any ;
+# 60:63 , 0x0 , any ; reserved
}
scom 0x8001C00F0301143F { # Port1
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# PER_ZCAL_ENA_RANK for ranks [0:7]
48:51 , 0b1000 , (ATTR_EFF_NUM_RANKS_PER_DIMM[1][0] == 1) ; # dimm0 = 1 rank
48:51 , 0b1100 , (ATTR_EFF_NUM_RANKS_PER_DIMM[1][0] == 2) ; # dimm0 = 2 rank
@@ -2514,6 +3322,7 @@ scom 0x8001C00F0301143F { # Port1
56:58 , 0b000 , any ;
# START_PER_ZCAL
59 , 0b0 , any ;
+# 60:63 , 0x0 , any ; reserved
}
# ---------------------------------------------------------------------------------------
@@ -2535,51 +3344,66 @@ scom 0x8001C00F0301143F { # Port1
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG09_L2
scom 0x8000c0090301143f {
bits , scom_data , expr ; # must be >= 2...
-# fix needed from Anuwat to set the attribute value...
-# 48:63 , ((ATTR_EFF_ZQCAL_INTERVAL/196605)+1) , (SYS.ATTR_IS_SIMULATION==0) ; # FAST_SIM_PER_CNTR=0
-# 48:63 , ((ATTR_EFF_ZQCAL_INTERVAL/765)+1) , any ; # FAST_SIM_PER_CNTR=1
- 48:63 , 0x002E , any ; # 46 = 11ms @ 1600MHz
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:63 , ((ATTR_EFF_ZQCAL_INTERVAL/196605)+1) , (def_FAST_SIM_PC==0) ; # FAST_SIM_PER_CNTR=0
+ 48:63 , ((ATTR_EFF_ZQCAL_INTERVAL/765)+1) , (def_FAST_SIM_PC==1) ; # FAST_SIM_PER_CNTR=1
+# 48:63 , 0x002E , any ; # 46 = 11ms @ 1600MHz
}
# ---------------------------------------------------------------------------------------
-# DPHY01 PC Power Down 1 default=0
+# DPHY01 PC Power Down 1 default=0 !! need to set this?
#
-# !! need to set this?
# This register provides control of the power down modes of the DDR PHY.
#
# DPHY01_DDRPHY_PC_POWERDOWN_1_P0 0x010 0x8000c0100301143f
+#
+# asking Ken...
-
-# PC Rank Group Register
-# DDRPHY_PC_RANK_GROUP PC 0x011
-# This register provides control of the rank groups.
-# ADDR_MIRROR_RP0_PRI
-# ADDR_MIRROR_RP0_SEC
-# ADDR_MIRROR_RP1_PRI
-# ADDR_MIRROR_RP1_SEC
-# ADDR_MIRROR_RP2_PRI
-# ADDR_MIRROR_RP2_SEC
-# ADDR_MIRROR_RP3_PRI
-# ADDR_MIRROR_RP3_SEC
-# RANK_GROUPING
-# ADDR_MIRROR_A3_A4
-# ADDR_MIRROR_A5_A6
-# ADDR_MIRROR_A7_A8
-# ADDR_MIRROR_A11_A13
-# ADDR_MIRROR_BA0_BA1
-# ADDR_MIRROR_BG0_BG1
-
+# ---------------------------------------------------------------------------------------
+# PC Rank Group Register no need to set since using RDIMMs
+#
+# This register provides control of mirrored address bits. Mainly? used for
+# UDIMMs?
+#
+# DPHY01_DDRPHY_PC_RANK_GROUP_P0 0x11 0x8000c0110301143f
+# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG17_L2
+#scom 0x8000c0110301143f {
+# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# 48 , 0b0 , any ; # ADDR_MIRROR_RP0_PRI
+# 49 , 0b0 , any ; # ADDR_MIRROR_RP0_SEC
+# 50 , 0b0 , any ; # ADDR_MIRROR_RP1_PRI
+# 51 , 0b0 , any ; # ADDR_MIRROR_RP1_SEC
+# 52 , 0b0 , any ; # ADDR_MIRROR_RP2_PRI
+# 53 , 0b0 , any ; # ADDR_MIRROR_RP2_SEC
+# 54 , 0b0 , any ; # ADDR_MIRROR_RP3_PRI
+# 55 , 0b0 , any ; # ADDR_MIRROR_RP3_SEC
+# 56:57 , 0b0 , any ; # RANK_GROUPING
+# 58 , 0b0 , any ; # ADDR_MIRROR_A3_A4
+# 59 , 0b0 , any ; # ADDR_MIRROR_A5_A6
+# 60 , 0b0 , any ; # ADDR_MIRROR_A7_A8
+# 61 , 0b0 , any ; # ADDR_MIRROR_A11_A13
+# 62 , 0b0 , any ; # ADDR_MIRROR_BA0_BA1
+# 63 , 0b0 , any ; # ADDR_MIRROR_BG0_BG1
+#}
+# ---------------------------------------------------------------------------------------
# PC Rank Group Extension Register
-# DDRPHY_PC_RANK_GROUP_EXT 0x035
-# ADDR_MIRROR_RP0_TER
-# ADDR_MIRROR_RP0_QUA
-# ADDR_MIRROR_RP1_TER
-# ADDR_MIRROR_RP1_QUA
-# ADDR_MIRROR_RP2_TER
-# ADDR_MIRROR_RP2_QUA
-# ADDR_MIRROR_RP3_TER
-# ADDR_MIRROR_RP3_QUA
-
+#
+# DPHY01_DDRPHY_PC_RANK_GROUP_EXT_P0 0x035 0x8000c0350301143f
+# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG53_L2
+#scom 0x8000c0350301143f {
+# bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# 48 , 0b0 , any ; # ADDR_MIRROR_RP0_TER
+# 49 , 0b0 , any ; # ADDR_MIRROR_RP0_QUA
+# 50 , 0b0 , any ; # ADDR_MIRROR_RP1_TER
+# 51 , 0b0 , any ; # ADDR_MIRROR_RP1_QUA
+# 52 , 0b0 , any ; # ADDR_MIRROR_RP2_TER
+# 53 , 0b0 , any ; # ADDR_MIRROR_RP2_QUA
+# 54 , 0b0 , any ; # ADDR_MIRROR_RP3_TER
+# 55 , 0b0 , any ; # ADDR_MIRROR_RP3_QUA
+# 56:63 , 0x00 , any ; # reserved
+#}
# ---------------------------------------------------------------------------------------
# Rank pair 0 configuration register default=0
@@ -2592,11 +3416,14 @@ scom 0x8000c0090301143f {
# ATTR_EFF_PRIMARY_RANK_GROUP{0:3}[0:1] CS, 255=invalid
# ATTR_EFF_SECONDARY_RANK_GROUP{0:3}[0:1] CS, 255=invalid
#
-# DPHY01.DDRPHY_PC_RANK_PAIR0_P0 from (alias spydef)
# DPHY01_DDRPHY_PC_RANK_PAIR0_P0 0x002 0x8000c0020301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG02_L2
scom 0x8000C0020301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+# possible way to simplify...
+# 48:51 , ((ATTR_EFF_PRIMARY_RANK_GROUP0[0]<<1) | 0x1) , (def_val_prg1_p1) ; # P1_RP1_PRI = 9
+# 48:51 , 0b0000 , any ; # P1_RP1_PRI invalid
48:50 , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]) , (def_val_prg0_p0) ; # P0_RP0_PRI
48:50 , 0b000 , any ; # P0_RP0_PRI
51 , 0b1 , (def_val_prg0_p0) ; # P0_RP0_PRI_V
@@ -2616,9 +3443,10 @@ scom 0x8000C0020301143F {
}
# -=-=-=-=-=-=-=- PC_RANK_PAIR0 Port 1 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-# DPHY01.DDRPHY_PC_RANK_PAIR0_P1 from (alias spydef)
+# DPHY01.DDRPHY_PC_RANK_PAIR0_P1
scom 0x8001C0020301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_PRIMARY_RANK_GROUP0[1]) , (def_val_prg0_p1) ; # P1_RP0_PRI
48:50 , 0b000 , any ; # P1_RP0_PRI invalid
51 , 0b1 , (def_val_prg0_p1) ; # P1_RP0_PRI_V
@@ -2627,8 +3455,6 @@ scom 0x8001C0020301143F {
52:54 , 0b000 , any ; # P1_RP0_SEC invalid
55 , 0b1 , (def_val_srg0_p1) ; # P1_RP0_SEC_V
55 , 0b0 , any ; # P1_RP0_SEC_V invalid
-# 56:59 , ((ATTR_EFF_PRIMARY_RANK_GROUP1[1]<<1) | 0x1) , (def_val_prg1_p1) ; # P1_RP1_PRI = 9
-# 56:59 , 0b0000 , any ; # P1_RP1_PRI invalid
56:58 , (ATTR_EFF_PRIMARY_RANK_GROUP1[1]) , (def_val_prg1_p1) ; # P1_RP1_PRI
56:58 , 0b000 , any ; # P1_RP1_PRI invalid
59 , 0b1 , (def_val_prg1_p1) ; # P1_RP1_PRI_V
@@ -2648,9 +3474,10 @@ scom 0x8001C0020301143F {
# ATTR_EFF_PRIMARY_RANK_GROUP{0:3}[0:1] CS, 255=invalid
# ATTR_EFF_SECONDARY_RANK_GROUP{0:3}[0:1] CS, 255=invalid
#
-# DPHY01.DDRPHY_PC_RANK_PAIR1_P0 from (alias spydef)
+# DPHY01.DDRPHY_PC_RANK_PAIR1_P0
scom 0x8000C0030301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]) , (def_val_prg2_p0) ; # P0_RP2_PRI
48:50 , 0b000 , any ; # P0_RP2_PRI invalid
51 , 0b1 , (def_val_prg2_p0) ; # P0_RP2_PRI_V
@@ -2670,9 +3497,10 @@ scom 0x8000C0030301143F {
}
# -=-=-=-=-=-=-=- PC_RANK_PAIR1 Port 1 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-# DPHY01.DDRPHY_PC_RANK_PAIR1_P1 from (alias spydef)
+# DPHY01.DDRPHY_PC_RANK_PAIR1_P1
scom 0x8001C0030301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_PRIMARY_RANK_GROUP2[1]) , (def_val_prg2_p1) ; # P1_RP2_PRI
48:50 , 0b000 , any ; # P1_RP2_PRI invalid
51 , 0b1 , (def_val_prg2_p1) ; # P1_RP2_PRI_V
@@ -2704,6 +3532,7 @@ scom 0x8001C0030301143F {
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG48_L2
scom 0x8000c0300301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_TERTIARY_RANK_GROUP0[0]) , (def_val_trg0_p0) ; # P0_RP0_TER
48:50 , 0b000 , any ; # P0_RP0_TER invalid
51 , 0b1 , (def_val_trg0_p0) ; # P0_RP0_TER_V
@@ -2726,6 +3555,7 @@ scom 0x8000c0300301143f {
# DPHY01.DDRPHY_PC_RANK_PAIR2_P1
scom 0x8001c0300301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_TERTIARY_RANK_GROUP0[1]) , (def_val_trg0_p1) ; # P1_RP0_TER
48:50 , 0b000 , any ; # P1_RP0_TER invalid
51 , 0b1 , (def_val_trg0_p1) ; # P1_RP0_TER_V
@@ -2757,6 +3587,7 @@ scom 0x8001c0300301143f {
# PHYW.PHYX.SYNTHX.D3SIDEA.PCX.REG49_L2
scom 0x8000c0310301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_TERTIARY_RANK_GROUP2[0]) , (def_val_trg2_p0) ; # P0_RP2_TER
48:50 , 0b000 , any ; # P0_RP2_TER invalid
51 , 0b1 , (def_val_trg2_p0) ; # P0_RP2_TER_V
@@ -2779,6 +3610,7 @@ scom 0x8000c0310301143f {
# DPHY01.DDRPHY_PC_RANK_PAIR3_P1
scom 0x8001c0310301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:50 , (ATTR_EFF_TERTIARY_RANK_GROUP2[1]) , (def_val_trg2_p1) ; # P1_RP2_TER
48:50 , 0b000 , any ; # P1_RP2_TER invalid
51 , 0b1 , (def_val_trg2_p1) ; # P1_RP2_TER_V
@@ -2800,18 +3632,31 @@ scom 0x8001c0310301143f {
# ---------------------------------------------------------------------------------------
# Read Control Configuration 0 default=0x0002
#
-# DPHY01.DDRPHY_RC_CONFIG0_P0 from (alias spydef)
-# DPHY01.DDRPHY_RC_CONFIG0_P1 from (alias spydef)
+# DPHY01.DDRPHY_RC_CONFIG0_P0
+# DPHY01.DDRPHY_RC_CONFIG0_P1
+#
+# num of tCK cycles = 300 + [(PER_REPEAT_COUNT + 1) * 600]
#
# DPHY01_DDRPHY_RC_CONFIG0_P0 0x000 0x8000c8000301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.RCX.RC_CONFIG0_L2
scom 0x800(0,1)C8000301143F { # _P[0:1]
bits , scom_data , expr ;
- # min GPO=5
+# 0:47 , 0x000000000000, any ; # reserved
+ #
+ # System_Delay = ( ( (ADR_DELAY - 64) +
+ # {wire delay from the PHY memory clock output to the DRAM module converted to units of 1/128th of a MEMINTCLKO clock cycle} +
+ # {delay of DQS at the memory module pin relative to memory clock at the memory module pin introduced by the memory module
+ # (that is, tDQSCK) converted to units of 1/128th of a MEMINTCLKO clock cycle} +
+ # {wire delay from the DRAM DQS output to the PHY converted to units of 1/128th of a MEMINTCLKO clock cycle}) / 128) +
+ # {number of pipeline stages in the addr/cmd path} +
+ # {number of pipeline stages in the read data path}
+ #
+ # min GPO = 5 + max(rndUp(System_delay)) - RLO + ADVANCE_RD_VALID + SPAM_EN
+ # max GPO = 11 if in 2:1, 13 if in 4:1
48:51 , 0b0101 , any ; # GLOBAL_PHY_OFFSET (GPO), 2:1 max=11, 4:1 max=13
- 52 , 0b0 , any ; # ADVANCE_RD_VALID
+ 52 , 0b0 , any ; # ADVANCE_RD_VALID ask Yuen
53 , 0b0 , any ; # ERS_MODE, reserved
- 54:56 , 0b000 , any ; # PER_REPEAT_COUNT
+ 54:56 , 0b000 , any ; # PER_REPEAT_COUNT, (value+1)=num bits per peridic cal
57 , 0b0 , any ; # SINGLE_BIT_MPR_RP0
58 , 0b0 , any ; # SINGLE_BIT_MPR_RP1
59 , 0b0 , any ; # SINGLE_BIT_MPR_RP2
@@ -2825,13 +3670,14 @@ scom 0x800(0,1)C8000301143F { # _P[0:1]
# ---------------------------------------------------------------------------------------
# Read Control Configuration 1 default=0x0000
#
-# DPHY01.DDRPHY_RC_CONFIG1_P0 from (alias spydef)
-# DPHY01.DDRPHY_RC_CONFIG1_P1 from (alias spydef)
+# DPHY01.DDRPHY_RC_CONFIG1_P0
+# DPHY01.DDRPHY_RC_CONFIG1_P1
#
# DPHY01_DDRPHY_RC_CONFIG1_P0 0x001 0x8000c8010301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.RCX.ITERATION_COUNT_L2
scom 0x800(0,1)C8010301143F { # _P[0:1]
bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
48:61 , 0b00000000000000 ; # OUTER_LOOP_CNT
# 62:63 , 0b00 ; # reserved
}
@@ -2839,14 +3685,15 @@ scom 0x800(0,1)C8010301143F { # _P[0:1]
# ---------------------------------------------------------------------------------------
# Read Control Configuration 2 default=0x4008
#
-# DPHY01.DDRPHY_RC_CONFIG2_P0 from (alias spydef)
-# DPHY01.DDRPHY_RC_CONFIG2_P1 from (alias spydef)
+# DPHY01.DDRPHY_RC_CONFIG2_P0
+# DPHY01.DDRPHY_RC_CONFIG2_P1
#
# DPHY01_DDRPHY_RC_CONFIG2_P0 0x002 0x8000c8020301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.RCX.RC_CONFIG2_L2
scom 0x800(0,1)C8020301143F { # _P[0:1]
bits , scom_data , expr ;
- 48:52 , 0b00000 , (def_is_sim) ; # CONSEQ_PASS sim value
+# 0:47 , 0x000000000000, any ; # reserved
+# 48:52 , 0b00000 , (def_is_sim) ; # CONSEQ_PASS sim value
48:52 , 0b00110 , (def_is_bl8) ; # CONSEQ_PASS 6 min for BL8
48:52 , 0b01100 , any ; # CONSEQ_PASS 12 min for BL4, or OTF
# 53:56 , 0b0000 , any ; # reserved
@@ -2860,24 +3707,24 @@ scom 0x800(0,1)C8020301143F { # _P[0:1]
# ---------------------------------------------------------------------------------------
# Read Control Configuration 3 default=0x0800
#
-# DPHY01.DDRPHY_RC_CONFIG3_P0 from (alias spydef)
-# DPHY01.DDRPHY_RC_CONFIG3_P1 from (alias spydef)
+# DPHY01.DDRPHY_RC_CONFIG3_P0
+# DPHY01.DDRPHY_RC_CONFIG3_P1
#
# DPHY01_DDRPHY_RC_CONFIG3_P0 0x007 0x8000c8070301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.RCX.RC_CONFIG3_L2(0:6),PHYW.PHYX.SYNTHX.D3SIDEA.RCX.DQSDQ_ENUM_COUNT_L2
scom 0x800(0,1)C8070301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# FINE_CAL_STEP_SIZE (000=1/128, 001=1/64, 010=3/128, 011=1/32...)
48:50 , 0b000 , any ; # 1/128
# COARSE_CAL_STEP_SIZE same as above but 8-16 reserved, but when DIGITAL_EYE_EN=1
# in DFT_DIG_EYE register, 51:52 reserved, 53=DIGEYE_16_NOT_1, 54= DIGEYE_REFRESH
- #51:54 , 0b0100 , (def_is_sim) ; # COARSE_CAL_STEP_SIZE = 4 = 5/128 # old 5/18
- #51:54 , 0b1100 , any ; # COARSE_CAL_STEP_SIZE # old 5/18
- 51:54 , 0b1010 , (def_is_sim) ; # COARSE_CAL_STEP_SIZE
- 51:54 , 0b0000 , any ; # COARSE_CAL_STEP_SIZE
+ 51:54 , 0b1010 , (def_is_sim) ; # COARSE_CAL_STEP_SIZE # old=4=5/128 (5/18)
+ 51:54 , 0b0000 , any ; # COARSE_CAL_STEP_SIZE = 1/128
55:56 , 0b00 , any ; # DQ_SEL_QUAD
57:59 , 0b000 , any ; # DQ_SEL_LANE
+# 60:63 , 0b0000 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
@@ -2889,19 +3736,23 @@ scom 0x800(0,1)C8070301143F { # _P[0:1]
# ---------------------------------------------------------------------------------------
# SEQ Configuration 0 Register default=0 !! need to review settings
#
-# DPHY01.DDRPHY_SEQ_CONFIG0_P0 from (alias spydef)
-# DPHY01.DDRPHY_SEQ_CONFIG0_P1 from (alias spydef)
+# DPHY01.DDRPHY_SEQ_CONFIG0_P0
+# DPHY01.DDRPHY_SEQ_CONFIG0_P1
#
# DPHY01_DDRPHY_SEQ_CONFIG0_P0 CTL 0x002 0x8000c4020301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.SEQX.U_SEQ_APB.MPR_PATTERN_DATA_L2
scom 0x800(0,1)C4020301143F { # _P[0:1]
bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
48 , 0b0 ; # MPR_PATTERN_BIT
49 , 0b0 ; # TWO_CYCLE_ADDR_EN (must be set to 0), need 1 in sim ? 2N
50:53 , 0b0000 ; # MR_MASK_EN (mode register[0:3] mask during calibration)
- 54 , 0b0 ; # PARITY_DLY (only for DDR4, DDR3 don't care)
+ 54 , 0b0 ; # DELAYED_PARITY (only for DDR4, DDR3 don't care)
55 , 0b0 ; # LRDIMM_CONTEXT
-# 56:63 , 0b00000000 ; # reserved
+ 56 , 0b0 ; # FORCE_RESERVED
+ 57 , 0b0 ; # HALT_ROTATION
+ 58 , 0b0 ; # FORCE_MPR
+# 59:63 , 0b00000 ; # reserved
}
# ---------------------------------------------------------------------------------------
@@ -2962,30 +3813,26 @@ scom 0x800(0,1)C4020301143F { # _P[0:1]
# 2259 = .8853ns 10.624 ns 14.16 ns 17 21.25 ns*
# 3200 0.625ns
#
-# DPHY01.DDRPHY_SEQ_MEM_TIMING_PARAM0_P0 from (alias spydef)
# [01:23] [0:2] [0:1]
# DPHY01_DDRPHY_SEQ_MEM_TIMING_PARAM0_P0 CTL 0x012 0x8000c4120301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.SEQX.U_SEQ_APB.MEM_TIMING_PARAM0_L2
scom 0x800(0,1)C4120301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# TMOD_CYCLES, DDR3=max(12nCK, 15ns), DDR4=max(24nCK, 15ns)
-# 48:51 , 0x7 , (def_is_sim) ; # match dials
- 48:51 , 0x4 , ((CEN.ATTR_MSS_FREQ <= 2133) && (def_is_ddr3)) ; # DDR3 && < 2133, 2^4 = 16clks
- 48:51 , 0x5 , ((CEN.ATTR_MSS_FREQ > 2133) && (def_is_ddr3)) ; # DDR3 && > 2133, 2^5 = 32clks
- 48:51 , 0x5 , ((CEN.ATTR_MSS_FREQ < 3200) && (def_is_ddr4)) ; # DDR4 && < 3200, 2^5 = 32clks
+ 48:51 , 0x4 , ((CEN.ATTR_MSS_FREQ <= 2133) && (def_is_ddr3)) ; # DDR3 && < 2133, 2^4 = 16clks
+ 48:51 , 0x5 , ((CEN.ATTR_MSS_FREQ > 2133) && (def_is_ddr3)) ; # DDR3 && > 2133, 2^5 = 32clks
+ 48:51 , 0x5 , ((CEN.ATTR_MSS_FREQ < 3200) && (def_is_ddr4)) ; # DDR4 && < 3200, 2^5 = 32clks
# TRCD_CYCLES
-# 52:55 , 0x7 , (def_is_sim) ; # match dials
52:55 , 0x4 , ((ATTR_EFF_DRAM_TRCD > 8) && (ATTR_EFF_DRAM_TRCD <= 16)) ; # 2^4 = 16 clks
52:55 , 0x3 , (ATTR_EFF_DRAM_TRCD <= 8) ; # 2^3 = 8 clks
52:55 , 0x5 , (ATTR_EFF_DRAM_TRCD > 16) ; # 2^5 = 32 clks
# TRP_CYCLES
-# 56:59 , 0x7 , (def_is_sim) ; # match dials
56:59 , 0x3 , (ATTR_EFF_DRAM_TRP < 8) ; # 2^3 = 8 clks
56:59 , 0x4 , ((ATTR_EFF_DRAM_TRP > 8) && (ATTR_EFF_DRAM_TRP <= 16)) ; # 2^4 = 16 clks
56:59 , 0x5 , (ATTR_EFF_DRAM_TRP > 16) ; # 2^5 = 32 clks
# TRFC_CYCLES, based on Gb density (512=90ns 1Gb=110ns 2Gb=160ns 4Gb=300ns 8Gb=350ns)
# ATTR_EFF_DRAM_TRFC in clocks = tRFC / clock
-# 60:63 , 0x7 , (def_is_sim) ; # match dials
60:63 , 0x6 , ((ATTR_EFF_DRAM_TRFC <= 64) && (ATTR_EFF_DRAM_TRFC > 32)) ; # 2^6 = 64 clks
60:63 , 0x7 , ((ATTR_EFF_DRAM_TRFC <= 128) && (ATTR_EFF_DRAM_TRFC > 64)) ; # 2^7 = 128 clks
60:63 , 0x8 , ((ATTR_EFF_DRAM_TRFC <= 256) && (ATTR_EFF_DRAM_TRFC > 128)) ; # 2^8 = 256 clks
@@ -2998,27 +3845,23 @@ scom 0x800(0,1)C4120301143F { # _P[0:1]
# Memory Timing Parameters to be used during calibration. Each nibble is used as
# exponent of 2, to calculate # of clock cycles. Ex: TZQCS_CYCLES=6, 2^6 clocks
#
-# DPHY01.DDRPHY_SEQ_MEM_TIMING_PARAM1_P0 from (alias spydef)
# [01:23] [0:2] [0:1]
# DPHY01_DDRPHY_SEQ_MEM_TIMING_PARAM1_P0 CTL 0x013 0x8000c4130301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.SEQX.U_SEQ_APB.MEM_TIMING_PARAM1_L2
scom 0x800(0,1)C4130301143F { # _P[0:1]
- bits , scom_data , expr ;
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# TZQINIT_CYCLES max(tZQINIT,tZQOPER) DDR3=max(512nCK, 640ns) DDR4=1024nCK
-# 48:51 , 0x7 , (def_is_sim) ; # match dials
48:51 , 0x9 , ((def_is_ddr3) && (CEN.ATTR_MSS_FREQ <= 1600)) ; # DDR3 & freq <= 1600, 512 clks
48:51 , 0xA , ((def_is_ddr4) || (CEN.ATTR_MSS_FREQ > 1600)) ; # DDR4 || freq > 1600, 1024 clks
# TZQCS_CYCLES DDR3=max(64nCK, 80ns) DDR4=128nCK
-# 52:55 , 0x7 , (def_is_sim) ; # match dials
52:55 , 0x6 , ((def_is_ddr3) && (CEN.ATTR_MSS_FREQ <= 1600)) ; # DDR3 & freq <= 1600, 64 clks
52:55 , 0xA , ((def_is_ddr4) || (CEN.ATTR_MSS_FREQ > 1600)) ; # DDR4 || freq > 1600, 128 clks
+# *Note: max values system dependent
# TWLDQSEN_CYCLES DDR3/4=min(25nCK)*
-# 56:59 , 0x7 , (def_is_sim) ; # match dials
- 56:59 , 0x5 , any ; # 2^5 = 32 clks
+ 56:59 , 0x5 , any ; # 2^5 = 32 clks
# TWLMRD_CYCLES DDR3/4=min(40nCK)*
-# 60:63 , 0x7 , (def_is_sim) ; # match dials
- 60:63 , 0x6 , any ; # 2^6 = 64 clks
-# *Note: max values system dependent
+ 60:63 , 0x6 , any ; # 2^6 = 64 clks
}
# ---------------------------------------------------------------------------------------
@@ -3027,16 +3870,15 @@ scom 0x800(0,1)C4130301143F { # _P[0:1]
# Memory Timing Parameters to be used during calibration. Each nibble is used as
# exponent of 2, to calculate # of clock cycles. Ex: TRCS_CYCLES=0, 2^0 clocks
#
-# DPHY01.DDRPHY_SEQ_MEM_TIMING_PARAM2_P0 from (alias spydef)
# [01:23] [0:2] [0:1]
# DPHY01_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0 CTL 0x014 0x8000c4140301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.SEQX.U_SEQ_APB.MEM_TIMING_PARAM2_L2
-# DPHY01.DDRPHY_SEQ_MEM_TIMING_PARAM2_P0 from (alias spydef)
#
# TODTLON_OFF_CYCLES DDR3=CWL+AL-2 DDR4 if 2tCK, CWL+AL-3
# define def_tODTL_DDR3_AL0 = def_tODTL_DDR3 - ATTR_EFF_DRAM_CL ;
# scom 0x800(0,1)C4140301143F { # _P[0:1]
# bits , scom_data , ATTR_EFF_DRAM_GEN , ATTR_EFF_DRAM_AL , expr ;
+# 0:47 , 0x000000000000, any , any , any ; # reserved
# #--------------- DDR3 -------------------------------------------------------------------------
# 48:51 , 0x3 , 1 , 0 , (def_tODTL_DDR3_AL0 <= 8) ; # 8 clks
# 48:51 , 0x4 , 1 , 0 , ((def_tODTL_DDR3_AL0 <= 16) && (def_tODTL_DDR3_AL0 > 8)) ; # 16 clks
@@ -3057,20 +3899,19 @@ scom 0x800(0,1)C4130301143F { # _P[0:1]
# 48:51 , 0x6 , 2 , any , ((def_tODTL_DDR4 <= 64) && (def_tODTL_DDR4 > 32)) ; # 64 clks
# 48:51 , 0x0 , any , any , any ; # 0 clks
# # TRC_CYCLES
-# 52:55 , 0x7 , (def_is_sim) ; # match dials
# 52:55 , 0x7 , ((ATTR_EFF_DRAM_TRC > 64) && (ATTR_EFF_DRAM_TRC <= 128)) ; # 2^7 = 128 clks
# 52:55 , 0x6 , ((ATTR_EFF_DRAM_TRC > 32) && (ATTR_EFF_DRAM_TRC <= 64)) ; # 2^6 = 64 clks
# 52:55 , 0x5 , ((ATTR_EFF_DRAM_TRC > 16) && (ATTR_EFF_DRAM_TRC <= 32)) ; # 2^5 = 32 clks
# 52:55 , 0x4 , ((ATTR_EFF_DRAM_TRC > 8) && (ATTR_EFF_DRAM_TRC <= 16)) ; # 2^4 = 16 clks
# 52:55 , 0x3 , (ATTR_EFF_DRAM_TRC <= 8) ; # 2^3 = 8 clks
# # TMRSC_CYCLES for RLDRAMs, set to 0 for everything else
-# 56:59 , 0x7 , (def_is_sim) ; # match dials
# 56:59 , 0x0 , any ;
# # 60:63 , 0x0 , any ; # reserved
# }
scom 0x800(0,1)C4140301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
# TODTLON_OFF_CYCLES DDR3=CWL+AL-2 DDR4 if 2tCK, CWL+AL-3
#--------------- DDR3 -------------------------------------------------------------------------
48:51 , 0x3 , ((def_is_ddr3) && (def_tODTL_DDR3 <= 8)) ; # 8 clks
@@ -3084,19 +3925,19 @@ scom 0x800(0,1)C4140301143F { # _P[0:1]
48:51 , 0x6 , ((def_is_ddr4) && (def_tODTL_DDR4 <= 64) && (def_tODTL_DDR4 > 32)) ; # 64 clks
48:51 , 0x0 , any ; # 0 clks
# TRC_CYCLES
- 52:55 , 0x7 , (def_is_sim) ; # match dials
+# 52:55 , 0x7 , (def_is_sim) ; # match dials
52:55 , 0x7 , ((ATTR_EFF_DRAM_TRC > 64) && (ATTR_EFF_DRAM_TRC <= 128)) ; # 2^7 = 128 clks
52:55 , 0x6 , ((ATTR_EFF_DRAM_TRC > 32) && (ATTR_EFF_DRAM_TRC <= 64)) ; # 2^6 = 64 clks
52:55 , 0x5 , ((ATTR_EFF_DRAM_TRC > 16) && (ATTR_EFF_DRAM_TRC <= 32)) ; # 2^5 = 32 clks
52:55 , 0x4 , ((ATTR_EFF_DRAM_TRC > 8) && (ATTR_EFF_DRAM_TRC <= 16)) ; # 2^4 = 16 clks
52:55 , 0x3 , (ATTR_EFF_DRAM_TRC <= 8) ; # 2^3 = 8 clks
# TMRSC_CYCLES for RLDRAMs, set to 0 for everything else
- 56:59 , 0x7 , (def_is_sim) ; # match dials
+# 56:59 , 0x7 , (def_is_sim) ; # match dials
56:59 , 0x0 , any ;
# 60:63 , 0x0 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
-# SEQ Low Power Termination Address default=0xFFFF !! need to set this?
+# SEQ Low Power Termination Address default=0xFFFF
#
# bit positions and mapping of the Address/BA/BG pins in DDR3/DDR4 of the low power
# termination address{2-4}
@@ -3118,6 +3959,7 @@ scom 0x800(0,1)C4140301143F { # _P[0:1]
#DPHY01_DDRPHY_SEQ_LPT_ADDR2_P0 0x017 0x8000c4170301143f
#scom 0x8000c4170301143f {
# bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
# 48:63 , 0xFFFF ; # LPT_ADDR2
#}
@@ -3130,15 +3972,22 @@ scom 0x800(0,1)C4140301143F { # _P[0:1]
# DPHY01_DDRPHY_WC_CONFIG0_P0 0x000 0x8000cc000301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.WCX.DDRPHY_WC_CONFIG0_L2
scom 0x800(0,1)CC000301143F { # _P[0:1]
- bits , scom_data , expr ;
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+# !! need to review
# = 12 + max(tWLDQSEN-tMOD,tWLO+tWLOE) + (longest DQS wire delay in CKs) + (longest DQ wire delay in CKs)
+ 48:55 , 0x10 , any ; # TWLO_TWLOE = 16 (same as DD0)
# @ 1600, = 12 + max(13,3) + ldqs + ldq = 25 + ldqs + ldq
- 48:55 , 0x10 , (def_is_sim) ; # TWLO_TWLOE = 16
- 48:55 , 0x1B , any ; # TWLO_TWLOE = 27
- #48:55 , (25+ldqs+ldq), < 1866 ; # TWLO_TWLOE
- 56 , 0b1 , any ; # WL_ONE_DQS_PULSE = enable
- 57:62 , 0b000000 , any ; # FW_WR_RD
- 63 , 0b0 , any ; # CUSTOM_INIT_WRITE
+ #48:55 , 0x1B , any ; # TWLO_TWLOE = 27
+ #48:55 , (25+ldqs+ldq) , (CEN.ATTR_MSS_FREQ > 1460) ; # TWLO_TWLOE (> 1333)
+ 56 , 0b1 , any ; # WL_ONE_DQS_PULSE = enable
+ # FW_WR_RD = max(tWTR+8,AL+tRTP), AL=ATTR_EFF_DRAM_CL-ATTR_EFF_DRAM_AL when ATTR_EFF_DRAM_AL != 0
+ 57:62 , 0b000000 , (def_is_sim) ;
+ 57:62 , 0b010001 , any ; # same as DD0, right aligned here, 17d
+ 57:62 , (def_TWTR_PLUS_8) , (def_TWTR_PLUS_8 >= def_TRTP_PLUS_AL) ; # TWTR + 8 >= TRTP + AL
+ 57:62 , (def_TRTP_PLUS_AL) , (def_TWTR_PLUS_8 < def_TRTP_PLUS_AL) ; # TWTR + 8 < TRTP + AL
+
+ 63 , 0b0 , any ; # CUSTOM_INIT_WRITE
}
# ---------------------------------------------------------------------------------------
# Write control logic configuration 1 default=0x2350 addr=0xCC01
@@ -3147,6 +3996,8 @@ scom 0x800(0,1)CC000301143F { # _P[0:1]
# PHYW.PHYX.SYNTHX.D3SIDEA.WCX.DDRPHY_WC_CONFIG1_L2
scom 0x800(0,1)CC010301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# !! need to review
48:51 , 0b1100 , (def_is_sim) ; # BIG_STEP = 12 (changed from default for SIM)
48:51 , 0b0010 , any ; # BIG_STEP = 2 (default)
52:54 , 0b001 , any ; # SMALL_STEP = 1 (!! recommend setting to 0)
@@ -3157,12 +4008,11 @@ scom 0x800(0,1)CC010301143F { # _P[0:1]
# ---------------------------------------------------------------------------------------
# Write control logic configuration 2 default=0x5440
#
-# DPHY01.DDRPHY_WC_CONFIG2_P0 from (alias spydef)
-#
# DPHY01_DDRPHY_WC_CONFIG2_P0 0x002 0x8000cc020301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.WCX.DDRPHY_WC_CONFIG2_L2
scom 0x800(0,1)CC020301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
48:51 , 0x3 , (def_is_sim) ; # NUM_VALID_SAMPLES = 3 (changed from defaults)
48:51 , 0x5 , any ; # NUM_VALID_SAMPLES = 5 (defaults)
@@ -3170,6 +4020,13 @@ scom 0x800(0,1)CC020301143F { # _P[0:1]
52:57 , (def_TWTR_PLUS_8) , (def_TWTR_PLUS_8 >= def_TRTP_PLUS_AL) ; # TWTR + 8 >= TRTP + AL
52:57 , (def_TRTP_PLUS_AL) , (def_TWTR_PLUS_8 < def_TRTP_PLUS_AL) ; # TWTR + 8 < TRTP + AL
+# RL=CL+AL, WL=CWL+AL !! Need to fix
+# = CL + 2tCK + tCCD/x x=1 if
+# Read to write = RL + tCCD + 2tCK - WL (in DDR3 JEDEC for Read BL8 to Write BL8)
+# Read to write = RL + tCCD/2 + 2tCK - WL (in DDR3 JEDEC for Read BC4 to Write BC4/BL8 OTF)
+# 52:57 , def_fw_rd_wr, , (def_TWTR_PLUS_8 < def_TRTP_PLUS_AL) ; # TWTR + 8 < TRTP + AL
+
+
# 58:62 , 0b00000 , any ; # reserved
# DP18_WR_DELAY_VALUE_{0-23}_RP{0-3}_REG are reset to 0 at the start of WL cal for rank pair 0 when '1'
@@ -3179,14 +4036,14 @@ scom 0x800(0,1)CC020301143F { # _P[0:1]
# ---------------------------------------------------------------------------------------
# Write control logic configuration 3 default=0x01F8
#
-# DPHY01.DDRPHY_WC_CONFIG3_P0 from (alias spydef)
-#
# DPHY01_DDRPHY_WC_CONFIG3_P0 0x005 0x8000cc050301143f
# PHYW.PHYX.SYNTHX.D3SIDEA.WCX.DDRPHY_WC_CONFIG3_L2
scom 0x800(0,1)CC050301143F { # _P[0:1]
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48 , 0b1 , (def_is_ddr4) ; # if DDR4, drive DQ pins in DATA_BIT_ENABLE1
48 , 0b0 , (def_not_ddr4) ; # if not DDR4, set to 0
+# !! need to review
# MRS_CMD_DQ_ON determines the WL_per_DRAM_addr time.
# WL_per_DRAM_addr = 10 + MRS_CMD_DQ_ON in 2:1 mode
# WL_per_DRAM_addr = 18 + 2 * MRS_CMD_DQ_ON in 4:1 mode
@@ -3197,7 +4054,7 @@ scom 0x800(0,1)CC050301143F { # _P[0:1]
}
# ---------------------------------------------------------------------------------------
-# DP18 Data Bit Direction 0 defaults to 0's !! need to set this?
+# DP18 Data Bit Direction 0 defaults to 0's no longer need to set this.
#
# 1 indicates output only
#
@@ -3209,20 +4066,17 @@ scom 0x800(0,1)CC050301143F { # _P[0:1]
#
# '1'b indicates DP18 bit is an output and continously drives out a signal
#
-# DPHY01.DDRPHY_DP18_DATA_BIT_DIR1_P0_0 from (alias spydef)
# DPHY01_DDRPHY_DP18_DATA_BIT_DIR1_P0_0 0x003 0x800000030301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_DATA_BIT_DIR1_L2
#scom 0x800(0,1)(00,04,08,0C,10)030301143f { # DIR1_P[0:1]_[0:4]
scom 0x800(0,1)3C030301143f { # DIR1_P[0:1]_[0:4] via broadcast
bits , scom_data , expr ;
- 48:55 , 0b00000000 , any ; # DATA_BIT_DIR_16_23
+# 0:47 , 0x000000000000, any ; # reserved
+# 48:54 , 0b0000000 , any ; # reserved... used to be DATA_BIT_DIR_16_23
+ 55 , 0b0 , any ; # ATEST_MUX_CTL_EN
56 , 0b0 , any ; # WL_ADVANCE_DISABLE
57 , 0b0 , any ; # DISABLE_PING_PONG
-# !recent
-# 58 , 0b0 , (def_is_sim) ; # DELAY_PING_PONG_HALF, to match dials
58 , 0b1 , any ; # DELAY_PING_PONG_HALF, must be 1 from definition
-# !recent
-# 59 , 0b0 , (def_is_sim) ; # ADVANCE_PING_PONG. to match dials
59 , 0b1 , any ; # ADVANCE_PING_PONG. must be 1 from definition
60:63 , 0b0000 , any ; # ATEST_MUX_CTL[0:3]
}
@@ -3241,69 +4095,78 @@ scom 0x800(0,1)3C030301143f { # DIR1_P[0:1]_[0:4] via broadcast
# P2_4{56:63}, P3_1{56:63} = 0xFF if spares enabled else 0x00
# all others (P2_[0:3], P3_0, P3_[2:4]) = 0xFFFF
#
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_0 0x800000000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_2 0x800008000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_3 0x80000C000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_0 0x800100000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_3 0x80010C000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_4 0x800110000301143f
-#
# [01:23] [0:1]_[0:1]_[0:4]
# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_0 0x000 0x800000000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_2 0x800008000301143f
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_3 0x80000C000301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_DATA_BIT_ENABLE0_L2
-# ENABLE0_(P0_0, P0_2, P0_3, P2_0, P2_2, P2_3)
+#
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_0 0x800000000301143f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_2 0x800008000301143f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_3 0x80000C000301143f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P2_0 0x800000000301183f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P2_2 0x800008000301183f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P2_3 0x80000C000301183f
scom 0x800(000,008,00C)000301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:63 , 0xFFFF , (def_valid_p0) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0x0000 , any ;
}
+
# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_0 0x800100000301143f
# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_3 0x80010C000301143f
# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_4 0x800110000301143f
-# ENABLE0_(P1_0, P1_3, P1_4, P3_0, P3_3, P3_4)
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P3_0 0x800100000301183f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P3_3 0x80010C000301183f
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P3_4 0x800110000301183f
scom 0x800(100,10C,110)000301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:63 , 0xFFFF , (def_valid_p1) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0x0000 , any ;
}
# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_4 0x800010000301143f
-scom 0x800(010)000301143f {
+scom 0x800010000301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:63 , 0xFFFF , ((def_is_mba01) && (def_valid_p0)) ; # enable DATA_BIT_ENABLE_0_15
-# ENABLE0_(P2_4)
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P2_4 0x800010000301183f
48:63 , 0xFFFF , ((def_is_mba23) && (def_valid_p0) && (def_has_spare)) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0xFF00 , ((def_is_mba23) && (def_valid_p0) && (def_no_spare)) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0x0000 , any ;
}
+
# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_1 0x800104000301143f
-scom 0x800(104)000301143f {
+scom 0x800104000301143f {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:63 , 0xFFFF , ((def_is_mba01) && (def_valid_p1)) ; # enable DATA_BIT_ENABLE_0_15
-# ENABLE0_(P3_1)
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P3_1 0x800104000301183f
48:63 , 0xFFFF , ((def_is_mba23) && (def_valid_p1) && (def_has_spare)) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0xFF00 , ((def_is_mba23) && (def_valid_p1) && (def_no_spare)) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0x0000 , any ;
}
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P2_1 0x800004000301183f
-scom 0x800(004)000301143f {
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P0_1 0x800004000301143f
+scom 0x800004000301143f {
bits , scom_data , expr ;
- 48:63 , 0xFFFF , ((def_is_mba23) && (def_valid_p0)) ; # enable DATA_BIT_ENABLE_0_15
-# ENABLE0_(P0_1)
+# 0:47 , 0x000000000000, any ; # reserved
48:63 , 0xFFFF , ((def_is_mba01) && (def_valid_p0) && (def_has_spare)) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0xFF00 , ((def_is_mba01) && (def_valid_p0) && (def_no_spare)) ; # enable DATA_BIT_ENABLE_0_15
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P2_1 0x800004000301183f
+ 48:63 , 0xFFFF , ((def_is_mba23) && (def_valid_p0)) ; # enable DATA_BIT_ENABLE_0_15
48:63 , 0x0000 , any ;
}
-# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P3_2 0x800108000301183f
-scom 0x800(108)000301143f { # DATA_BIT_ENABLE_0_15
+
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P1_2 0x800108000301143f
+scom 0x800108000301143f {
bits , scom_data , expr ; # spare = 8_15
- 48:63 , 0xFFFF , ((def_is_mba23) && (def_valid_p1)) ; # P3_2
-# ENABLE0_(P1_2)
+# 0:47 , 0x000000000000, any ; # reserved
48:63 , 0xFFFF , ((def_is_mba01) && (def_valid_p1) && (def_has_spare)) ; # P1_2, enable spare if CDIMM
48:63 , 0xFF00 , ((def_is_mba01) && (def_valid_p1) && (def_no_spare)) ; # P1_2, disable spare
+# DPHY01_DDRPHY_DP18_DATA_BIT_ENABLE0_P3_2 0x800108000301183f
+ 48:63 , 0xFFFF , ((def_is_mba23) && (def_valid_p1)) ; # P3_2
+ 48:63 , 0x0000 , any ;
}
# ---------------------------------------------------------------------------------------
@@ -3316,6 +4179,7 @@ scom 0x800(108)000301143f { # DATA_BIT_ENABLE_0_15
#scom 0x800(0,1)(00,04,08,0C,10)010301143f { # ENABLE1_P[0:1]_[0:4]
# scom 0x800(0,1)3C010301143f { # ENABLE0_P[0:1]_[0:4] via broadcast
# bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
# 48:55 , 0b00000000 ; # data_bit_enable_16_23
# 56 , 0b0 ; # DFT_FORCE_OUTPUTS
# 57 , 0b0 ; # DFT_PRBS7_GEN_EN
@@ -3330,152 +4194,12 @@ scom 0x800(108)000301143f { # DATA_BIT_ENABLE_0_15
#---------------------------------------------------------------------------
# DP18 Data Bit Disable 0 default=0 per Rank Group/Pair
#
-# This register is used to disable each of the 24 pins on the DP18. During calibration
-# operations, the hardware sets the bit in this register which corresponds to a pin on the
-# DP18 which failed a calibration step. This register indicates which DQ pins on the DP18
-# failed a calibration step. This register does not indicate which calibration step failed.
-#
-# !! does the reset clear these 2 registers? does the initfile need to set these?
-# ATTR_MSS_BAD_BIT_MASK[port][dimm][rank][byte]
-# PHY logic registers only care about bits on a rank pair/port, so dimm will not be needed.
-#
-# get rank pair via ATTR_EFF_PRIMARY_RANK_GROUP0[0],sec,ter,qua then 'or' the byte together to form
-# the value needed for register
-#
-# NOTE: No need to disable spare dram bits since it should not be enabled.
-# port P0_1, P0_4,
-# 56:63 , 0xFF , ((def_no_spare) && (def_is_mba01)) ; # disable spare bits
-#
-#define def_bb_p0_rp0_d = ATTR_EFF_PRIMARY_RANK_GROUP0[0] >> 2;
-#define def_bb_p0_rp0_r = ATTR_EFF_PRIMARY_RANK_GROUP0[0] & 0x03;
-#define SYS.ATTR_SCRATCH_UINT8_1 = ATTR_EFF_PRIMARY_RANK_GROUP0[0] >> 2;
-#define SYS.ATTR_SCRATCH_UINT8_2 = ATTR_EFF_PRIMARY_RANK_GROUP0[0] & 0x03;
-# define def_bb_p0_rp1_d = ATTR_EFF_PRIMARY_RANK_GROUP1[0] >> 2;
-# define def_bb_p0_rp1_r = ATTR_EFF_PRIMARY_RANK_GROUP1[0] & 0x03;
-# define def_bb_p0_rp2_d = ATTR_EFF_PRIMARY_RANK_GROUP2[0] >> 2;
-# define def_bb_p0_rp2_r = ATTR_EFF_PRIMARY_RANK_GROUP2[0] & 0x03;
-# define def_bb_p0_rp3_d = ATTR_EFF_PRIMARY_RANK_GROUP3[0] >> 2;
-# define def_bb_p0_rp3_r = ATTR_EFF_PRIMARY_RANK_GROUP3[0] & 0x03;
+# Procedure function to set this register, pulling data from the SPD.
+# 1 = disable dq bit
#
# DPHY01_DDRPHY_DP18_DATA_BIT_DISABLE0_RP0_P0_0 0x07C 0x8000007c0301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_DATA_BIT_DISABLE0_RP0_L2
-scom 0x8000007C0301143f { # DATA_BIT_DISABLE0_RP0_P0_0
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
-# 48:55 , (ATTR_MSS_BAD_BIT_MASK[0][(ATTR_EFF_PRIMARY_RANK_GROUP0[0] >> 2)][(ATTR_EFF_PRIMARY_RANK_GROUP0[0] & 0x03)][0] , any ;
-# 48:55 , (ATTR_MSS_BAD_BIT_MASK[0][def_bb_p0_rp0_d][def_bb_p0_rp0_r][0]) , any ; # expr for byte0
-# 48:55 , 0x55 , (ATTR_MSS_BAD_BIT_MASK[0][SYS.ATTR_SCRATCH_UINT8_1][0][0] == 0x04)
-# 48:55 , 0x55 , (ATTR_EFF_DIMM_SIZE[0][SYS.ATTR_SCRATCH_UINT8_1] == 0x00);
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
- #56:63 , (ATTR_MSS_BAD_BIT_MASK[0][def_bb_p0_rp0_d][def_bb_p0_rp0_r][1]) , any ; # expr for byte1
-}
-scom 0x8000047C0301143f { # DATA_BIT_DISABLE0_RP0_P0_1
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
-}
-scom 0x8000087C0301143f { # DATA_BIT_DISABLE0_RP0_P0_2
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
-}
-scom 0x80000C7C0301143f { # DATA_BIT_DISABLE0_RP0_P0_3
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
-}
-scom 0x8000107C0301143f { # DATA_BIT_DISABLE0_RP0_P0_4
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP0[0]==255) ; # invalid rank pair0
-}
-
-# DPHY01_DDRPHY_DP18_DATA_BIT_DISABLE0_RP1_P0_0 0x17C 0x8000017c0301143f
-scom 0x8000017C0301143f { # DATA_BIT_DISABLE0_RP1_P0_0
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
-}
-scom 0x8000057C0301143f { # DATA_BIT_DISABLE0_RP1_P0_1
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
-}
-scom 0x8000097C0301143f { # DATA_BIT_DISABLE0_RP1_P0_2
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
-}
-scom 0x80000D7C0301143f { # DATA_BIT_DISABLE0_RP1_P0_3
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
-}
-scom 0x8000117C0301143f { # DATA_BIT_DISABLE0_RP1_P0_4
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP1[0]==255) ; # invalid rank pair1
-}
-
-# DPHY01_DDRPHY_DP18_DATA_BIT_DISABLE0_RP2_P0_0 0x27C 0x8000027c0301143f
-scom 0x8000027C0301143f { # DATA_BIT_DISABLE0_RP2_P0_0
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
-}
-scom 0x8000067C0301143f { # DATA_BIT_DISABLE0_RP2_P0_1
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
-}
-scom 0x80000A7C0301143f { # DATA_BIT_DISABLE0_RP2_P0_2
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
-}
-scom 0x80000E7C0301143f { # DATA_BIT_DISABLE0_RP2_P0_3
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
-}
-scom 0x8000127C0301143f { # DATA_BIT_DISABLE0_RP2_P0_4
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP2[0]==255) ; # invalid rank pair2
-}
-
-# DPHY01_DDRPHY_DP18_DATA_BIT_DISABLE0_RP3_P0_0 0x37C 0x8000037c0301143f
-scom 0x8000037C0301143f { # DATA_BIT_DISABLE0_RP3_P0_0
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
-}
-scom 0x8000077C0301143f { # DATA_BIT_DISABLE0_RP3_P0_1
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
-}
-scom 0x80000B7C0301143f { # DATA_BIT_DISABLE0_RP3_P0_2
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
-}
-scom 0x80000F7C0301143f { # DATA_BIT_DISABLE0_RP3_P0_3
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
-}
-scom 0x8000137C0301143f { # DATA_BIT_DISABLE0_RP3_P0_4
- bits , scom_data , expr ; # bits 0:15
- 48:55 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
- 56:63 , 0xFF , (ATTR_EFF_PRIMARY_RANK_GROUP3[0]==255) ; # invalid rank pair3
-}
-
-# Port1, MBA01 = instance 2
-# 56:63 , 0xFF , ((def_no_spare) && (def_is_mba01)) ; # disable spare bits
-# Port1, MBA23 = instance 1
-# 56:63 , 0xFF , ((def_no_spare) && (def_is_mba23)) ; # disable spare bits
-
+#
#---------------------------------------------------------------------------
# DP18 Data Bit Disable 1 default=0
#
@@ -3483,34 +4207,22 @@ scom 0x8000137C0301143f { # DATA_BIT_DISABLE0_RP3_P0_4
#
# DPHY01_DDRPHY_DP18_DATA_BIT_DISABLE1_RP0_P0_0 0x07D 0x8000007d0301143f
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_DATA_BIT_DISABLE1_RP0_L2
-#scom 0x80007D000301143f { # DATA_BIT_DISABLE1_RP0_P0_0
-# bits , scom_data , expr ; # bits 16:23
-# 48:55 , 0x00 , any ; # ATTR_MSS_BAD_BIT_MASK[2][2][8][10]
-# 56:63 , 0x00 , any ; # reserved
-#}
#---------------------------------------------------------------------------
# ADR BIT ENABLE P[0:1] ADR[0:3] default=0
#
-# Note: refined this so that bits 12:15 not used in ADR[0:1],
-# and bits 14:15 not used in ADR[2:3].
+# Turn off of deconfigured the ports handled in a clean up procedure
#
# DPHY01_DDRPHY_ADR_BIT_ENABLE_P0_ADR0 0x000 0x800040000301143f
-# DPHY01.DDRPHY_ADR_BIT_ENABLE_P0_ADR0 from (alias spydef)
-#scom 0x800(0,1)(40,44,48,4c)000301143f { # _P[0:1]_ADR[0:3]
-# scom 0x800(0,1)7C000301143F { # _P[0:1]_ADR[0:3] via broadcast
-# bits , scom_data ;
-# 48:63 , 0xFFFF ; # enable all ADR bits
-# }
-
-# need to turn off if deconfiguring the ports, should be handled in a
-# clean up procedure
+# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.P_REG_A_00_L2
scom 0x800(040,044,140,144)000301143F { # _P[0:1]_ADR[0:1]
+# 0:47 , 0x000000000000 ; # reserved
bits , scom_data ;
48:63 , 0xFFF0 ; # bits 12:15 not used in ADR[0:1]
}
scom 0x800(048,04C,148,14C)000301143F { # _P[0:1]_ADR[2:3]
bits , scom_data ;
+# 0:47 , 0x000000000000 ; # reserved
48:63 , 0xFFFC ; # 14:15 not used in ADR[2:3]
}
@@ -3538,98 +4250,438 @@ scom 0x800(048,04C,148,14C)000301143F { # _P[0:1]_ADR[2:3]
# 49:55 = value0, 57:63 = value1,
# 0x40 = 64 (for single data rate), 0x20 = 32 (for double data rate)
#
-# ------------- Port 0 ---------------------------------------------
# [01:23] [0:7] [0:1] [0:3]
-# DPHY01_DDRPHY_ADR_DELAY5_P0_ADR0 0x004 0x800040090301143f
+# DPHY01_DDRPHY_ADR_DELAY0_P0_ADR0 0x004-00B 0x800040040301143f
# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.REG_A_09_L2
-scom 0x800040090301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba01) ; # lane 10:11, clk0_p/n
-}
-# DPHY01.DDRPHY_ADR_DELAY5_P0_ADR2 from (alias spydef)
-# DPHY23_DDRPHY_ADR_DELAY5_P0_ADR2
-scom 0x800048090301143F {
- # ------------- Port 0 & 2 -------------------------------------
- bits , scom_data , expr ;
- # for port 0 & port 2, lane 10:11, Port0=clk1_n/p, Port2=clk0_n/p
- 48:63 , 0x4040 , any ; # for both mba01 & mba23
- #48:63 , 0x4040 , ((def_is_mba01) || (def_is_mba23)) ;
-}
-# DPHY01.DDRPHY_ADR_DELAY2_P0_ADR2 from (alias spydef)
-scom 0x800048060301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba01) ; # lane 4:5, clk2_p/n
-}
-# DPHY01.DDRPHY_ADR_DELAY6_P0_ADR2 from (alias spydef)
-scom 0x8000480A0301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba01) ; # lane 12:13, clk3_n/p
-}
-
-# ------------- Port 2 ---------------------------------------------
-# DPHY23_DDRPHY_ADR_DELAY3_P0_ADR0
-scom 0x800040070301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba23) ; # lane 6:7, clk1_p/n
- 48:63 , 0x0000 , any ; # mba01
-}
-#DPHY23_DDRPHY_ADR_DELAY1_P0_ADR3
-scom 0x80004C050301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba23) ; # lane 2:3, clk2_p/n
- 48:63 , 0x0000 , any ; # mba01
-}
-# DPHY23_DDRPHY_ADR_DELAY4_P0_ADR0
-scom 0x800040080301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba23) ; # lane 8:9, clk3_p/n
- 48:63 , 0x0000 , any ; # mba01
-}
-
-# ------------- Port 1 ---------------------------------------------
-# DPHY01.DDRPHY_ADR_DELAY1_P1_ADR3 from (alias spydef)
-# DPHY23_DDRPHY_ADR_DELAY1_P1_ADR3
-scom 0x80014C050301143F {
- # ------------- Port 1 & 3 -------------------------------------
- bits , scom_data , expr ;
- # lane 2:3, Port1=clk0_n/p, Port3=clk0_n/p
- 48:63 , 0x4040 , any ; # for mba01 & mba23
- #48:63 , 0x4040 , ((def_is_mba01) || (def_is_mba23)) ;
-}
-# DPHY01.DDRPHY_ADR_DELAY4_P1_ADR2 from (alias spydef)
-scom 0x800148080301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba01) ; # lane 8:9, clk1_p/n
-}
-# DPHY01.DDRPHY_ADR_DELAY0_P1_ADR0 from (alias spydef)
-scom 0x800140040301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba01) ; # lane 0:1, clk2_n/p
-}
-# DPHY01.DDRPHY_ADR_DELAY1_P1_ADR0 from (alias spydef)
-scom 0x800140050301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba01) ; # lane 2:3, clk3_n/p
-}
-
-# ------------- Port 3 ---------------------------------------------
-# DPHY23_DDRPHY_ADR_DELAY6_P1_ADR2
-scom 0x8001480A0301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba23) ; # lane 12:13, clk1_n/p
- 48:63 , 0x0000 , any ; #
-}
-# DPHY23_DDRPHY_ADR_DELAY5_P1_ADR0
-scom 0x800140090301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba23) ; # lane 10:11, clk2_p/n
- 48:63 , 0x0000 , any ; #
-}
-# DPHY23_DDRPHY_ADR_DELAY5_P1_ADR2
-scom 0x800148090301143F {
- bits , scom_data , expr ;
- 48:63 , 0x4040 , (def_is_mba23) ; # lane 10:11, clk3_n/p
- 48:63 , 0x0000 , any ; #
+#====================================================================================
+# PORT 0 / 2
+#====================================================================================
+#-- Port 0/2 ADR 0 ------------------------------------------------------------
+scom 0x800040040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P0_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE1[0]) , (def_is_mba01) ; # P0 L0 , A1_CKE1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN3[0]) , (def_is_mba01) ; # P0 L1 , A0_CS3n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN0[0]) , (def_is_mba23) ; # P2 L0 , C0_CS0n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A3[0]) , (def_is_mba23) ; # P2 L1 , C_A3
+}
+scom 0x800040050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P0_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE0[0]) , (def_is_mba01) ; # P0 L2 , A1_CKE0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT0[0]) , (def_is_mba01) ; # P0 L3 , A0_ODT0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN3[0]) , (def_is_mba23) ; # P2 L2 , C1_CS3n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_RASN[0]) , (def_is_mba23) ; # P2 L3 , C_RASn
+}
+scom 0x800040060301143F { # DPHY01_DDRPHY_ADR_DELAY2_P0_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A15[0]) , (def_is_mba01) ; # P0 L4 , A_A15
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_PAR[0]) , (def_is_mba01) ; # P0 L5 , A_PAR
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A12[0]) , (def_is_mba23) ; # P2 L4 , C_A12
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A7[0]) , (def_is_mba23) ; # P2 L5 , C_A7
+}
+scom 0x800040070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P0_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE1[0]) , (def_is_mba01) ; # P0 L6 , A0_CKE1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN1[0]) , (def_is_mba01) ; # P0 L7 , A0_CS1n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[0]) , (def_is_mba23) ; # P2 L6 , C0_CLK1_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[0]) , (def_is_mba23) ; # P2 L7 , C0_CLK1_n
+}
+scom 0x800040080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P0_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE0[0]) , (def_is_mba01) ; # P0 L8 , A0_CKE0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT0[0]) , (def_is_mba01) ; # P0 L9 , A1_ODT0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[0]) , (def_is_mba23) ; # P2 L8 , C1_CLK1_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[0]) , (def_is_mba23) ; # P2 L9 , C1_CLK1_n
+}
+scom 0x800040090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P0_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[0]) , (def_is_mba01) ; # P0 L10, A0_CLK0_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[0]) , (def_is_mba01) ; # P0 L11, A0_CLK0_n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE2[0]) , (def_is_mba23) ; # P2 L10, C1_CKE2
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE2[0]) , (def_is_mba23) ; # P2 L11, C0_CKE2
+}
+#-- Port 0/2 ADR 1 ------------------------------------------------------------
+scom 0x800044040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P0_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN0[0]) , (def_is_mba01) ; # P0 L0 , A0_CS0n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE3[0]) , (def_is_mba01) ; # P0 L1 , A1_CKE3
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA2[0]) , (def_is_mba23) ; # P2 L0 , C_BA2
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE1[0]) , (def_is_mba23) ; # P2 L1 , C1_CKE1
+}
+scom 0x800044050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P0_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT1[0]) , (def_is_mba01) ; # P0 L2 , A1_ODT1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A2[0]) , (def_is_mba01) ; # P0 L3 , A_A2
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT1[0]) , (def_is_mba23) ; # P2 L2 , C0_ODT1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_WEN[0]) , (def_is_mba23) ; # P2 L3 , C_WEn
+}
+scom 0x800044060301143F { # DPHY01_DDRPHY_ADR_DELAY2_P0_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A6[0]) , (def_is_mba01) ; # P0 L4 , A_A6
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A1[0]) , (def_is_mba01) ; # P0 L5 , A_A1
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN1[0]) , (def_is_mba23) ; # P2 L4 , C0_CS1n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A11[0]) , (def_is_mba23) ; # P2 L5 , C_A11
+}
+scom 0x800044070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P0_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A14[0]) , (def_is_mba01) ; # P0 L6 , A_A14
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE2[0]) , (def_is_mba01) ; # P0 L7 , A0_CKE2
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE3[0]) , (def_is_mba23) ; # P2 L6 , C0_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN2[0]) , (def_is_mba23) ; # P2 L7 , C0_CS2n
+}
+scom 0x800044080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P0_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN2[0]) , (def_is_mba01) ; # P0 L8 , A1_CS2n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE2[0]) , (def_is_mba01) ; # P0 L9 , A1_CKE2
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT0[0]) , (def_is_mba23) ; # P2 L8 , C0_ODT0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A8[0]) , (def_is_mba23) ; # P2 L9 , C_A8
+}
+scom 0x800044090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P0_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A4[0]) , (def_is_mba01) ; # P0 L10, A_A4
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_RASN[0]) , (def_is_mba01) ; # P0 L11, A_RASn
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A5[0]) , (def_is_mba23) ; # P2 L10, C_A5
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN0[0]) , (def_is_mba23) ; # P2 L11, C1_CS0n
+}
+#-- Port 0/2 ADR 2 ------------------------------------------------------------
+scom 0x800048040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A12[0]) , (def_is_mba01) ; # P0 L0 , A_A12
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A0[0]) , (def_is_mba01) ; # P0 L1 , A_A0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A1[0]) , (def_is_mba23) ; # P2 L0 , C_A1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A6[0]) , (def_is_mba23) ; # P2 L1 , C_A6
+}
+scom 0x800048050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE3[0]) , (def_is_mba01) ; # P0 L2 , A0_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN3[0]) , (def_is_mba01) ; # P0 L3 , A1_CS3n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A13[0]) , (def_is_mba23) ; # P2 L2 , C_A13
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE0[0]) , (def_is_mba23) ; # P2 L3 , C0_CKE0
+}
+scom 0x800048060301143F { # DPHY01.DDRPHY_ADR_DELAY2_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[0]) , (def_is_mba01) ; # P0 L4 , A1_CLK0_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[0]) , (def_is_mba01) ; # P0 L5 , A1_CLK0_n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT0[0]) , (def_is_mba23) ; # P2 L4 , C1_ODT0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN1[0]) , (def_is_mba23) ; # P2 L5 , C1_CS1n
+}
+scom 0x800048070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT1[0]) , (def_is_mba01) ; # P0 L6 , A0_ODT1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN0[0]) , (def_is_mba01) ; # P0 L7 , A1_CS0n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE1[0]) , (def_is_mba23) ; # P2 L6 , C0_CKE1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE0[0]) , (def_is_mba23) ; # P2 L7 , C1_CKE0
+}
+scom 0x800048080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN1[0]) , (def_is_mba01) ; # P0 L8 , A1_CS1n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A10[0]) , (def_is_mba01) ; # P0 L9 , A_A10
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A0[0]) , (def_is_mba23) ; # P2 L8 , C_A0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA1[0]) , (def_is_mba23) ; # P2 L9 , C_BA1
+}
+scom 0x800048090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[0]) , (def_is_mba01) ; # P0 L12, A0_CLK1_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[0]) , (def_is_mba01) ; # P0 L13, A0_CLK1_p
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[0]) , (def_is_mba23) ; # P2 L12, C0_CLK0_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[0]) , (def_is_mba23) ; # P2 L13, C0_CLK0_p
+}
+scom 0x8000480A0301143F { # DPHY01.DDRPHY_ADR_DELAY6_P0_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[0]) , (def_is_mba01) ; # P0 L12, A1_CLK1_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[0]) , (def_is_mba01) ; # P0 L13, A1_CLK1_p
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN2[0]) , (def_is_mba23) ; # P2 L12, C1_CS2n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A10[0]) , (def_is_mba23) ; # P2 L13, C_A10
+}
+#-- Port 0/2 ADR 3 ------------------------------------------------------------
+scom 0x80004C040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A13[0]) , (def_is_mba01) ; # P0 L0 , A_A13
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA0[0]) , (def_is_mba01) ; # P0 L1 , A_BA0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_PAR[0]) , (def_is_mba23) ; # P2 L0 , C_PAR
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT1[0]) , (def_is_mba23) ; # P2 L1 , C1_ODT1
+}
+scom 0x80004C050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_WEN[0]) , (def_is_mba01) ; # P0 L2 , A_WEn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN2[0]) , (def_is_mba01) ; # P0 L3 , A0_CS2n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[0]) , (def_is_mba23) ; # P2 L2 , C1_CLK0_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[0]) , (def_is_mba23) ; # P2 L3 , C1_CLK0_n
+}
+scom 0x80004C060301143F { # DPHY01.DDRPHY_ADR_DELAY2_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA1[0]) , (def_is_mba01) ; # P0 L4 , A_BA1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_CASN[0]) , (def_is_mba01) ; # P0 L5 , A_CASn
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A14[0]) , (def_is_mba23) ; # P2 L4 , C_A14
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A9[0]) , (def_is_mba23) ; # P2 L5 , C_A9
+}
+scom 0x80004C070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A5[0]) , (def_is_mba01) ; # P0 L6 , A_A5
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A3[0]) , (def_is_mba01) ; # P0 L7 , A_A3
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_ACTN[0]) , (def_is_mba23) ; # P2 L6 , C_ACTn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A2[0]) , (def_is_mba23) ; # P2 L7 , C_A2
+}
+scom 0x80004C080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA2[0]) , (def_is_mba01) ; # P0 L8 , A_BA2
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A11[0]) , (def_is_mba01) ; # P0 L9 , A_A11
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE3[0]) , (def_is_mba23) ; # P2 L8 , C1_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A15[0]) , (def_is_mba23) ; # P2 L9 , C_A15
+}
+scom 0x80004C090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A7[0]) , (def_is_mba01) ; # P0 L12, A_A7
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_ACTN[0]) , (def_is_mba01) ; # P0 L13, A_ACTn
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA0[0]) , (def_is_mba23) ; # P2 L12, C_BA0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_CASN[0]) , (def_is_mba23) ; # P2 L13, C_CASn
+}
+scom 0x80004C0A0301143F { # DPHY01.DDRPHY_ADR_DELAY6_P0_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A9[0]) , (def_is_mba01) ; # P0 L12, A_A9
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A9[0]) , (def_is_mba01) ; # P0 L13, A_A8
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A4[0]) , (def_is_mba23) ; # P2 L12, C_A4
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN3[0]) , (def_is_mba23) ; # P2 L13, C0_CS3n
+}
+#====================================================================================
+# PORT 1 / 3
+#====================================================================================
+#-- Port 1/3 ADR 0------------------------------------------------------------
+scom 0x800140040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P1_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[1]) , (def_is_mba01) ; # P1 L0 , B1_CLK0_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[1]) , (def_is_mba01) ; # P1 L1 , B1_CLK0_p
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE1[1]) , (def_is_mba23) ; # P3 L0 , D1_CKE1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA2[1]) , (def_is_mba23) ; # P3 L1 , D_BA2
+}
+scom 0x800140050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P1_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[1]) , (def_is_mba01) ; # P1 L2 , B1_CLK1_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[1]) , (def_is_mba01) ; # P1 L3 , B1_CLK1_p
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A1[1]) , (def_is_mba23) ; # P3 L2 , D_A1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A5[1]) , (def_is_mba23) ; # P3 L3 , D_A5
+}
+scom 0x800140060301143F { # DPHY01_DDRPHY_ADR_DELAY2_P1_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE3[1]) , (def_is_mba01) ; # P1 L4 , B0_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN3[1]) , (def_is_mba01) ; # P1 L5 , B0_CS3n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A12[1]) , (def_is_mba23) ; # P3 L4 , D_A12
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA0[1]) , (def_is_mba23) ; # P3 L5 , D_BA0
+}
+scom 0x800140070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P1_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA0[1]) , (def_is_mba01) ; # P1 L6 , B_BA0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT1[1]) , (def_is_mba01) ; # P1 L7 , B1_ODT1
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE2[1]) , (def_is_mba23) ; # P3 L6 , D1_CKE2
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN1[1]) , (def_is_mba23) ; # P3 L7 , D1_CS1n
+}
+scom 0x800140080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P1_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE3[1]) , (def_is_mba01) ; # P1 L8 , B1_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A15[1]) , (def_is_mba01) ; # P1 L9 , B_A15
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE0[1]) , (def_is_mba23) ; # P3 L8 , D0_CKE0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN2[1]) , (def_is_mba23) ; # P3 L9 , D0_CS2n
+}
+scom 0x800140090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P1_ADR0
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN2[1]) , (def_is_mba01) ; # P1 L10, B1_CS2n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE1[1]) , (def_is_mba01) ; # P1 L11, B0_CKE1
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[1]) , (def_is_mba23) ; # P3 L10, D1_CLK0_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P0[1]) , (def_is_mba23) ; # P3 L11, D1_CLK0_n
+}
+#-- Port 1/3 ADR 1 ------------------------------------------------------------
+scom 0x800144040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P1_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE2[1]) , (def_is_mba01) ; # P1 L0 , B0_CKE2
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A7[1]) , (def_is_mba01) ; # P1 L1 , B_A7
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A8[1]) , (def_is_mba23) ; # P3 L0 , D_A8
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A13[1]) , (def_is_mba23) ; # P3 L1 , D_A13
+}
+scom 0x800144050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P1_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A10[1]) , (def_is_mba01) ; # P1 L2 , B_A10
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE1[1]) , (def_is_mba01) ; # P1 L3 , B1_CKE1
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT1[1]) , (def_is_mba23) ; # P3 L2 , D0_ODT1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_PAR[1]) , (def_is_mba23) ; # P3 L3 , D_PAR
+}
+scom 0x800144060301143F { # DPHY01_DDRPHY_ADR_DELAY2_P1_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN1[1]) , (def_is_mba01) ; # P1 L4 , B0_CS1n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A8[1]) , (def_is_mba01) ; # P1 L5 , B_A8
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN0[1]) , (def_is_mba23) ; # P3 L4 , D1_CS0n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A11[1]) , (def_is_mba23) ; # P3 L5 , D_A11
+}
+scom 0x800144070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P1_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A6[1]) , (def_is_mba01) ; # P1 L6 , B_A6
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN3[1]) , (def_is_mba01) ; # P1 L7 , B1_CS3n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE1[1]) , (def_is_mba23) ; # P3 L6 , D0_CKE1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_WEN[1]) , (def_is_mba23) ; # P3 L7 , D_WEn
+}
+scom 0x800144080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P1_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A4[1]) , (def_is_mba01) ; # P1 L8 , B_A4
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN1[1]) , (def_is_mba01) ; # P1 L9 , B1_CS1n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE3[1]) , (def_is_mba23) ; # P3 L8 , D0_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT0[1]) , (def_is_mba23) ; # P3 L9 , D1_ODT0
+}
+scom 0x800144090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P1_ADR1
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A1[1]) , (def_is_mba01) ; # P1 L10, B_A1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA1[1]) , (def_is_mba01) ; # P1 L11, B_BA1
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_RASN[1]) , (def_is_mba23) ; # P3 L10, D_RASn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN1[1]) , (def_is_mba23) ; # P3 L11, D0_CS1n
+}
+#-- Port 1/3 ADR 2 ------------------------------------------------------------
+scom 0x800148040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN2[1]) , (def_is_mba01) ; # P1 L0 , B0_CS2n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT0[1]) , (def_is_mba01) ; # P1 L1 , B0_ODT0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN0[1]) , (def_is_mba23) ; # P3 L0 , D0_CS0n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A10[1]) , (def_is_mba23) ; # P3 L1 , D_A10
+}
+scom 0x800148050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_WEN[1]) , (def_is_mba01) ; # P1 L2 , B_WEn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A2[1]) , (def_is_mba01) ; # P1 L3 , B_A2
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A4[1]) , (def_is_mba23) ; # P3 L2 , D_A4
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN3[1]) , (def_is_mba23) ; # P3 L3 , D1_CS3n
+}
+scom 0x800148060301143F { # DPHY01.DDRPHY_ADR_DELAY2_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT1[1]) , (def_is_mba01) ; # P1 L4 , B0_ODT1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN0[1]) , (def_is_mba01) ; # P1 L5 , B0_CS0n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_ACTN[1]) , (def_is_mba23) ; # P3 L4 , D_ACTn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A9[1]) , (def_is_mba23) ; # P3 L5 , D_A9
+}
+scom 0x800148070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A3[1]) , (def_is_mba01) ; # P1 L6 , B_A3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A0[1]) , (def_is_mba01) ; # P1 L7 , B_A0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE3[1]) , (def_is_mba23) ; # P3 L6 , D1_CKE3
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE0[1]) , (def_is_mba23) ; # P3 L7 , D1_CKE0
+}
+scom 0x800148080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[1]) , (def_is_mba01) ; # P1 L8 , B0_CLK1_p
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[1]) , (def_is_mba01) ; # P1 L9 , B0_CLK1_n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CSN3[1]) , (def_is_mba23) ; # P3 L8 , D0_CS3n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A2[1]) , (def_is_mba23) ; # P3 L9 , D_A2
+}
+scom 0x800148090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_CASN[1]) , (def_is_mba01) ; # P1 L10, B_CASn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN0[1]) , (def_is_mba01) ; # P1 L11, B1_CS0n
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[1]) , (def_is_mba23) ; # P3 L10, D1_CLK1_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CLK_P1[1]) , (def_is_mba23) ; # P3 L11, D1_CLK1_p
+}
+scom 0x8001480A0301143F { # DPHY01.DDRPHY_ADR_DELAY6_P1_ADR2
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE0[1]) , (def_is_mba01) ; # P1 L12, B1_CKE0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A12[1]) , (def_is_mba01) ; # P1 L13, B_A12
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[1]) , (def_is_mba23) ; # P3 L12, D0_CLK1_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P1[1]) , (def_is_mba23) ; # P3 L13, D0_CLK1_p
+}
+#-- Port 1/3 ADR 3 ------------------------------------------------------------
+scom 0x80014C040301143F { # DPHY01_DDRPHY_ADR_DELAY0_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A11[1]) , (def_is_mba01) ; # P1 L0 , B_A11
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE0[1]) , (def_is_mba01) ; # P1 L1 , B0_CKE0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CSN2[1]) , (def_is_mba23) ; # P3 L0 , D1_CS2n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_ODT0[1]) , (def_is_mba23) ; # P3 L1 , D0_ODT0
+}
+scom 0x80014C050301143F { # DPHY01_DDRPHY_ADR_DELAY1_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[1]) , (def_is_mba01) ; # P1 L2 , B0_CLK0_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[1]) , (def_is_mba01) ; # P1 L3 , B0_CLK0_p
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[1]) , (def_is_mba23) ; # P3 L2 , D0_CLK0_n
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CLK_P0[1]) , (def_is_mba23) ; # P3 L3 , D0_CLK0_p
+}
+scom 0x80014C060301143F { # DPHY01.DDRPHY_ADR_DELAY2_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A13[1]) , (def_is_mba01) ; # P1 L4 , B_A13
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A14[1]) , (def_is_mba01) ; # P1 L5 , B_A14
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A6[1]) , (def_is_mba23) ; # P3 L4 , D_A6
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT1[1]) , (def_is_mba23) ; # P3 L5 , D1_ODT1
+}
+scom 0x80014C070301143F { # DPHY01_DDRPHY_ADR_DELAY3_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_CKE2[1]) , (def_is_mba01) ; # P1 L6 , B1_CKE2
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M1_CNTL_ODT0[1]) , (def_is_mba01) ; # P1 L7 , B1_ODT0
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A0[1]) , (def_is_mba23) ; # P3 L6 , D_A0
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_CASN[1]) , (def_is_mba23) ; # P3 L7 , D_CASn
+}
+scom 0x80014C080301143F { # DPHY01_DDRPHY_ADR_DELAY4_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A9[1]) , (def_is_mba01) ; # P1 L8 , B_A9
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA2[1]) , (def_is_mba01) ; # P1 L9 , B_BA2
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A14[1]) , (def_is_mba23) ; # P3 L8 , D_A14
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A3[1]) , (def_is_mba23) ; # P3 L9 , D_A3
+}
+scom 0x80014C090301143F { # DPHY01_DDRPHY_ADR_DELAY5_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_RASN[1]) , (def_is_mba01) ; # P1 L10, B_RASn
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_ACTN[1]) , (def_is_mba01) ; # P1 L11, B_ACTn
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A7[1]) , (def_is_mba23) ; # P3 L10, D_A7
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A15[1]) , (def_is_mba23) ; # P3 L11, D_A15
+}
+scom 0x80014C0A0301143F { # DPHY01.DDRPHY_ADR_DELAY6_P1_ADR3
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000 , any ; # reserved
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_A5[1]) , (def_is_mba01) ; # P1 L12, B_A5
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M_PAR[1]) , (def_is_mba01) ; # P1 L13, B_PAR
+ 48:55 , (ATTR_EFF_CEN_PHASE_ROT_M_CMD_BA1[1]) , (def_is_mba23) ; # P3 L12, D_BA1
+ 56:63 , (ATTR_EFF_CEN_PHASE_ROT_M0_CNTL_CKE2[1]) , (def_is_mba23) ; # P3 L13, D0_CKE2
}
#================================================================================
@@ -3645,60 +4697,70 @@ scom 0x800148090301143F {
# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.REG_A_01_L2
scom 0x800040010301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:55 , 0x04 , (def_is_mba01) ; # lane 10:11(clk0)
# ------------- Port 2 -------------------------------------
# DPHY23_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR0
48:55 , 0x18 , (def_is_mba23) ; # lane 6:7(clk1), 8:9(clk3)
+# 56:63 , 0x00 , any ; # reserved
}
-# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR2 from (alias spydef)
+# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR2
scom 0x800048010301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:55 , 0x26 , (def_is_mba01) ; # lane 4:5(clk2), 10:11(clk1), 12:13(clk3)
# ------------- Port 2 -------------------------------------
# DPHY23_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR2
48:55 , 0x04 , (def_is_mba23) ; # lane 10:11(clk0)
+# 56:63 , 0x00 , any ; # reserved
}
# ------------- Port 2 ---------------------------------------------
# DPHY23_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR3
scom 0x80004C010301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:55 , 0x40 , (def_is_mba23) ; # lane 2:3(clk2)
48:55 , 0x00 , any ; # for mba01
+# 56:63 , 0x00 , any ; # reserved
}
# ------------- Port 1 ---------------------------------------------
-# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR0 from (alias spydef)
+# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR0
scom 0x800140010301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:55 , 0xC0 , (def_is_mba01) ; # lane 0:1(clk2), 2:3(clk3)
# ------------- Port 3 -------------------------------------
# DPHY23_DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR0
48:55 , 0x04 , (def_is_mba23) ; # lane 10:11(clk2)
+# 56:63 , 0x00 , any ; # reserved
}
-# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR2 from (alias spydef)
+# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR2
scom 0x800148010301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:55 , 0x08 , (def_is_mba01) ; # lane 8:9(clk1)
# ------------- Port 3 -------------------------------------
# DPHY23_DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR2
48:55 , 0x06 , (def_is_mba23) ; # lane 10:11(clk3), 12:13(clk1)
+# 56:63 , 0x00 , any ; # reserved
}
-# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR3 from (alias spydef)
+# DPHY01.DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR3
scom 0x80014C010301143F {
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48:55 , 0x40 , (def_is_mba01) ; # lane 2:3(clk0)
# ------------- Port 3 -------------------------------------
# DPHY23_DDRPHY_ADR_DIFFPAIR_ENABLE_P1_ADR3
48:55 , 0x40 , (def_is_mba23) ; # lane 2:3(clk0)
+# 56:63 , 0x00 , any ; # reserved
}
# !! need updates to these clock registers from PHY / SIM team
# set to 0x8070, reset seq sets it to 0x8024
#---------------------------------------------------------------------------------------
-# ADR SYSCLK settings default=0x8074
-#
-# DPHY01.DDRPHY_ADR_SYSCLK_CNTL_PR_P0_ADR32S0 from (alias spydef)
+# ADR SYSCLK settings default=0x8074
#
# Controls the circuit which aligns the internal SysClk to the incoming dphy_nclk clock.
#
@@ -3707,45 +4769,63 @@ scom 0x80014C010301143F {
#scom 0x800(0,1)(80,84)320301143F { # _P[0:1]_ADR32S[0:1]
scom 0x800(0,1)BC320301143F { # _P[0:1]_ADR32S[0:1] via broadcast
bits , scom_data , expr ;
- 48 , 0b0 , (def_is_sim) ; # made to match dials
+# 0:47 , 0x000000000000, any ; # reserved
+# old dials value = 0x0080
48 , 0b1 , any ; # ADR32_SYSCLK_ENABLE
49:55 , 0b0000000 , any ; # ADR32_SYSCLK_ROT_OVERRIDE
- 56 , 0b1 , (def_is_sim) ; # made to match dials
56 , 0b0 , any ; # ADR32_SYSCLK_ROT_OVERRIDE_EN
- 57 , 0b0 , (def_is_sim) ; # made to match dials
57 , 0b1 , any ; # ADR32_SYSCLK_PHASE_ALIGN_RESET
- 58 , 0b0 , (def_is_sim) ; # made to match dials
58 , 0b1 , any ; # ADR32_SYSCLK_PHASE_CNTL_EN
- 59 , 0b0 , (def_is_sim) ; # made to match dials
59 , 0b1 , any ; # ADR32_SYSCLK_PHASE_DEFAULT_EN
60 , 0b0 , any ; # ADR32_SYSCLK_POS_EDGE_ALIGN
- 61 , 0b0 , any ; # ADR32_CONTINUOUS_UPDATE
+# recent 7/3
+ 61 , 0b1 , any ; # ADR32_CONTINUOUS_UPDATE
62:63 , 0b00 , any ; # CE0DLTVCC, must be '00'b
}
# ---------------------------------------------------------------------------------------
-# DPHY01.DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0 from (alias spydef)
+# ADR WRClk Phase Rotator Offset Value default=0
#
-# !!NOTE different depending on EC level
+# !! NOTE different depending on EC level
#
# ADR Phase Rotator Static Offset value used to determine the
# Phase of the WrClk with respect to SysClk. Adjusts for race
# condition between combinatorial logic for WrClk to SysClk.
#
-# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.REG_33_L2
# [01:23] [0:1] [0:1]
# DPHY01_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0 0x033 0x800080330301143f
+# PHYW.PHYX.ADRNEST.ADR32X0.HC.ADRLOGM.ADRLOGX.CONTROL.TWRAP.REG_33_L2
+# 0x800080330301143F 0x800084330301143F 0x800180330301143F 0x800184330301143F
#scom 0x800(0,1)(80,84)330301143F { # _P[0:1]_ADR32S[0:1]
scom 0x800(0,1)BC330301143F { # _P[0:1]_ADR32S[0:1] via broadcast
- bits , scom_data , expr ; # !!NOTE different depending on EC level
- 48:55 , def_ADR32_TSYS_WRCLK , any ; # ADR32_TSYS_WRCLK for sim set to 0x60
-# 56:63 , 0x00 , any ; # reserved
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# 48 , 0b0 , any ; # reserved
+ # !! NOTE different depending on EC level, system voltage too?
+ # value in the scom_data field is right aligned
+ 48:55 , 0x60 , (def_is_sim) ; # ADR32_TSYS_WRCLK sim set to 0x60
+# below is for fast process parts
+# 48:55 , 0x15 , (CEN.ATTR_MSS_FREQ < 1458) ; # 1333 Mbps, and 1066 (21)
+# 48:55 , 0x19 , (CEN.ATTR_MSS_FREQ < 1724) ; # 1600 Mbps (25)
+# 48:55 , 0x1E , any ; # 1866 Mbps (30)
+# group below is for most parts process...
+## 48:55 , 0x22 , (CEN.ATTR_MSS_FREQ < 1191) ; # 1066 Mbps, 120
+# 48:55 , 0x22 , (CEN.ATTR_MSS_FREQ < 1458) ; # 1333 Mbps, and 1066 (34)
+# 48:55 , 0x28 , (CEN.ATTR_MSS_FREQ < 1724) ; # 1600 Mbps (40)
+# 48:55 , 0x2F , any ; # 1866 Mbps (47)
+# below is for slow process parts
+# 48:55 , 0x2D , (CEN.ATTR_MSS_FREQ < 1458) ; # 1333 Mbps, and 1066 (45)
+# 48:55 , 0x35 , (CEN.ATTR_MSS_FREQ < 1724) ; # 1600 Mbps (53)
+# 48:55 , 0x3E , any ; # 1866 Mbps (62)
+#-------- debug -----------------------------
+ 48:55 , 0x70 , any ;
+# 56:63 , 0x00 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
@@ -3753,7 +4833,7 @@ scom 0x800(0,1)BC330301143F { # _P[0:1]_ADR32S[0:1] via broadcast
# ---------------------------------------------------------------------------------------
# DPHY01.DDRPHY_DP18_WRCLK_PR_P0_0 default=0
#
-# !!NOTE different depending on EC level
+# !! NOTE different depending on EC level
#
# DP18 Phase Rotator Static Offset value used to
# determine the Phase of the WrClk with respect to SysClk.
@@ -3763,18 +4843,34 @@ scom 0x800(0,1)BC330301143F { # _P[0:1]_ADR32S[0:1] via broadcast
# PHYW.PHYX.GEN_DP#0.DPX.HC.HC.D3PHY_WRDP18WRAP.D3PHY_WRDP18CNTL_MAC.DDRPHY_DP18_WRCLK_PR_L2
#scom 0x800(0,1)(00,04,08,0C,10)740301143F { #_P[0:1]_[0:4]
scom 0x800(0,1)3C740301143F { #_P[0:1]_[0:4] via broadcast
- bits , scom_data , expr ; # !!NOTE different depending on EC level
-# 48 , 0b0 , any ; # reserved
-# below yields 0x3000 in register instead of 0x6000 if not right aligned.
-# 49:55 , 0b1100000 , (def_is_sim) ; # DP18_TSYS_WRCLK # for sim set to 0x60
- 49:55 , def_DP18_TSYS_WRCLK , any ; # DP18_TSYS_WRCLK
-# 56:63 , 0x00 , any ; # reserved
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+# 48 , 0b0 , any ; # reserved
+ # !! NOTE different depending on EC level
+ # value in the scom_data field is right aligned
+ 48:55 , 0x60 , (def_is_sim) ; # DP18_TSYS_WRCLK sim set to 0x60
+# below is for fast process parts
+# 48:55 , 0x14 , (CEN.ATTR_MSS_FREQ < 1458) ; # 1333 Mbps, and 1066 (20)
+# 48:55 , 0x18 , (CEN.ATTR_MSS_FREQ < 1724) ; # 1600 Mbps (24)
+# 48:55 , 0x1C , any ; # 1866 Mbps (28)
+# group below is for most parts process...
+## 48:55 , 0x78 , (CEN.ATTR_MSS_FREQ < 1191) ; # 1066 Mbps
+# 48:55 , 0x20 , (CEN.ATTR_MSS_FREQ < 1458) ; # 1333 Mbps, and 1066 (32)
+# 48:55 , 0x27 , (CEN.ATTR_MSS_FREQ < 1724) ; # 1600 Mbps (39)
+# 48:55 , 0x2D , any ; # 1866 Mbps (45)
+# below is for slow process parts
+# 48:55 , 0x2C , (CEN.ATTR_MSS_FREQ < 1458) ; # 1333 Mbps, and 1066 (44)
+# 48:55 , 0x35 , (CEN.ATTR_MSS_FREQ < 1724) ; # 1600 Mbps (53)
+# 48:55 , 0x3E , any ; # 1866 Mbps (62)
+#-------- debug -----------------------------
+ 48:55 , 0x6B , any ;
+# 56:63 , 0x00 , any ; # reserved
}
# ---------------------------------------------------------------------------------------
# --- DP18 SYSCLK_PR P[0:1]_[0:4] Phase Rotator ---------------------------
# ---------------------------------------------------------------------------------------
-# DPHY01.DDRPHY_DP18_SYSCLK_PR_P0_0 from (alias spydef) default=0x8070
+# DPHY01.DDRPHY_DP18_SYSCLK_PR_P0_0 default=0x8070
#
# to Align bang-bang
#
@@ -3790,6 +4886,7 @@ scom 0x800(0,1)3C740301143F { #_P[0:1]_[0:4] via broadcast
#scom 0x800(0,1)(00,04,08,0C,10)070301143F { #_P[0:1]_[0:4]
scom 0x800(0,1)3C070301143F { #_P[0:1]_[0:4] via broadcast
bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
48 , 0b1 , any ; # DP18_SYSCLK_ENABLE
49:55 , 0b0000000 , any ; # DP18_SYSCLK_ROT_OVERRIDE
@@ -3821,8 +4918,66 @@ scom 0x800(0,1)3C070301143F { #_P[0:1]_[0:4] via broadcast
# These are settings for the read and write clock enables of the rank pair for
# x4 & x8 DRAM devices with and without spare DRAMs.
#
+# Configuration Requirements:
+# 1) If bit 49, 50, or 51 are set, either bit 48 or 52 must also be set.
+# 2) If bit 52 is set, then bit 49 or 53 must also be set unless bit 52 was only set to satisfy requirement 1.
+# 3) If bit 55 is set, then bit 50, 54, or 56 must also be set.
+# 4) If bit 56 is set, then bit 51, 55, or 57 must also be set unless bit 56 was only set to satisfy requirement 3.
+#
+# [X:Y] represent DP18 lanes(24)
+# lanes 0:15 used for dq bits
+# lanes 16:23 used for dqs signal pairs (16:17, 18:19, 20:21, 22:23)
+#
+# if x4 & no swizzle if x8 and no swizzle
+# quad0 = dq[0:3] clk16 = dqs[16:17] clk16 = dqs[16:17]
+# quad1 = dq[4:7] clk18 = dqs[18:19] clk16 = dqs[16:17]
+# quad2 = dq[8:11] clk20 = dqs[20:21] clk20 = dqs[20:21]
+# quad3 = dq[12:15] clk22 = dqs[22:23] clk20 = dqs[20:21]
+#
+# or another way to look at it...
+#
+# for x4:
+# dqs lane pairs 16/17 18/19 20/21 22/23
+# dq quad nibbles 0 1 2 3 // no swizzle
+# 1 0 2 3 // swizzle lane pairs 16/17 with 18/19
+# 0 1 3 2 // swizzle lane pairs 20/21 with 22/23
+# 1 0 3 2 // swizzle lane pairs 16/17 with 18/19 & 20/21 with 22/23
+#
+# for x8:
+# dqs lane pairs 16/17 18/19 20/21 22/23
+# dq quad nibbles 0:1 n/a 2:3 n/a // no swizzle
+# n/a 0:1 2:3 n/a // swizzle lane pairs 16/17 with 18/19
+# 0:1 n/a n/a 2:3 // swizzle lane pairs 20/21 with 22/23
+# n/a 0:1 n/a 2:3 // swizzle lane pairs 16/17 with 18/19 & 20/21 with 22/23
+#
+# quadx_clk# 16 18 20 22
+# quad# 0 1 2 3 0 1 2 3 2 3
+# ----------------------------------
+# bits 0 1 2 3 4 5 6 7 8 9 10 11 (10:15 unused)
+# ==============================================================
+# possible spare (x4)
+# 0x8640 1 0 0 0 0 1 1 0 0 1 0 0 = x4 no-swizzle, q0=16, q1=18, q2=20, q3=22
+# 0x4A40 0 1 0 0 1 0 1 0 0 1 0 0 = x4 swizzle quad0/1, q0=18, q1=16, q2=20, q3=22
+# 0x8580 1 0 0 0 0 1 0 1 1 0 0 0 = x4 swizzle quad2/3, q0=16, q1=18, q2=22, q3=20
+# 0x4980 0 1 0 0 1 0 0 1 1 0 0 0 = x4 swizzle quad0/1 & 2/3, q0=18, q1=16, q2=22, q3=20
+#
+# no spare (x4)
+# 0x8400 1 0 0 0 0 1 0 0 0 0 0 0 = x4 no-swizzle, q0=16, q1=18, q2=n/a, q3=n/a
+# 0x4800 0 1 0 0 1 0 0 0 0 0 0 0 = x4 swizzle quad0/1, q0=18, q1=16, q2=n/a, q3=n/a
+#
+# possible spare (x8)
+# 0xC300 1 1 0 0 0 0 1 1 0 0 0 0 = x8 no-swizzle, q0:1=16, q2:3=20
+# 0x0F00 0 0 0 0 1 1 1 1 0 0 0 0 = x8 swizzle quad0/1, q0:1=18, q2:3=20
+# 0xC0C0 1 1 0 0 0 0 0 0 1 1 0 0 = x8 swizzle quad2/3, q0:1=16, q2:3=22
+# 0x0CC0 0 0 0 0 1 1 0 0 1 1 0 0 = x8 swizzle quad0/1 & 2/3, q0:1=18, q2:3=22
+#
+# no spare (x8)
+# 0xC000 1 1 0 0 0 0 0 0 0 0 0 0 = x8 no swizzle
+# 0x0C00 0 0 0 0 1 1 0 0 0 0 0 0 = x8 swizzle quad0/1
+#
+#
# For Centaur:
-# Spares on P0_1, P1_2, P2_4, P3_1, DQS in lanes 2:3, DQ in lanes 8:15
+# Spares on P0_1, P1_2, P2_4, P3_1, DQ in lanes 0:15, DQS in lanes 16:23
#
# DP18 Read Clock Enable & Selection RP0
# [01:23] PAIR[0:3]_P[0:1]_[0:4]
@@ -3843,149 +4998,173 @@ scom 0x800(0,1)3C070301143F { #_P[0:1]_[0:4] via broadcast
#
# instance _0=00, _1=04, _2=08, _3=0C, _4=10
# RANK_PAIR[0:3], RP[0:3] _P0_0
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_0 (4)
-# DPHY01_DRPHY_DP18_WRCLK_EN_RP0_P0_0 (5)
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_0 (4) 0x800000040301143F
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_1 (4) 0x800004040301143F
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_2 (4) 0x800008040301143F
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_3 (4) 0x80000C040301143F
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_4 (4) 0x800010040301143F
+# DPHY01_DRPHY_DP18_WRCLK_EN_RP0_P0_0 (5) 0x800000050301143F
+# DPHY01_DRPHY_DP18_WRCLK_EN_RP0_P0_1 (5) 0x800004050301143F
+# DPHY01_DRPHY_DP18_WRCLK_EN_RP0_P0_2 (5) 0x800008050301143F
+# DPHY01_DRPHY_DP18_WRCLK_EN_RP0_P0_3 (5) 0x80000C050301143F
+# DPHY01_DRPHY_DP18_WRCLK_EN_RP0_P0_4 (5) 0x800010050301143F
scom 0x8000008(4,5)0301143F { # _RP[0:3] via broadcast bit
# P0_0
- bits , scom_data , expr ;
- 48:63 , 0x8580 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8580 , ((def_is_mba01) && (def_is_x4)) ; # x4 swizzle quad2/3
+ 48:63 , 0xC0C0 , ((def_is_mba01) && (def_is_x8) && (def_is_type1)) ; # x8 swizzle quad 2/3
+ 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8 no swizzle
# P2_0
- 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0x0F00 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0x0F00 , ((def_is_mba23) && (def_is_x8)) ; # x8 swizzle quad0/1
48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P0_1
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_1
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_1
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_1 0x800004840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_1 0x800004850301143F
scom 0x8000048(4,5)0301143F { # _RP[0:3] via broadcast bit
# P0_1
- bits , scom_data , expr ;
- 48:63 , 0x8580 , ((def_is_mba01) && (def_has_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x8400 , ((def_is_mba01) && (def_no_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x0CC0 , ((def_is_mba01) && (def_has_spare) && (def_is_x8)) ; # x8
- 48:63 , 0x0C00 , ((def_is_mba01) && (def_no_spare) && (def_is_x8)) ; # x8
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8580 , ((def_is_mba01) && (def_has_spare) && (def_is_x4)) ; # x4 spare swizzle quad2/3
+ 48:63 , 0x8400 , ((def_is_mba01) && (def_no_spare) && (def_is_x4)) ; # x4 no-spare no swizzle
+ 48:63 , 0x0CC0 , ((def_is_mba01) && (def_has_spare) && (def_is_x8)) ; # x8 swizzle quad0/1 & 2/3
+ 48:63 , 0x0C00 , ((def_is_mba01) && (def_no_spare) && (def_is_x8)) ; # x8 swizzle quad0/1
# P2_1
- 48:63 , 0x8580 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x8580 , ((def_is_mba23) && (def_is_x4)) ; # x4 swizzle quad2/3
+ 48:63 , 0xC300 , ((def_is_mba23) && (def_is_x8)) ; # x8 no swizzle
48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P0_2
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_2
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_2
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_2 0x800008840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_2 0x800008850301143F
scom 0x8000088(4,5)0301143F { # _RP[0:3] via broadcast bit
# P0_2
bits , scom_data , expr ;
- 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0x0CC0 , ((def_is_mba01) && (def_is_x8)) ; # x8
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0x0CC0 , ((def_is_mba01) && (def_is_x8)) ; # x8 swizzle quad0/1 & 2/3
# P2_2
- 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0x0CC0 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0x0CC0 , ((def_is_mba23) && (def_is_x8)) ; # x8 swizzle quad0/1 & 2/3
48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P0_3
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_3
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_3
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_3 0x80000C840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_3 0x80000C850301143F
scom 0x80000C8(4,5)0301143F { # _RP[0:3] via broadcast bit
# P0_3
- bits , scom_data , expr ;
- 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0x0CC0 , ((def_is_mba01) && (def_is_x8)) ; # x8
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0x0F00 , ((def_is_mba01) && (def_is_x8) && (def_is_type1)) ; # x8 swizzle quad0/1
+ 48:63 , 0x0CC0 , ((def_is_mba01) && (def_is_x8)) ; # x8 swizzle quad0/1 & 2/3
# P2_3
- 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0xC0C0 , ((def_is_mba23) && (def_is_x8)) ; # x8
- 48:63 , 0x0000 , any ;
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0xC0C0 , ((def_is_mba23) && (def_is_x8)) ; # x8 swizzle quad2/3
+ 48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P0_4
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_4
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_4
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P0_4 0x800010840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P0_4 0x800010850301143F
scom 0x8000108(4,5)0301143F { # _RP[0:3] via broadcast bit
# P0_4
bits , scom_data , expr ;
- 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0x0F00 , ((def_is_mba01) && (def_is_x8)) ; # x8
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0x0F00 , ((def_is_mba01) && (def_is_x8)) ; # x8 swizzle quad0/1
# P2_4
- 48:63 , 0x8640 , ((def_is_mba23) && (def_has_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x8400 , ((def_is_mba23) && (def_no_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x0F00 , ((def_is_mba23) && (def_has_spare) && (def_is_x8)) ; # x8
- 48:63 , 0x0C00 , ((def_is_mba23) && (def_no_spare) && (def_is_x8)) ; # x8
- 48:63 , 0x0000 , any ;
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_has_spare) && (def_is_x4)) ; # x4 spare no swizzle
+ 48:63 , 0x8400 , ((def_is_mba23) && (def_no_spare) && (def_is_x4)) ; # x4 no-spare no swizzle
+ 48:63 , 0x0F00 , ((def_is_mba23) && (def_has_spare) && (def_is_x8)) ; # x8 swizzle quad0/1
+ 48:63 , 0x0C00 , ((def_is_mba23) && (def_no_spare) && (def_is_x8)) ; # x8 swizzle quad0/1
+ 48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P1_0
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_0
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_0
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_0 0x800100840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_0 0x800100850301143F
scom 0x8001008(4,5)0301143F { # _RP[0:3] via broadcast bit
# P1_0
- bits , scom_data , expr ;
- 48:63 , 0x4A40 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0x0F00 , ((def_is_mba01) && (def_is_x8)) ; # x8
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x4A40 , ((def_is_mba01) && (def_is_x4)) ; # x4 swizzle quad0/1
+ 48:63 , 0xC0C0 , ((def_is_mba01) && (def_is_x8) && (def_is_type1)) ; # x8 swizzle quad2/3
+ 48:63 , 0x0F00 , ((def_is_mba01) && (def_is_x8)) ; # x8 swizzle quad0/1
# P3_0
- 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0xC300 , ((def_is_mba23) && (def_is_x8)) ; # x8 no swizzle
48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3]_, P1_1
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_1
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_1
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_1 0x800104840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_1 0x800104850301143F
scom 0x8001048(4,5)0301143F { # _RP[0:3] via broadcast bit
# P1_1
- bits , scom_data , expr ;
- 48:63 , 0x4A40 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4) && (def_is_type1)) ; # x4 no swizzle
+ 48:63 , 0x4A40 , ((def_is_mba01) && (def_is_x4)) ; # x4 swizzle quad0/1
+ 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8 no swizzle
# P3_1
- 48:63 , 0x8640 , ((def_is_mba23) && (def_has_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x8400 , ((def_is_mba23) && (def_no_spare) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba23) && (def_has_spare) && (def_is_x8)) ; # x8
- 48:63 , 0xC000 , ((def_is_mba23) && (def_no_spare) && (def_is_x8)) ; # x8
- 48:63 , 0x0000 , any ;
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_has_spare) && (def_is_x4)) ; # x4 spare no swizzle
+ 48:63 , 0x8400 , ((def_is_mba23) && (def_no_spare) && (def_is_x4)) ; # x4 no-spare no swizzle
+ 48:63 , 0xC300 , ((def_is_mba23) && (def_has_spare) && (def_is_x8)) ; # x8 no swizzle
+ 48:63 , 0xC000 , ((def_is_mba23) && (def_no_spare) && (def_is_x8)) ; # x8 no swizzle
+ 48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P1_2
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_2
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_2
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_2 0x800108840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_2 0x800108850301143F
scom 0x8001088(4,5)0301143F { # _RP[0:3] via broadcast bit
# P1_2
bits , scom_data , expr ;
- 48:63 , 0x8640 , ((def_is_mba01) && (def_has_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x8400 , ((def_is_mba01) && (def_no_spare) && (def_is_x4)) ; # x4
- 48:63 , 0x0CC0 , ((def_is_mba01) && (def_has_spare) && (def_is_x8)) ; # x8
- 48:63 , 0x0C00 , ((def_is_mba01) && (def_no_spare) && (def_is_x8)) ; # x8
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8640 , ((def_is_mba01) && (def_has_spare) && (def_is_x4)) ; # x4 spare no swizzle
+ 48:63 , 0x8400 , ((def_is_mba01) && (def_no_spare) && (def_is_x4)) ; # x4 no-spare no swizzle
+ 48:63 , 0x0CC0 , ((def_is_mba01) && (def_has_spare) && (def_is_x8)) ; # x8 swizzle quad0/1 & 2/3
+ 48:63 , 0x0C00 , ((def_is_mba01) && (def_no_spare) && (def_is_x8)) ; # x8 swizzle quad0/1
# P3_2
- 48:63 , 0x8580 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0x0F00 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x8580 , ((def_is_mba23) && (def_is_x4)) ; # x4 swizzle quad2/3
+ 48:63 , 0x0F00 , ((def_is_mba23) && (def_is_x8)) ; # x8 swizzle quad0/1
48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P1_3
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_3
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_3
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_3 0x80010C840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_3 0x80010C850301143F
scom 0x80010C8(4,5)0301143F { # _RP[0:3] via broadcast bit
# P1_3
- bits , scom_data , expr ;
- 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8
+ bits , scom_data , expr ;
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8640 , ((def_is_mba01) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0xC0C0 , ((def_is_mba01) && (def_is_x8) && (def_is_type1)) ; # x8 swizzle quad2/3
+ 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8 no swizzle
# P3_3
- 48:63 , 0x4A40 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x4A40 , ((def_is_mba23) && (def_is_x4)) ; # x4 swizzle quad0/1
+ 48:63 , 0xC300 , ((def_is_mba23) && (def_is_x8)) ; # x8 no swizzle
48:63 , 0x0000 , any ;
}
# RANK_PAIR[0:3], RP[0:3] _P1_4
-# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_4
-# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_4
+# DPHY01_DDRPHY_DP18_READ_CLOCK_RANK_PAIR0_P1_4 0x800110840301143F
+# DPHY01_DDRPHY_DP18_WRCLK_EN_RP0_P1_4 0x800110850301143F
scom 0x8001108(4,5)0301143F { # _RP[0:3] via broadcast bit
# P1_4
bits , scom_data , expr ;
- 48:63 , 0x8580 , ((def_is_mba01) && (def_is_x4)) ; # x4
- 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8
+# 0:47 , 0x000000000000, any ; # reserved
+ 48:63 , 0x8580 , ((def_is_mba01) && (def_is_x4)) ; # x4 swizzle quad2/3
+ 48:63 , 0xC300 , ((def_is_mba01) && (def_is_x8)) ; # x8 no swizzle
# P3_4
- 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4
- 48:63 , 0x0CC0 , ((def_is_mba23) && (def_is_x8)) ; # x8
+ 48:63 , 0x8640 , ((def_is_mba23) && (def_is_x4)) ; # x4 no swizzle
+ 48:63 , 0x0CC0 , ((def_is_mba23) && (def_is_x8)) ; # x8 swizzle quad0/1 & 2/3
48:63 , 0x0000 , any ;
}
+
OpenPOWER on IntegriCloud