/******************************************************************************* | |
* (c) Copyright 2012 Microsemi SoC Products Group. All rights reserved. | |
* | |
* | |
* | |
* SVN $Revision: 4410 $ | |
* SVN $Date: 2012-07-16 14:36:17 +0100 (Mon, 16 Jul 2012) $ | |
*/ | |
#ifndef SYSTEM_INIT_CFG_TYPES_H_ | |
#define SYSTEM_INIT_CFG_TYPES_H_ | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
/*============================================================================*/ | |
/* DDR Configuration */ | |
/*============================================================================*/ | |
typedef struct | |
{ | |
/*-------------------------------------------------------------------------- | |
* DDR Controller registers. | |
*/ | |
struct | |
{ | |
uint16_t DYN_SOFT_RESET_CR; | |
uint16_t RESERVED0; | |
uint16_t DYN_REFRESH_1_CR; | |
uint16_t DYN_REFRESH_2_CR; | |
uint16_t DYN_POWERDOWN_CR; | |
uint16_t DYN_DEBUG_CR; | |
uint16_t MODE_CR; | |
uint16_t ADDR_MAP_BANK_CR; | |
uint16_t ECC_DATA_MASK_CR; | |
uint16_t ADDR_MAP_COL_1_CR; | |
uint16_t ADDR_MAP_COL_2_CR; | |
uint16_t ADDR_MAP_ROW_1_CR; | |
uint16_t ADDR_MAP_ROW_2_CR; | |
uint16_t INIT_1_CR; | |
uint16_t CKE_RSTN_CYCLES_1_CR; | |
uint16_t CKE_RSTN_CYCLES_2_CR; | |
uint16_t INIT_MR_CR; | |
uint16_t INIT_EMR_CR; | |
uint16_t INIT_EMR2_CR; | |
uint16_t INIT_EMR3_CR; | |
uint16_t DRAM_BANK_TIMING_PARAM_CR; | |
uint16_t DRAM_RD_WR_LATENCY_CR; | |
uint16_t DRAM_RD_WR_PRE_CR; | |
uint16_t DRAM_MR_TIMING_PARAM_CR; | |
uint16_t DRAM_RAS_TIMING_CR; | |
uint16_t DRAM_RD_WR_TRNARND_TIME_CR; | |
uint16_t DRAM_T_PD_CR; | |
uint16_t DRAM_BANK_ACT_TIMING_CR; | |
uint16_t ODT_PARAM_1_CR; | |
uint16_t ODT_PARAM_2_CR; | |
uint16_t ADDR_MAP_COL_3_CR; | |
uint16_t MODE_REG_RD_WR_CR; | |
uint16_t MODE_REG_DATA_CR; | |
uint16_t PWR_SAVE_1_CR; | |
uint16_t PWR_SAVE_2_CR; | |
uint16_t ZQ_LONG_TIME_CR; | |
uint16_t ZQ_SHORT_TIME_CR; | |
uint16_t ZQ_SHORT_INT_REFRESH_MARGIN_1_CR; | |
uint16_t ZQ_SHORT_INT_REFRESH_MARGIN_2_CR; | |
uint16_t PERF_PARAM_1_CR; | |
uint16_t HPR_QUEUE_PARAM_1_CR; | |
uint16_t HPR_QUEUE_PARAM_2_CR; | |
uint16_t LPR_QUEUE_PARAM_1_CR; | |
uint16_t LPR_QUEUE_PARAM_2_CR; | |
uint16_t WR_QUEUE_PARAM_CR; | |
uint16_t PERF_PARAM_2_CR; | |
uint16_t PERF_PARAM_3_CR; | |
uint16_t DFI_RDDATA_EN_CR; | |
uint16_t DFI_MIN_CTRLUPD_TIMING_CR; | |
uint16_t DFI_MAX_CTRLUPD_TIMING_CR; | |
uint16_t DFI_WR_LVL_CONTROL_1_CR; | |
uint16_t DFI_WR_LVL_CONTROL_2_CR; | |
uint16_t DFI_RD_LVL_CONTROL_1_CR; | |
uint16_t DFI_RD_LVL_CONTROL_2_CR; | |
uint16_t DFI_CTRLUPD_TIME_INTERVAL_CR; | |
uint16_t DYN_SOFT_RESET_CR2; | |
uint16_t AXI_FABRIC_PRI_ID_CR; | |
} ddrc; | |
/*-------------------------------------------------------------------------- | |
* DDR PHY configuration registers | |
*/ | |
struct | |
{ | |
uint16_t LOOPBACK_TEST_CR; | |
uint16_t BOARD_LOOPBACK_CR; | |
uint16_t CTRL_SLAVE_RATIO_CR; | |
uint16_t CTRL_SLAVE_FORCE_CR; | |
uint16_t CTRL_SLAVE_DELAY_CR; | |
uint16_t DATA_SLICE_IN_USE_CR; | |
uint16_t LVL_NUM_OF_DQ0_CR; | |
uint16_t DQ_OFFSET_1_CR; | |
uint16_t DQ_OFFSET_2_CR; | |
uint16_t DQ_OFFSET_3_CR; | |
uint16_t DIS_CALIB_RST_CR; | |
uint16_t DLL_LOCK_DIFF_CR; | |
uint16_t FIFO_WE_IN_DELAY_1_CR; | |
uint16_t FIFO_WE_IN_DELAY_2_CR; | |
uint16_t FIFO_WE_IN_DELAY_3_CR; | |
uint16_t FIFO_WE_IN_FORCE_CR; | |
uint16_t FIFO_WE_SLAVE_RATIO_1_CR; | |
uint16_t FIFO_WE_SLAVE_RATIO_2_CR; | |
uint16_t FIFO_WE_SLAVE_RATIO_3_CR; | |
uint16_t FIFO_WE_SLAVE_RATIO_4_CR; | |
uint16_t GATELVL_INIT_MODE_CR; | |
uint16_t GATELVL_INIT_RATIO_1_CR; | |
uint16_t GATELVL_INIT_RATIO_2_CR; | |
uint16_t GATELVL_INIT_RATIO_3_CR; | |
uint16_t GATELVL_INIT_RATIO_4_CR; | |
uint16_t LOCAL_ODT_CR; | |
uint16_t INVERT_CLKOUT_CR; | |
uint16_t RD_DQS_SLAVE_DELAY_1_CR; | |
uint16_t RD_DQS_SLAVE_DELAY_2_CR; | |
uint16_t RD_DQS_SLAVE_DELAY_3_CR; | |
uint16_t RD_DQS_SLAVE_FORCE_CR; | |
uint16_t RD_DQS_SLAVE_RATIO_1_CR; | |
uint16_t RD_DQS_SLAVE_RATIO_2_CR; | |
uint16_t RD_DQS_SLAVE_RATIO_3_CR; | |
uint16_t RD_DQS_SLAVE_RATIO_4_CR; | |
uint16_t WR_DQS_SLAVE_DELAY_1_CR; | |
uint16_t WR_DQS_SLAVE_DELAY_2_CR; | |
uint16_t WR_DQS_SLAVE_DELAY_3_CR; | |
uint16_t WR_DQS_SLAVE_FORCE_CR; | |
uint16_t WR_DQS_SLAVE_RATIO_1_CR; | |
uint16_t WR_DQS_SLAVE_RATIO_2_CR; | |
uint16_t WR_DQS_SLAVE_RATIO_3_CR; | |
uint16_t WR_DQS_SLAVE_RATIO_4_CR; | |
uint16_t WR_DATA_SLAVE_DELAY_1_CR; | |
uint16_t WR_DATA_SLAVE_DELAY_2_CR; | |
uint16_t WR_DATA_SLAVE_DELAY_3_CR; | |
uint16_t WR_DATA_SLAVE_FORCE_CR; | |
uint16_t WR_DATA_SLAVE_RATIO_1_CR; | |
uint16_t WR_DATA_SLAVE_RATIO_2_CR; | |
uint16_t WR_DATA_SLAVE_RATIO_3_CR; | |
uint16_t WR_DATA_SLAVE_RATIO_4_CR; | |
uint16_t WRLVL_INIT_MODE_CR; | |
uint16_t WRLVL_INIT_RATIO_1_CR; | |
uint16_t WRLVL_INIT_RATIO_2_CR; | |
uint16_t WRLVL_INIT_RATIO_3_CR; | |
uint16_t WRLVL_INIT_RATIO_4_CR; | |
uint16_t WR_RD_RL_CR; | |
uint16_t RDC_FIFO_RST_ERRCNTCLR_CR; | |
uint16_t RDC_WE_TO_RE_DELAY_CR; | |
uint16_t USE_FIXED_RE_CR; | |
uint16_t USE_RANK0_DELAYS_CR; | |
uint16_t USE_LVL_TRNG_LEVEL_CR; | |
uint16_t CONFIG_CR; | |
uint16_t RD_WR_GATE_LVL_CR; | |
uint16_t DYN_RESET_CR; | |
} phy; | |
/*-------------------------------------------------------------------------- | |
* FIC-64 registers | |
* These registers are 16-bit wide and 32-bit aligned. | |
*/ | |
struct | |
{ | |
uint16_t NB_ADDR_CR; | |
uint16_t NBRWB_SIZE_CR; | |
uint16_t WB_TIMEOUT_CR; | |
uint16_t HPD_SW_RW_EN_CR; | |
uint16_t HPD_SW_RW_INVAL_CR; | |
uint16_t SW_WR_ERCLR_CR; | |
uint16_t ERR_INT_ENABLE_CR; | |
uint16_t NUM_AHB_MASTERS_CR; | |
uint16_t LOCK_TIMEOUTVAL_1_CR; | |
uint16_t LOCK_TIMEOUTVAL_2_CR; | |
uint16_t LOCK_TIMEOUT_EN_CR; | |
} fic; | |
} ddr_subsys_cfg_t; | |
/*============================================================================*/ | |
/* FDDR Configuration */ | |
/*============================================================================*/ | |
typedef struct | |
{ | |
uint16_t PLL_CONFIG_LOW_1; | |
uint16_t PLL_CONFIG_LOW_2; | |
uint16_t PLL_CONFIG_HIGH; | |
uint16_t FACC_CLK_EN; | |
uint16_t FACC_MUX_CONFIG; | |
uint16_t FACC_DIVISOR_RATIO; | |
uint16_t PLL_DELAY_LINE_SEL; | |
uint16_t SOFT_RESET; | |
uint16_t IO_CALIB; | |
uint16_t INTERRUPT_ENABLE; | |
uint16_t AXI_AHB_MODE_SEL; | |
uint16_t PHY_SELF_REF_EN; | |
} fddr_sysreg_t; | |
/*============================================================================*/ | |
/* PCI Express Bridge IP Core configuration. */ | |
/*============================================================================*/ | |
typedef struct | |
{ | |
uint32_t * p_reg; | |
uint32_t value; | |
} cfg_addr_value_pair_t; | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif /* SYSTEM_INIT_CFG_TYPES_H_ */ |