#!/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 . # # ============================================================ 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