| /* SPDX-License-Identifier: BSD-3-Clause */ |
| /* |
| * Altera SoCFPGA SDRAM configuration |
| * |
| */ |
| |
| #ifndef __SOCFPGA_SDRAM_CONFIG_H__ |
| #define __SOCFPGA_SDRAM_CONFIG_H__ |
| |
| /* SDRAM configuration */ |
| #define CFG_HPS_SDR_CTRLCFG_CPORTRDWR_CPORTRDWR 0x5A56A |
| #define CFG_HPS_SDR_CTRLCFG_CPORTRMAP_CPORTRMAP 0xB00088 |
| #define CFG_HPS_SDR_CTRLCFG_CPORTWIDTH_CPORTWIDTH 0x44555 |
| #define CFG_HPS_SDR_CTRLCFG_CPORTWMAP_CPORTWMAP 0x2C011000 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_ADDRORDER 0 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_DQSTRKEN 0 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_ECCCORREN 0 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_ECCEN 0 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_MEMBL 8 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_MEMTYPE 1 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_NODMPINS 0 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_REORDEREN 1 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLCFG_STARVELIMIT 10 |
| #define CFG_HPS_SDR_CTRLCFG_CTRLWIDTH_CTRLWIDTH 2 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMADDRW_BANKBITS 3 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMADDRW_COLBITS 10 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMADDRW_CSBITS 1 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMADDRW_ROWBITS 14 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMDEVWIDTH_DEVWIDTH 8 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMIFWIDTH_IFWIDTH 32 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMINTR_INTREN 0 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMODT_READ 0 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMODT_WRITE 1 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING1_AL 0 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCL 5 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCWL 4 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING1_TFAW 16 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRFC 60 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRRD 4 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRCD 5 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TREFI 2341 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRP 5 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWR 5 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWTR 2 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING3_TCCD 4 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING3_TMRD 2 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRAS 13 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRC 17 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRTP 3 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING4_PWRDOWNEXIT 3 |
| #define CFG_HPS_SDR_CTRLCFG_DRAMTIMING4_SELFRFSHEXIT 200 |
| #define CFG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR 3 |
| #define CFG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR_BC 3 |
| #define CFG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR_DIFF_CHIP 3 |
| #define CFG_HPS_SDR_CTRLCFG_FIFOCFG_INCSYNC 0 |
| #define CFG_HPS_SDR_CTRLCFG_FIFOCFG_SYNCMODE 0 |
| #define CFG_HPS_SDR_CTRLCFG_FPGAPORTRST 0x0 |
| #define CFG_HPS_SDR_CTRLCFG_LOWPWREQ_SELFRFSHMASK 3 |
| #define CFG_HPS_SDR_CTRLCFG_LOWPWRTIMING_AUTOPDCYCLES 0 |
| #define CFG_HPS_SDR_CTRLCFG_LOWPWRTIMING_CLKDISABLECYCLES 8 |
| #define CFG_HPS_SDR_CTRLCFG_MPPACING_0_THRESHOLD1_31_0 0x20820820 |
| #define CFG_HPS_SDR_CTRLCFG_MPPACING_1_THRESHOLD1_59_32 0x8208208 |
| #define CFG_HPS_SDR_CTRLCFG_MPPACING_1_THRESHOLD2_3_0 0 |
| #define CFG_HPS_SDR_CTRLCFG_MPPACING_2_THRESHOLD2_35_4 0x41041041 |
| #define CFG_HPS_SDR_CTRLCFG_MPPACING_3_THRESHOLD2_59_36 0x410410 |
| #define CFG_HPS_SDR_CTRLCFG_MPPRIORITY_USERPRIORITY 0x0 |
| #define CFG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_0_THRESHOLDRSTCYCLES_31_0 0x01010101 |
| #define CFG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_1_THRESHOLDRSTCYCLES_63_32 0x01010101 |
| #define CFG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_2_THRESHOLDRSTCYCLES_79_64 0x0101 |
| #define CFG_HPS_SDR_CTRLCFG_MPWIEIGHT_0_STATICWEIGHT_31_0 0x21084210 |
| #define CFG_HPS_SDR_CTRLCFG_MPWIEIGHT_1_STATICWEIGHT_49_32 0x10441 |
| #define CFG_HPS_SDR_CTRLCFG_MPWIEIGHT_1_SUMOFWEIGHT_13_0 0x78 |
| #define CFG_HPS_SDR_CTRLCFG_MPWIEIGHT_2_SUMOFWEIGHT_45_14 0x0 |
| #define CFG_HPS_SDR_CTRLCFG_MPWIEIGHT_3_SUMOFWEIGHT_63_46 0x0 |
| #define CFG_HPS_SDR_CTRLCFG_PHYCTRL_PHYCTRL_0 0x200 |
| #define CFG_HPS_SDR_CTRLCFG_PORTCFG_AUTOPCHEN 0 |
| #define CFG_HPS_SDR_CTRLCFG_RFIFOCMAP_RFIFOCMAP 0x760210 |
| #define CFG_HPS_SDR_CTRLCFG_STATICCFG_MEMBL 2 |
| #define CFG_HPS_SDR_CTRLCFG_STATICCFG_USEECCASDATA 0 |
| #define CFG_HPS_SDR_CTRLCFG_WFIFOCMAP_WFIFOCMAP 0x980543 |
| |
| /* Sequencer auto configuration */ |
| #define RW_MGR_ACTIVATE_0_AND_1 0x11 |
| #define RW_MGR_ACTIVATE_0_AND_1_WAIT1 0x12 |
| #define RW_MGR_ACTIVATE_0_AND_1_WAIT2 0x14 |
| #define RW_MGR_CLEAR_DQS_ENABLE 0x4B |
| #define RW_MGR_EMR 0x09 |
| #define RW_MGR_EMR2 0x0D |
| #define RW_MGR_EMR3 0x0F |
| #define RW_MGR_EMR_OCD_ENABLE 0x0B |
| #define RW_MGR_GUARANTEED_READ 0x4E |
| #define RW_MGR_GUARANTEED_READ_CONT 0x56 |
| #define RW_MGR_GUARANTEED_WRITE 0x1A |
| #define RW_MGR_GUARANTEED_WRITE_WAIT0 0x1D |
| #define RW_MGR_GUARANTEED_WRITE_WAIT1 0x21 |
| #define RW_MGR_GUARANTEED_WRITE_WAIT2 0x1B |
| #define RW_MGR_GUARANTEED_WRITE_WAIT3 0x1F |
| #define RW_MGR_IDLE 0x00 |
| #define RW_MGR_IDLE_LOOP1 0x77 |
| #define RW_MGR_IDLE_LOOP2 0x76 |
| #define RW_MGR_INIT_CKE_0 0x71 |
| #define RW_MGR_LFSR_WR_RD_BANK_0 0x24 |
| #define RW_MGR_LFSR_WR_RD_BANK_0_DATA 0x27 |
| #define RW_MGR_LFSR_WR_RD_BANK_0_DQS 0x26 |
| #define RW_MGR_LFSR_WR_RD_BANK_0_NOP 0x25 |
| #define RW_MGR_LFSR_WR_RD_BANK_0_WAIT 0x34 |
| #define RW_MGR_LFSR_WR_RD_BANK_0_WL_1 0x23 |
| #define RW_MGR_LFSR_WR_RD_DM_BANK_0 0x38 |
| #define RW_MGR_LFSR_WR_RD_DM_BANK_0_DATA 0x3B |
| #define RW_MGR_LFSR_WR_RD_DM_BANK_0_DQS 0x3A |
| #define RW_MGR_LFSR_WR_RD_DM_BANK_0_NOP 0x39 |
| #define RW_MGR_LFSR_WR_RD_DM_BANK_0_WAIT 0x48 |
| #define RW_MGR_LFSR_WR_RD_DM_BANK_0_WL_1 0x37 |
| #define RW_MGR_MR_CALIB 0x05 |
| #define RW_MGR_MR_DLL_RESET 0x07 |
| #define RW_MGR_MR_USER 0x03 |
| #define RW_MGR_NOP 0x01 |
| #define RW_MGR_PRECHARGE_ALL 0x16 |
| #define RW_MGR_READ_B2B 0x5B |
| #define RW_MGR_READ_B2B_WAIT1 0x63 |
| #define RW_MGR_READ_B2B_WAIT2 0x6D |
| #define RW_MGR_REFRESH 0x18 |
| |
| /* Sequencer defines configuration */ |
| #define AFI_CLK_FREQ 301 |
| #define AFI_RATE_RATIO 1 |
| #define CALIB_LFIFO_OFFSET 6 |
| #define CALIB_VFIFO_OFFSET 4 |
| #define ENABLE_SUPER_QUICK_CALIBRATION 0 |
| #define IO_DELAY_PER_DCHAIN_TAP 25 |
| #define IO_DELAY_PER_DQS_EN_DCHAIN_TAP 25 |
| #define IO_DELAY_PER_OPA_TAP 416 |
| #define IO_DLL_CHAIN_LENGTH 8 |
| #define IO_DQDQS_OUT_PHASE_MAX 0 |
| #define IO_DQS_EN_DELAY_MAX 31 |
| #define IO_DQS_EN_DELAY_OFFSET 0 |
| #define IO_DQS_EN_PHASE_MAX 7 |
| #define IO_DQS_IN_DELAY_MAX 31 |
| #define IO_DQS_IN_RESERVE 4 |
| #define IO_DQS_OUT_RESERVE 4 |
| #define IO_IO_IN_DELAY_MAX 31 |
| #define IO_IO_OUT1_DELAY_MAX 31 |
| #define IO_IO_OUT2_DELAY_MAX 0 |
| #define IO_SHIFT_DQS_EN_WHEN_SHIFT_DQS 0 |
| #define MAX_LATENCY_COUNT_WIDTH 5 |
| #define READ_VALID_FIFO_SIZE 16 |
| #define REG_FILE_INIT_SEQ_SIGNATURE 0x555504bf |
| #define RW_MGR_MEM_ADDRESS_MIRRORING 0 |
| #define RW_MGR_MEM_DATA_MASK_WIDTH 4 |
| #define RW_MGR_MEM_DATA_WIDTH 32 |
| #define RW_MGR_MEM_DQ_PER_READ_DQS 8 |
| #define RW_MGR_MEM_DQ_PER_WRITE_DQS 8 |
| #define RW_MGR_MEM_IF_READ_DQS_WIDTH 4 |
| #define RW_MGR_MEM_IF_WRITE_DQS_WIDTH 4 |
| #define RW_MGR_MEM_NUMBER_OF_CS_PER_DIMM 1 |
| #define RW_MGR_MEM_NUMBER_OF_RANKS 1 |
| #define RW_MGR_MEM_VIRTUAL_GROUPS_PER_READ_DQS 1 |
| #define RW_MGR_MEM_VIRTUAL_GROUPS_PER_WRITE_DQS 1 |
| #define RW_MGR_TRUE_MEM_DATA_MASK_WIDTH 4 |
| #define TINIT_CNTR0_VAL 74 |
| #define TINIT_CNTR1_VAL 20 |
| #define TINIT_CNTR2_VAL 20 |
| #define TRESET_CNTR0_VAL 74 |
| #define TRESET_CNTR1_VAL 99 |
| #define TRESET_CNTR2_VAL 10 |
| |
| /* Sequencer ac_rom_init configuration */ |
| const u32 ac_rom_init[] = { |
| 0x30700000, |
| 0x38700000, |
| 0x30700000, |
| 0x20700000, |
| 0x10000853, |
| 0x10000853, |
| 0x10000953, |
| 0x10010000, |
| 0x10010380, |
| 0x10020000, |
| 0x10030000, |
| 0x10300400, |
| 0x10600000, |
| 0x10620000, |
| 0x10200400, |
| 0x10400000, |
| 0x1c900000, |
| 0x1c920000, |
| 0x1c900008, |
| 0x1c920008, |
| 0x38f00000, |
| 0x3cf00000, |
| 0x38700000, |
| 0x10100000, |
| 0x18900000, |
| 0x13500000, |
| 0x13520000, |
| 0x13500008, |
| 0x13520008, |
| 0x33700000, |
| 0x10500008 |
| }; |
| |
| /* Sequencer inst_rom_init configuration */ |
| const u32 inst_rom_init[] = { |
| 0x80180, |
| 0x100, |
| 0x80000, |
| 0x200, |
| 0x80000, |
| 0x280, |
| 0x80000, |
| 0x300, |
| 0x80000, |
| 0x380, |
| 0x80000, |
| 0x400, |
| 0x80000, |
| 0x480, |
| 0x80000, |
| 0x500, |
| 0x80000, |
| 0x600, |
| 0x8000, |
| 0x680, |
| 0xa000, |
| 0x80000, |
| 0x700, |
| 0x80000, |
| 0x780, |
| 0x80000, |
| 0x968, |
| 0xcae8, |
| 0x8e8, |
| 0x8ae8, |
| 0x988, |
| 0xea88, |
| 0x808, |
| 0xaa88, |
| 0x80000, |
| 0xcc00, |
| 0xcb80, |
| 0xe080, |
| 0xa00, |
| 0x20ae0, |
| 0x20ae0, |
| 0x20ae0, |
| 0x20ae0, |
| 0xb00, |
| 0x0, |
| 0x0, |
| 0x0, |
| 0x0, |
| 0x60c80, |
| 0x60e80, |
| 0x60e80, |
| 0x60e80, |
| 0xa000, |
| 0x8000, |
| 0x80000, |
| 0xcc00, |
| 0xcb80, |
| 0xe080, |
| 0xa00, |
| 0x30ae0, |
| 0x30ae0, |
| 0x30ae0, |
| 0x30ae0, |
| 0xb00, |
| 0x0, |
| 0x0, |
| 0x0, |
| 0x0, |
| 0x70c80, |
| 0x70e80, |
| 0x70e80, |
| 0x70e80, |
| 0xa000, |
| 0x8000, |
| 0x80000, |
| 0xf58, |
| 0x58, |
| 0x80000, |
| 0xf68, |
| 0x168, |
| 0x168, |
| 0x8168, |
| 0x40de8, |
| 0x40ee8, |
| 0x40ee8, |
| 0x40ee8, |
| 0xf68, |
| 0x168, |
| 0x168, |
| 0xa168, |
| 0x80000, |
| 0x40c88, |
| 0x40e88, |
| 0x40e88, |
| 0x40e88, |
| 0x40d68, |
| 0x40ee8, |
| 0x40ee8, |
| 0x40ee8, |
| 0xa000, |
| 0x40de8, |
| 0x40ee8, |
| 0x40ee8, |
| 0x40ee8, |
| 0x40e08, |
| 0x40e88, |
| 0x40e88, |
| 0x40e88, |
| 0xf00, |
| 0xc000, |
| 0x8000, |
| 0xe000, |
| 0x80000, |
| 0x180, |
| 0x8180, |
| 0xa180, |
| 0xc180, |
| 0x80180, |
| 0x8000, |
| 0xa000, |
| 0x80000 |
| }; |
| |
| #endif /* __SOCFPGA_SDRAM_CONFIG_H__ */ |