564 lines
19 KiB
Bash
564 lines
19 KiB
Bash
#!/bin/bash
|
|
|
|
# ============================================================
|
|
# Copyright (c) Lightos_
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify it
|
|
# under the terms and conditions of the GNU General Public License,
|
|
# version 2, as published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
# more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# ============================================================
|
|
|
|
BASE=0x7001B000
|
|
|
|
REGISTERS="
|
|
EMC_INTSTATUS_0 0x0
|
|
EMC_INTMASK_0 0x4
|
|
EMC_DBG_0 0x8
|
|
EMC_CFG_0 0xc
|
|
EMC_ADR_CFG_0 0x10
|
|
EMC_REFCTRL_0 0x20
|
|
EMC_PIN_0 0x24
|
|
EMC_TIMING_CONTROL_0 0x28
|
|
EMC_RC_0 0x2c
|
|
EMC_RFC_0 0x30
|
|
EMC_RAS_0 0x34
|
|
EMC_RP_0 0x38
|
|
EMC_R2W_0 0x3c
|
|
EMC_W2R_0 0x40
|
|
EMC_R2P_0 0x44
|
|
EMC_W2P_0 0x48
|
|
EMC_RD_RCD_0 0x4c
|
|
EMC_WR_RCD_0 0x50
|
|
EMC_RRD_0 0x54
|
|
EMC_REXT_0 0x58
|
|
EMC_WDV_0 0x5c
|
|
EMC_QUSE_0 0x60
|
|
EMC_QRST_0 0x64
|
|
EMC_QSAFE_0 0x68
|
|
EMC_RDV_0 0x6c
|
|
EMC_REFRESH_0 0x70
|
|
EMC_BURST_REFRESH_NUM_0 0x74
|
|
EMC_PDEX2WR_0 0x78
|
|
EMC_PDEX2RD_0 0x7c
|
|
EMC_PCHG2PDEN_0 0x80
|
|
EMC_ACT2PDEN_0 0x84
|
|
EMC_AR2PDEN_0 0x88
|
|
EMC_RW2PDEN_0 0x8c
|
|
EMC_TXSR_0 0x90
|
|
EMC_TCKE_0 0x94
|
|
EMC_TFAW_0 0x98
|
|
EMC_TRPAB_0 0x9c
|
|
EMC_TCLKSTABLE_0 0xa0
|
|
EMC_TCLKSTOP_0 0xa4
|
|
EMC_TREFBW_0 0xa8
|
|
EMC_TPPD_0 0xac
|
|
EMC_ODT_WRITE_0 0xb0
|
|
EMC_PDEX2MRR_0 0xb4
|
|
EMC_WEXT_0 0xb8
|
|
EMC_RFC_SLR_0 0xc0
|
|
EMC_MRS_WAIT_CNT2_0 0xc4
|
|
EMC_MRS_WAIT_CNT_0 0xc8
|
|
EMC_MRS_0 0xcc
|
|
EMC_EMRS_0 0xd0
|
|
EMC_REF_0 0xd4
|
|
EMC_PRE_0 0xd8
|
|
EMC_NOP_0 0xdc
|
|
EMC_SELF_REF_0 0xe0
|
|
EMC_DPD_0 0xe4
|
|
EMC_MRW_0 0xe8
|
|
EMC_MRR_0 0xec
|
|
EMC_CMDQ_0 0xf0
|
|
EMC_MC2EMCQ_0 0xf4
|
|
EMC_FBIO_SPARE_0 0x100
|
|
EMC_FBIO_CFG5_0 0x104
|
|
EMC_FBIO_CFG6_0 0x114
|
|
EMC_PDEX2CKE_0 0x118
|
|
EMC_CKE2PDEN_0 0x11c
|
|
EMC_CFG_RSV_0 0x120
|
|
EMC_ACPD_CONTROL_0 0x124
|
|
EMC_MPC_0 0x128
|
|
EMC_EMRS2_0 0x12c
|
|
EMC_EMRS3_0 0x130
|
|
EMC_MRW2_0 0x134
|
|
EMC_MRW3_0 0x138
|
|
EMC_MRW4_0 0x13c
|
|
EMC_CLKEN_OVERRIDE_0 0x140
|
|
EMC_R2R_0 0x144
|
|
EMC_W2W_0 0x148
|
|
EMC_EINPUT_0 0x14c
|
|
EMC_EINPUT_DURATION_0 0x150
|
|
EMC_PUTERM_EXTRA_0 0x154
|
|
EMC_TCKESR_0 0x158
|
|
EMC_TPD_0 0x15c
|
|
EMC_AUTO_CAL_CONFIG_0 0x2a4
|
|
EMC_AUTO_CAL_INTERVAL_0 0x2a8
|
|
EMC_AUTO_CAL_STATUS_0 0x2ac
|
|
EMC_REQ_CTRL_0 0x2b0
|
|
EMC_EMC_STATUS_0 0x2b4
|
|
EMC_CFG_2_0 0x2b8
|
|
EMC_CFG_DIG_DLL_0 0x2bc
|
|
EMC_CFG_DIG_DLL_PERIOD_0 0x2c0
|
|
EMC_DIG_DLL_STATUS_0 0x2c4
|
|
EMC_CFG_DIG_DLL_1_0 0x2c8
|
|
EMC_RDV_MASK_0 0x2cc
|
|
EMC_WDV_MASK_0 0x2d0
|
|
EMC_RDV_EARLY_MASK_0 0x2d4
|
|
EMC_RDV_EARLY_0 0x2d8
|
|
EMC_AUTO_CAL_CONFIG8_0 0x2dc
|
|
EMC_ZCAL_INTERVAL_0 0x2e0
|
|
EMC_ZCAL_WAIT_CNT_0 0x2e4
|
|
EMC_ZCAL_MRW_CMD_0 0x2e8
|
|
EMC_ZQ_CAL_0 0x2ec
|
|
EMC_XM2COMPPADCTRL3_0 0x2f4
|
|
EMC_AUTO_CAL_VREF_SEL_0_0 0x2f8
|
|
EMC_AUTO_CAL_VREF_SEL_1_0 0x300
|
|
EMC_XM2COMPPADCTRL_0 0x30c
|
|
EMC_FDPD_CTRL_DQ_0 0x310
|
|
EMC_FDPD_CTRL_CMD_0 0x314
|
|
EMC_PMACRO_CMD_BRICK_CTRL_FDPD_0 0x318
|
|
EMC_PMACRO_DATA_BRICK_CTRL_FDPD_0 0x31c
|
|
EMC_SCRATCH0_0 0x324
|
|
EMC_PMACRO_BRICK_CTRL_RFU1_0 0x330
|
|
EMC_PMACRO_BRICK_CTRL_RFU2_0 0x334
|
|
EMC_CMD_MAPPING_CMD0_0_0 0x380
|
|
EMC_CMD_MAPPING_CMD0_1_0 0x384
|
|
EMC_CMD_MAPPING_CMD0_2_0 0x388
|
|
EMC_CMD_MAPPING_CMD1_0_0 0x38c
|
|
EMC_CMD_MAPPING_CMD1_1_0 0x390
|
|
EMC_CMD_MAPPING_CMD1_2_0 0x394
|
|
EMC_CMD_MAPPING_CMD2_0_0 0x398
|
|
EMC_CMD_MAPPING_CMD2_1_0 0x39c
|
|
EMC_CMD_MAPPING_CMD2_2_0 0x3a0
|
|
EMC_CMD_MAPPING_CMD3_0_0 0x3a4
|
|
EMC_CMD_MAPPING_CMD3_1_0 0x3a8
|
|
EMC_CMD_MAPPING_CMD3_2_0 0x3ac
|
|
EMC_CMD_MAPPING_BYTE_0 0x3b0
|
|
EMC_TR_TIMING_0_0 0x3b4
|
|
EMC_TR_CTRL_0_0 0x3b8
|
|
EMC_TR_CTRL_1_0 0x3bc
|
|
EMC_SWITCH_BACK_CTRL_0 0x3c0
|
|
EMC_TR_RDV_0 0x3c4
|
|
EMC_STALL_THEN_EXE_BEFORE_CLKCHANGE_0 0x3c8
|
|
EMC_STALL_THEN_EXE_AFTER_CLKCHANGE_0 0x3cc
|
|
EMC_UNSTALL_RW_AFTER_CLKCHANGE_0 0x3d0
|
|
EMC_AUTO_CAL_ 0x3d4
|
|
EMC_SEL_DPD_CTRL_0 0x3d8
|
|
EMC_PRE_REFRESH_REQ_CNT_0 0x3dc
|
|
EMC_DYN_SELF_REF_CONTROL_0 0x3e0
|
|
EMC_TXSRDLL_0 0x3e4
|
|
EMC_CCFIFO_ADDR_0 0x3e8
|
|
EMC_CCFIFO_DATA_0 0x3ec
|
|
EMC_CCFIFO_STATUS_0 0x3f0
|
|
EMC_TR_QPOP_0 0x3f4
|
|
EMC_TR_RDV_MASK_0 0x3f8
|
|
EMC_TR_QSAFE_0 0x3fc
|
|
EMC_TR_QRST_0 0x400
|
|
EMC_SWIZZLE_RANK0_BYTE0_0 0x404
|
|
EMC_SWIZZLE_RANK0_BYTE1_0 0x408
|
|
EMC_SWIZZLE_RANK0_BYTE2_0 0x40c
|
|
EMC_SWIZZLE_RANK0_BYTE3_0 0x410
|
|
EMC_SWIZZLE_RANK1_BYTE0_0 0x418
|
|
EMC_SWIZZLE_RANK1_BYTE1_0 0x41c
|
|
EMC_SWIZZLE_RANK1_BYTE2_0 0x420
|
|
EMC_SWIZZLE_RANK1_BYTE3_0 0x424
|
|
EMC_ISSUE_QRST_0 0x428
|
|
EMC_PMC_SCRATCH1_0 0x440
|
|
EMC_PMC_SCRATCH2_0 0x444
|
|
EMC_PMC_SCRATCH3_0 0x448
|
|
EMC_AUTO_CAL_CONFIG2_0 0x458
|
|
EMC_AUTO_CAL_CONFIG3_0 0x45c
|
|
EMC_TR_DVFS_0 0x460
|
|
EMC_AUTO_CAL_CHANNEL_0 0x464
|
|
EMC_IBDLY_0 0x468
|
|
EMC_OBDLY_0 0x46c
|
|
EMC_TXDSRVTTGEN_0 0x480
|
|
EMC_WE_DURATION_0 0x48c
|
|
EMC_WS_DURATION_0 0x490
|
|
EMC_WEV_0 0x494
|
|
EMC_WSV_0 0x498
|
|
EMC_CFG_3_0 0x49c
|
|
EMC_MRW5_0 0x4a0
|
|
EMC_MRW6_0 0x4a4
|
|
EMC_MRW7_0 0x4a8
|
|
EMC_MRW8_0 0x4ac
|
|
EMC_MRW9_0 0x4b0
|
|
EMC_MRW10_0 0x4b4
|
|
EMC_MRW11_0 0x4b8
|
|
EMC_MRW12_0 0x4bc
|
|
EMC_MRW13_0 0x4c0
|
|
EMC_MRW14_0 0x4c4
|
|
EMC_MRW15_0 0x4d0
|
|
EMC_CFG_SYNC_0 0x4d4
|
|
EMC_FDPD_CTRL_CMD_NO_RAMP_0 0x4d8
|
|
EMC_WDV_CHK_0 0x4e0
|
|
EMC_CFG_PIPE_2_0 0x554
|
|
EMC_CFG_PIPE_CLK_0 0x558
|
|
EMC_CFG_PIPE_1_0 0x55c
|
|
EMC_CFG_PIPE_0 0x560
|
|
EMC_QPOP_0 0x564
|
|
EMC_QUSE_WIDTH_0 0x568
|
|
EMC_PUTERM_WIDTH_0 0x56c
|
|
EMC_BGBIAS_CTL0_0 0x570
|
|
EMC_AUTO_CAL_CONFIG7_0 0x574
|
|
EMC_XM2COMPPADCTRL2_0 0x578
|
|
EMC_COMP_PAD_SW_CTRL_0 0x57c
|
|
EMC_REFCTRL2_0 0x580
|
|
EMC_FBIO_CFG7_0 0x584
|
|
EMC_DATA_BRLSHFT_0_0 0x588
|
|
EMC_DATA_BRLSHFT_1_0 0x58c
|
|
EMC_RFCPB_0 0x590
|
|
EMC_DQS_BRLSHFT_0_0 0x594
|
|
EMC_DQS_BRLSHFT_1_0 0x598
|
|
EMC_CMD_BRLSHFT_0_0 0x59c
|
|
EMC_CMD_BRLSHFT_1_0 0x5a0
|
|
EMC_CMD_BRLSHFT_2_0 0x5a4
|
|
EMC_CMD_BRLSHFT_3_0 0x5a8
|
|
EMC_QUSE_BRLSHFT_0_0 0x5ac
|
|
EMC_AUTO_CAL_CONFIG4_0 0x5b0
|
|
EMC_AUTO_CAL_CONFIG5_0 0x5b4
|
|
EMC_QUSE_BRLSHFT_1_0 0x5b8
|
|
EMC_QUSE_BRLSHFT_2_0 0x5bc
|
|
EMC_CCDMW_0 0x5c0
|
|
EMC_QUSE_BRLSHFT_3_0 0x5c4
|
|
EMC_FBIO_CFG8_0 0x5c8
|
|
EMC_AUTO_CAL_CONFIG6_0 0x5cc
|
|
EMC_PROTOBIST_CONFIG_ADR_1_0 0x5d0
|
|
EMC_PROTOBIST_CONFIG_ADR_2_0 0x5d4
|
|
EMC_PROTOBIST_MISC_0 0x5d8
|
|
EMC_PROTOBIST_WDATA_LOWER_0 0x5dc
|
|
EMC_PROTOBIST_WDATA_UPPER_0 0x5e0
|
|
EMC_PROTOBIST_RDATA_0 0x5ec
|
|
EMC_DLL_CFG_0_0 0x5e4
|
|
EMC_DLL_CFG_1_0 0x5e8
|
|
EMC_CONFIG_SAMPLE_DELAY_0 0x5f0
|
|
EMC_CFG_UPDATE_0 0x5f4
|
|
EMC_PMACRO_QUSE_DDLL_RANK0_0_0 0x600
|
|
EMC_PMACRO_QUSE_DDLL_RANK0_1_0 0x604
|
|
EMC_PMACRO_QUSE_DDLL_RANK0_2_0 0x608
|
|
EMC_PMACRO_QUSE_DDLL_RANK0_3_0 0x60c
|
|
EMC_PMACRO_QUSE_DDLL_RANK0_4_0 0x610
|
|
EMC_PMACRO_QUSE_DDLL_RANK0_5_0 0x614
|
|
EMC_PMACRO_QUSE_DDLL_RANK1_0_0 0x620
|
|
EMC_PMACRO_QUSE_DDLL_RANK1_1_0 0x624
|
|
EMC_PMACRO_QUSE_DDLL_RANK1_2_0 0x628
|
|
EMC_PMACRO_QUSE_DDLL_RANK1_3_0 0x62c
|
|
EMC_PMACRO_QUSE_DDLL_RANK1_4_0 0x630
|
|
EMC_PMACRO_QUSE_DDLL_RANK1_5_0 0x634
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK0_0_0 0x640
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK0_1_0 0x644
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK0_2_0 0x648
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK0_3_0 0x64c
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK0_4_0 0x650
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK0_5_0 0x654
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK1_0_0 0x660
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK1_1_0 0x664
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK1_2_0 0x668
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK1_3_0 0x66c
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK1_4_0 0x670
|
|
EMC_PMACRO_OB_DDLL_LONG_DQ_RANK1_5_0 0x674
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK0_0_0 0x680
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK0_1_0 0x684
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK0_2_0 0x688
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK0_3_0 0x68c
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK0_4_0 0x690
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK0_5_0 0x694
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK1_0_0 0x6a0
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK1_1_0 0x6a4
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK1_2_0 0x6a8
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK1_3_0 0x6ac
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK1_4_0 0x6b0
|
|
EMC_PMACRO_OB_DDLL_LONG_DQS_RANK1_5_0 0x6b4
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK0_0_0 0x6c0
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK0_1_0 0x6c4
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK0_2_0 0x6c8
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK0_3_0 0x6cc
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK0_4_0 0x6d0
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK0_5_0 0x6d4
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK1_0_0 0x6e0
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK1_1_0 0x6e4
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK1_2_0 0x6e8
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK1_3_0 0x6ec
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK1_4_0 0x6f0
|
|
EMC_PMACRO_IB_DDLL_LONG_DQS_RANK1_5_0 0x6f4
|
|
EMC_PMACRO_AUTOCAL_CFG_0_0 0x700
|
|
EMC_PMACRO_AUTOCAL_CFG_1_0 0x704
|
|
EMC_PMACRO_AUTOCAL_CFG_2_0 0x708
|
|
EMC_PMACRO_TX_PWRD_0_0 0x720
|
|
EMC_PMACRO_TX_PWRD_1_0 0x724
|
|
EMC_PMACRO_TX_PWRD_2_0 0x728
|
|
EMC_PMACRO_TX_PWRD_3_0 0x72c
|
|
EMC_PMACRO_TX_PWRD_4_0 0x730
|
|
EMC_PMACRO_TX_PWRD_5_0 0x734
|
|
EMC_PMACRO_TX_SEL_CLK_SRC_0_0 0x740
|
|
EMC_PMACRO_TX_SEL_CLK_SRC_1_0 0x744
|
|
EMC_PMACRO_TX_SEL_CLK_SRC_2_0 0x748
|
|
EMC_PMACRO_TX_SEL_CLK_SRC_3_0 0x74c
|
|
EMC_PMACRO_TX_SEL_CLK_SRC_4_0 0x750
|
|
EMC_PMACRO_TX_SEL_CLK_SRC_5_0 0x754
|
|
EMC_PMACRO_DDLL_BYPASS_0 0x760
|
|
EMC_PMACRO_DDLL_PWRD_0_0 0x770
|
|
EMC_PMACRO_DDLL_PWRD_1_0 0x774
|
|
EMC_PMACRO_DDLL_PWRD_2_0 0x778
|
|
EMC_PMACRO_CMD_CTRL_0_0 0x780
|
|
EMC_PMACRO_CMD_CTRL_1_0 0x784
|
|
EMC_PMACRO_CMD_CTRL_2_0 0x788
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE0_0_0 0x800
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE0_1_0 0x804
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE0_2_0 0x808
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE0_3_0 0x80c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE1_0_0 0x810
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE1_1_0 0x814
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE1_2_0 0x818
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE1_3_0 0x81c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE2_0_0 0x820
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE2_1_0 0x824
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE2_2_0 0x828
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE2_3_0 0x82c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE3_0_0 0x830
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE3_1_0 0x834
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE3_2_0 0x838
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE3_3_0 0x83c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE4_0_0 0x840
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE4_1_0 0x844
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE4_2_0 0x848
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE4_3_0 0x84c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE5_0_0 0x850
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE5_1_0 0x854
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE5_2_0 0x858
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE5_3_0 0x85c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE6_0_0 0x860
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE6_1_0 0x864
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE6_2_0 0x868
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE6_3_0 0x86c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE7_0_0 0x870
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE7_1_0 0x874
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE7_2_0 0x878
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_BYTE7_3_0 0x87c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD0_0_0 0x880
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD0_1_0 0x884
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD0_2_0 0x888
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD0_3_0 0x88c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD1_0_0 0x890
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD1_1_0 0x894
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD1_2_0 0x898
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD1_3_0 0x89c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD2_0_0 0x8a0
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD2_1_0 0x8a4
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD2_2_0 0x8a8
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD2_3_0 0x8ac
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD3_0_0 0x8b0
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD3_1_0 0x8b4
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD3_2_0 0x8b8
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK0_CMD3_3_0 0x8bc
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE0_0_0 0x900
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE0_1_0 0x904
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE0_2_0 0x908
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE0_3_0 0x90c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE1_0_0 0x910
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE1_1_0 0x914
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE1_2_0 0x918
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE1_3_0 0x91c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE2_0_0 0x920
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE2_1_0 0x924
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE2_2_0 0x928
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE2_3_0 0x92c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE3_0_0 0x930
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE3_1_0 0x934
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE3_2_0 0x938
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE3_3_0 0x93c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE4_0_0 0x940
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE4_1_0 0x944
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE4_2_0 0x948
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE4_3_0 0x94c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE5_0_0 0x950
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE5_1_0 0x954
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE5_2_0 0x958
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE5_3_0 0x95c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE6_0_0 0x960
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE6_1_0 0x964
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE6_2_0 0x968
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE6_3_0 0x96c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE7_0_0 0x970
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE7_1_0 0x974
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE7_2_0 0x978
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_BYTE7_3_0 0x97c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD0_0_0 0x980
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD0_1_0 0x984
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD0_2_0 0x988
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD0_3_0 0x98c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD1_0_0 0x990
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD1_1_0 0x994
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD1_2_0 0x998
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD1_3_0 0x99c
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD2_0_0 0x9a0
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD2_1_0 0x9a4
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD2_2_0 0x9a8
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD2_3_0 0x9ac
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD3_0_0 0x9b0
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD3_1_0 0x9b4
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD3_2_0 0x9b8
|
|
EMC_PMACRO_OB_DDLL_SHORT_DQ_RANK1_CMD3_3_0 0x9bc
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE0_0_0 0xa00
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE0_1_0 0xa04
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE0_2_0 0xa08
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE1_0_0 0xa10
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE1_1_0 0xa14
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE1_2_0 0xa18
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE2_0_0 0xa20
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE2_1_0 0xa24
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE2_2_0 0xa28
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE3_0_0 0xa30
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE3_1_0 0xa34
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE3_2_0 0xa38
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE4_0_0 0xa40
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE4_1_0 0xa44
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE4_2_0 0xa48
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE5_0_0 0xa50
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE5_1_0 0xa54
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE5_2_0 0xa58
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE6_0_0 0xa60
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE6_1_0 0xa64
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE6_2_0 0xa68
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE7_0_0 0xa70
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE7_1_0 0xa74
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_BYTE7_2_0 0xa78
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD0_0_0 0xa80
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD0_1_0 0xa84
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD0_2_0 0xa88
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD1_0_0 0xa90
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD1_1_0 0xa94
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD1_2_0 0xa98
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD2_0_0 0xaa0
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD2_1_0 0xaa4
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD2_2_0 0xaa8
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD3_0_0 0xab0
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD3_1_0 0xab4
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK0_CMD3_2_0 0xab8
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE0_0_0 0xb00
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE0_1_0 0xb04
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE0_2_0 0xb08
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE1_0_0 0xb10
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE1_1_0 0xb14
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE1_2_0 0xb18
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE2_0_0 0xb20
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE2_1_0 0xb24
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE2_2_0 0xb28
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE3_0_0 0xb30
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE3_1_0 0xb34
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE3_2_0 0xb38
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE4_0_0 0xb40
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE4_1_0 0xb44
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE4_2_0 0xb48
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE5_0_0 0xb50
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE5_1_0 0xb54
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE5_2_0 0xb58
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE6_0_0 0xb60
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE6_1_0 0xb64
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE6_2_0 0xb68
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE7_0_0 0xb70
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE7_1_0 0xb74
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_BYTE7_2_0 0xb78
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD0_0_0 0xb80
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD0_1_0 0xb84
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD0_2_0 0xb88
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD1_0_0 0xb90
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD1_1_0 0xb94
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD1_2_0 0xb98
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD2_0_0 0xba0
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD2_1_0 0xba4
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD2_2_0 0xba8
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD3_0_0 0xbb0
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD3_1_0 0xbb4
|
|
EMC_PMACRO_IB_DDLL_SHORT_DQ_RANK1_CMD3_2_0 0xbb8
|
|
EMC_PMACRO_IB_VREF_DQ_0_0 0xbe0
|
|
EMC_PMACRO_IB_VREF_DQ_1_0 0xbe4
|
|
EMC_PMACRO_IB_VREF_DQ_2_0 0xbe8
|
|
EMC_PMACRO_IB_VREF_DQS_0_0 0xbf0
|
|
EMC_PMACRO_IB_VREF_DQS_1_0 0xbf4
|
|
EMC_PMACRO_IB_VREF_DQS_2_0 0xbf8
|
|
EMC_PMACRO_DDLL_LONG_CMD_0_0 0xc00
|
|
EMC_PMACRO_DDLL_LONG_CMD_1_0 0xc04
|
|
EMC_PMACRO_DDLL_LONG_CMD_2_0 0xc08
|
|
EMC_PMACRO_DDLL_LONG_CMD_3_0 0xc0c
|
|
EMC_PMACRO_DDLL_LONG_CMD_4_0 0xc10
|
|
EMC_PMACRO_DDLL_LONG_CMD_5_0 0xc14
|
|
EMC_PMACRO_DDLL_SHORT_CMD_0_0 0xc20
|
|
EMC_PMACRO_DDLL_SHORT_CMD_1_0 0xc24
|
|
EMC_PMACRO_DDLL_SHORT_CMD_2_0 0xc28
|
|
EMC_PMACRO_CFG_PM_GLOBAL_0_0 0xc30
|
|
EMC_PMACRO_VTTGEN_CTRL_0_0 0xc34
|
|
EMC_PMACRO_VTTGEN_CTRL_1_0 0xc38
|
|
EMC_PMACRO_BG_BIAS_CTRL_0_0 0xc3c
|
|
EMC_PMACRO_PAD_CFG_CTRL_0 0xc40
|
|
EMC_PMACRO_ZCTRL_0 0xc44
|
|
EMC_PMACRO_RX_TERM_0 0xc48
|
|
EMC_PMACRO_CMD_TX_DRV_0 0xc4c
|
|
EMC_PMACRO_CMD_PAD_RX_CTRL_0 0xc50
|
|
EMC_PMACRO_DATA_PAD_RX_CTRL_0 0xc54
|
|
EMC_PMACRO_CMD_RX_TERM_MODE_0 0xc58
|
|
EMC_PMACRO_DATA_RX_TERM_MODE_0 0xc5c
|
|
EMC_PMACRO_CMD_PAD_TX_CTRL_0 0xc60
|
|
EMC_PMACRO_DATA_PAD_TX_CTRL_0 0xc64
|
|
EMC_PMACRO_COMMON_PAD_TX_CTRL_0 0xc68
|
|
EMC_PMACRO_DQ_TX_DRV_0 0xc70
|
|
EMC_PMACRO_CA_TX_DRV_0 0xc74
|
|
EMC_PMACRO_AUTOCAL_CFG_COMMON_0 0xc78
|
|
EMC_PMACRO_DDLLCAL_CAL_0 0xce0
|
|
EMC_PMACRO_DDLL_OFFSET_0 0xce4
|
|
EMC_PMACRO_DDLL_PERIODIC_OFFSET_0 0xce8
|
|
EMC_PMACRO_VTTGEN_CTRL_2_0 0xcf0
|
|
EMC_PMACRO_IB_RXRT_0 0xcf4
|
|
EMC_PMACRO_TRAINING_CTRL_0_0 0xcf8
|
|
EMC_PMACRO_TRAINING_CTRL_1_0 0xcfc
|
|
EMC_TRAINING_CMD_0 0xe00
|
|
EMC_TRAINING_CTRL_0 0xe04
|
|
EMC_TRAINING_STATUS_0 0xe08
|
|
EMC_TRAINING_QUSE_CORS_CTRL_0 0xe0c
|
|
EMC_TRAINING_QUSE_FINE_CTRL_0 0xe10
|
|
EMC_TRAINING_QUSE_CTRL_MISC_0 0xe14
|
|
EMC_TRAINING_WRITE_FINE_CTRL_0 0xe18
|
|
EMC_TRAINING_WRITE_CTRL_MISC_0 0xe1c
|
|
EMC_TRAINING_WRITE_VREF_CTRL_0 0xe20
|
|
EMC_TRAINING_READ_FINE_CTRL_0 0xe24
|
|
EMC_TRAINING_READ_CTRL_MISC_0 0xe28
|
|
EMC_TRAINING_READ_VREF_CTRL_0 0xe2c
|
|
EMC_TRAINING_CA_FINE_CTRL_0 0xe30
|
|
EMC_TRAINING_CA_CTRL_MISC_0 0xe34
|
|
EMC_TRAINING_CA_CTRL_MISC1_0 0xe38
|
|
EMC_TRAINING_CA_VREF_CTRL_0 0xe3c
|
|
EMC_TRAINING_CA_TADR_CTRL_0 0xe40
|
|
EMC_TRAINING_SETTLE_0 0xe44
|
|
EMC_TRAINING_DEBUG_CTRL_0 0xe48
|
|
EMC_TRAINING_MPC_0 0x5ec
|
|
EMC_TRAINING_PATRAM_CTRL_0 0xe60
|
|
EMC_TRAINING_PATRAM_DQ_0 0xe64
|
|
EMC_TRAINING_PATRAM_DMI_0 0xe68
|
|
EMC_TRAINING_VREF_SETTLE_0 0xe6c
|
|
EMC_TRAINING_OPT_CA_VREF_0 0xec0
|
|
EMC_TRAINING_OPT_DQ_OB_VREF_0 0xec4
|
|
EMC_TRAINING_QUSE_VREF_CTRL_0 0xed0
|
|
"
|
|
|
|
echo "Dumping EMC registers from BASE=$BASE"
|
|
echo "-----------------------------------"
|
|
|
|
# Read two tokens at a time (name + offset)
|
|
set -- $REGISTERS
|
|
while [ $# -gt 0 ]; do
|
|
name=$1
|
|
offset=$2
|
|
addr=$(printf "0x%X" $((BASE + offset)))
|
|
val=$(busybox devmem "$addr")
|
|
echo "$name = $val"
|
|
shift 2
|
|
done
|