gardenia/loader/emc.h
hydrogenium2020 ce26824ed9 feat:SDRAM:bring up for 4GB DDR3L H5TC4G63AFR-RDA 792Mhz!
Here is the detail:
1. It has 2Ranks and 8bit*8.
2. There are some differences between H5TC4G63AFR-RDA and H5TC4G63AFR-PBA, and the parameters are not universal. If mixed use, it may lead to unstable data in memory writing (for example, data loss during writing).
2024-02-11 14:49:57 +08:00

248 lines
7.1 KiB
C

#ifndef _T124_EMC_H_
#define _T124_EMC_H_
#include "types.h"
#define EMC_INTSTATUS 0x0
#define EMC_INTMASK 0x4
#define EMC_DBG 0x8
#define EMC_CFG 0xC
#define EMC_ADR_CFG 0x10
#define EMC_REFCTRL 0x20
#define EMC_PIN 0x24
#define EMC_TIMING_CONTROL 0x28
#define EMC_RC 0x2C
#define EMC_RFC 0x30
#define EMC_RAS 0x34
#define EMC_RP 0x38
#define EMC_R2W 0x3C
#define EMC_W2R 0x40
#define EMC_R2P 0x44
#define EMC_W2P 0x48
#define EMC_RD_RCD 0x4C
#define EMC_WR_RCD 0x50
#define EMC_RRD 0x54
#define EMC_REXT 0x58
#define EMC_WDV 0x5C
#define EMC_QUSE 0x60
#define EMC_QRST 0x64
#define EMC_QSAFE 0x68
#define EMC_RDV 0x6C
#define EMC_REFRESH 0x70
#define EMC_BURST_REFRESH_NUM 0x74
#define EMC_PDEX2WR 0x78
#define EMC_PDEX2RD 0x7C
#define EMC_PCHG2PDEN 0x80
#define EMC_ACT2PDEN 0x84
#define EMC_AR2PDEN 0x88
#define EMC_RW2PDEN 0x8C
#define EMC_TXSR 0x90
#define EMC_TCKE 0x94
#define EMC_TFAW 0x98
#define EMC_TRPAB 0x9C
#define EMC_TCLKSTABLE 0xA0
#define EMC_TCLKSTOP 0xA4
#define EMC_TREFBW 0xA8
#define EMC_ODT_WRITE 0xB0
#define EMC_ODT_READ 0xB4
#define EMC_WEXT 0xB8
#define EMC_CTT 0xBC
#define EMC_RFC_SLR 0xC0
#define EMC_MRS_WAIT_CNT2 0xC4
#define EMC_MRS_WAIT_CNT 0xC8
#define EMC_MRS 0xCC
#define EMC_EMRS 0xD0
#define EMC_REF 0xD4
#define EMC_PRE 0xD8
#define EMC_NOP 0xDC
#define EMC_SELF_REF 0xE0
#define EMC_DPD 0xE4
#define EMC_MRW 0xE8
#define EMC_MRR 0xEC
#define EMC_CMDQ 0xF0
#define EMC_MC2EMCQ 0xF4
#define EMC_XM2DQSPADCTRL3 0xF8
#define EMC_FBIO_SPARE 0x100
#define EMC_FBIO_CFG5 0x104
#define EMC_FBIO_WRPTR_EQ_2 0x108
#define EMC_FBIO_CFG6 0x114
#define EMC_CFG_RSV 0x120
#define EMC_ACPD_CONTROL 0x124
#define EMC_EMRS2 0x12C
#define EMC_EMRS3 0x130
#define EMC_MRW2 0x134
#define EMC_MRW3 0x138
#define EMC_MRW4 0x13C
#define EMC_CLKEN_OVERRIDE 0x140
#define EMC_R2R 0x144
#define EMC_W2W 0x148
#define EMC_EINPUT 0x14C
#define EMC_EINPUT_DURATION 0x150
#define EMC_PUTERM_EXTRA 0x154
#define EMC_TCKESR 0x158
#define EMC_TPD 0x15C
#define EMC_AUTO_CAL_CONFIG 0x2A4
#define EMC_AUTO_CAL_INTERVAL 0x2A8
#define EMC_AUTO_CAL_STATUS 0x2AC
#define EMC_REQ_CTRL 0x2B0
#define EMC_STATUS 0x2B4
#define EMC_CFG_2 0x2B8
#define EMC_CFG_DIG_DLL 0x2BC
#define EMC_CFG_DIG_DLL_PERIOD 0x2C0
#define EMC_DIG_DLL_STATUS 0x2C8
#define EMC_RDV_MASK 0x2CC
#define EMC_WDV_MASK 0x2D0
#define EMC_CTT_DURATION 0x2D8
#define EMC_CTT_TERM_CTRL 0x2DC
#define EMC_ZCAL_INTERVAL 0x2E0
#define EMC_ZCAL_WAIT_CNT 0x2E4
#define EMC_ZCAL_MRW_CMD 0x2E8
#define EMC_ZQ_CAL 0x2EC
#define EMC_XM2CMDPADCTRL 0x2F0
#define EMC_XM2CMDPADCTRL2 0x2F4
#define EMC_XM2DQSPADCTRL 0x2F8
#define EMC_XM2DQSPADCTRL2 0x2FC
#define EMC_XM2DQPADCTRL 0x300
#define EMC_XM2DQPADCTRL2 0x304
#define EMC_XM2CLKPADCTRL 0x308
#define EMC_XM2COMPPADCTRL 0x30C
#define EMC_XM2VTTGENPADCTRL 0x310
#define EMC_XM2VTTGENPADCTRL2 0x314
#define EMC_XM2VTTGENPADCTRL3 0x318
#define EMC_EMCPADEN 0x31C
#define EMC_XM2DQSPADCTRL4 0x320
#define EMC_SCRATCH0 0x324
#define EMC_DLL_XFORM_DQS0 0x328
#define EMC_DLL_XFORM_DQS1 0x32C
#define EMC_DLL_XFORM_DQS2 0x330
#define EMC_DLL_XFORM_DQS3 0x334
#define EMC_DLL_XFORM_DQS4 0x338
#define EMC_DLL_XFORM_DQS5 0x33C
#define EMC_DLL_XFORM_DQS6 0x340
#define EMC_DLL_XFORM_DQS7 0x344
#define EMC_DLL_XFORM_QUSE0 0x348
#define EMC_DLL_XFORM_QUSE1 0x34C
#define EMC_DLL_XFORM_QUSE2 0x350
#define EMC_DLL_XFORM_QUSE3 0x354
#define EMC_DLL_XFORM_QUSE4 0x358
#define EMC_DLL_XFORM_QUSE5 0x35C
#define EMC_DLL_XFORM_QUSE6 0x360
#define EMC_DLL_XFORM_QUSE7 0x364
#define EMC_DLL_XFORM_DQ0 0x368
#define EMC_DLL_XFORM_DQ1 0x36C
#define EMC_DLL_XFORM_DQ2 0x370
#define EMC_DLL_XFORM_DQ3 0x374
#define EMC_DLI_RX_TRIM0 0x378
#define EMC_DLI_RX_TRIM1 0x37C
#define EMC_DLI_RX_TRIM2 0x380
#define EMC_DLI_RX_TRIM3 0x384
#define EMC_DLI_RX_TRIM4 0x388
#define EMC_DLI_RX_TRIM5 0x38C
#define EMC_DLI_RX_TRIM6 0x390
#define EMC_DLI_RX_TRIM7 0x394
#define EMC_DLI_TX_TRIM0 0x398
#define EMC_DLI_TX_TRIM1 0x39C
#define EMC_DLI_TX_TRIM2 0x3A0
#define EMC_DLI_TX_TRIM3 0x3A4
#define EMC_DLI_TRIM_TXDQS0 0x3A8
#define EMC_DLI_TRIM_TXDQS1 0x3AC
#define EMC_DLI_TRIM_TXDQS2 0x3B0
#define EMC_DLI_TRIM_TXDQS3 0x3B4
#define EMC_DLI_TRIM_TXDQS4 0x3B8
#define EMC_DLI_TRIM_TXDQS5 0x3BC
#define EMC_DLI_TRIM_TXDQS6 0x3C0
#define EMC_DLI_TRIM_TXDQS7 0x3C4
#define EMC_STALL_THEN_EXE_AFTER_CLKCHANGE 0x3CC
#define EMC_AUTO_CAL_CLK_STATUS 0x3D4
#define EMC_SEL_DPD_CTRL 0x3D8
#define EMC_PRE_REFRESH_REQ_CNT 0x3DC
#define EMC_DYN_SELF_REF_CONTROL 0x3E0
#define EMC_TXSRDLL 0x3E4
#define EMC_CCFIFO_ADDR 0x3E8
#define EMC_CCFIFO_DATA 0x3EC
#define EMC_CCFIFO_STATUS 0x3F0
#define EMC_CDB_CNTL_1 0x3F4
#define EMC_CDB_CNTL_2 0x3F8
#define EMC_XM2CLKPADCTRL2 0x3FC
#define EMC_SWIZZLE_RANK0_BYTE_CFG 0x400
#define EMC_SWIZZLE_RANK0_BYTE0 0x404
#define EMC_SWIZZLE_RANK0_BYTE1 0x408
#define EMC_SWIZZLE_RANK0_BYTE2 0x40C
#define EMC_SWIZZLE_RANK0_BYTE3 0x410
#define EMC_SWIZZLE_RANK1_BYTE_CFG 0x414
#define EMC_SWIZZLE_RANK1_BYTE0 0x418
#define EMC_SWIZZLE_RANK1_BYTE1 0x41C
#define EMC_SWIZZLE_RANK1_BYTE2 0x420
#define EMC_SWIZZLE_RANK1_BYTE3 0x424
#define EMC_CA_TRAINING_START 0x428
#define EMC_CA_TRAINING_BUSY 0x42C
#define EMC_CA_TRAINING_CFG 0x430
#define EMC_CA_TRAINING_TIMING_CNTL1 0x434
#define EMC_CA_TRAINING_TIMING_CNTL2 0x438
#define EMC_CA_TRAINING_CA_LEAD_IN 0x43C
#define EMC_CA_TRAINING_CA 0x440
#define EMC_CA_TRAINING_CA_LEAD_OUT 0x444
#define EMC_CA_TRAINING_RESULT1 0x448
#define EMC_CA_TRAINING_RESULT2 0x44C
#define EMC_CA_TRAINING_RESULT3 0x450
#define EMC_CA_TRAINING_RESULT4 0x454
#define EMC_AUTO_CAL_CONFIG2 0x458
#define EMC_AUTO_CAL_CONFIG3 0x45C
#define EMC_AUTO_CAL_STATUS2 0x460
#define EMC_XM2CMDPADCTRL3 0x464
#define EMC_IBDLY 0x468
#define EMC_DLL_XFORM_ADDR0 0x46C
#define EMC_DLL_XFORM_ADDR1 0x470
#define EMC_DLL_XFORM_ADDR2 0x474
#define EMC_DLI_ADDR_TRIM 0x478
#define EMC_DSR_VTTGEN_DRV 0x47C
#define EMC_TXDSRVTTGEN 0x480
#define EMC_XM2CMDPADCTRL4 0x484
#define EMC_XM2CMDPADCTRL5 0x488
#define EMC_DLL_XFORM_DQS8 0x4A0
#define EMC_DLL_XFORM_DQS9 0x4A4
#define EMC_DLL_XFORM_DQS10 0x4A8
#define EMC_DLL_XFORM_DQS11 0x4AC
#define EMC_DLL_XFORM_DQS12 0x4B0
#define EMC_DLL_XFORM_DQS13 0x4B4
#define EMC_DLL_XFORM_DQS14 0x4B8
#define EMC_DLL_XFORM_DQS15 0x4BC
#define EMC_DLL_XFORM_QUSE8 0x4C0
#define EMC_DLL_XFORM_QUSE9 0x4C4
#define EMC_DLL_XFORM_QUSE10 0x4C8
#define EMC_DLL_XFORM_QUSE11 0x4CC
#define EMC_DLL_XFORM_QUSE12 0x4D0
#define EMC_DLL_XFORM_QUSE13 0x4D4
#define EMC_DLL_XFORM_QUSE14 0x4D8
#define EMC_DLL_XFORM_QUSE15 0x4DC
#define EMC_DLL_XFORM_DQ4 0x4E0
#define EMC_DLL_XFORM_DQ5 0x4E4
#define EMC_DLL_XFORM_DQ6 0x4E8
#define EMC_DLL_XFORM_DQ7 0x4EC
#define EMC_DLI_TRIM_TXDQS8 0x520
#define EMC_DLI_TRIM_TXDQS9 0x524
#define EMC_DLI_TRIM_TXDQS10 0x528
#define EMC_DLI_TRIM_TXDQS11 0x52C
#define EMC_DLI_TRIM_TXDQS12 0x530
#define EMC_DLI_TRIM_TXDQS13 0x534
#define EMC_DLI_TRIM_TXDQS14 0x538
#define EMC_DLI_TRIM_TXDQS15 0x53C
#define EMC_CDB_CNTL_3 0x540
#define EMC_XM2DQSPADCTRL5 0x544
#define EMC_XM2DQSPADCTRL6 0x548
#define EMC_XM2DQPADCTRL3 0x54C
#define EMC_DLL_XFORM_ADDR3 0x550
#define EMC_DLL_XFORM_ADDR4 0x554
#define EMC_DLL_XFORM_ADDR5 0x558
#define EMC_CFG_PIPE 0x560
#define EMC_QPOP 0x564
#define EMC_QUSE_WIDTH 0x568
#define EMC_PUTERM_WIDTH 0x56C
#define EMC_BGBIAS_CTL0 0x570
#define EMC_PUTERM_ADJ 0x574
#endif