/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates

This software file (the "File") is owned and distributed by Marvell
International Ltd. and/or its affiliates ("Marvell") under the following
alternative licensing terms.  Once you have made an election to distribute the
File under one of the following license alternatives, please (i) delete this
introductory statement regarding license alternatives, (ii) delete the two
license alternatives that you have not elected to use and (iii) preserve the
Marvell copyright notice above.

********************************************************************************
Marvell Commercial License Option

If you received this File from Marvell and you have entered into a commercial
license agreement (a "Commercial License") with Marvell, the File is licensed
to you under the terms of the applicable Commercial License.

********************************************************************************
Marvell GPL License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.  The GPL License provides additional details about this warranty
disclaimer.
********************************************************************************
Marvell BSD License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File under the following licensing terms.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

	*	Redistributions of source code must retain the above copyright notice,
		this list of conditions and the following disclaimer.

	*	Redistributions in binary form must reproduce the above copyright
		notice, this list of conditions and the following disclaimer in the
		documentation and/or other materials provided with the distribution.

	*	Neither the name of Marvell nor the names of its contributors may be
		used to endorse or promote products derived from this software without
		specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*******************************************************************************/

#ifndef __INCmvDramIfRegsh
#define __INCmvDramIfRegsh

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include "ctrlEnv/mvCtrlEnvSpec.h"
#include "mvSysDdrConfig.h"

#define SDRAM_WIN_BASE_REG(winNum)		(MV_DDR_WIN_REGS_BASE + 0x180 + winNum * 0x8)
#define SDRAMWBR_BASE_OFFS			24
#define SDRAMWBR_BASE_MASK			(0xFF << SDRAMWBR_BASE_OFFS)
#define SDRAMWBR_BASE_EXT_MASK			(0xF)

#define SDRAMWBR_BASE_ALIGNMENT			0x10000

#define SDRAM_WIN_CTRL_REG(winNum)		(MV_DDR_WIN_REGS_BASE + 0x184 + winNum * 0x8)
#define SDRAMWCR_ENABLE				BIT0
#define SDRAMWCR_CS_OFFS			2
#define SDRAMWCR_CS_MASK			(0x7 << SDRAMWCR_CS_OFFS)
#define SDRAMWCR_SIZE_OFFS			24
#define SDRAMWCR_SIZE_MASK			(0xFF << SDRAMWCR_SIZE_OFFS)
#define SDRAMWCR_SIZE_ALLIGNMENT		0x1000000

#define SDRAM_WIN_CTRL_WIN_ENA_OFFS		0
#define SDRAM_MAX_ADDR					0xC0000000
#define SDRAM_ADDR_MASK					0xFF000000
#define SDRAM_MAX_CS					4
#define SRAM_WIN_CTRL_DEFAULT_VAL		0x100

/* DDR SDRAM Initialization Control Register (DSICR) */
#define DDR_SDRAM_INIT_CTRL_REG	    (MV_DDR_REGS_BASE + 0x1480)
#define DSICR_INIT_EN		    	(1 << 0)
#define DSICR_T200_SET		    	(1 << 8)

/* sdram extended mode2 register (SEM2R) */
#define SDRAM_PHY_REGISTER_FILE_ACCESS		(MV_DDR_CTRL_REGS_BASE + 0x16A0)

/* sdram error registers */
#define SDRAM_ERROR_CAUSE_REG               (MV_DDR_REGS_BASE + 0x14d0)
#define SDRAM_ERROR_MASK_REG                (MV_DDR_REGS_BASE + 0x14d4)
#define SDRAM_ERROR_DATA_LOW_REG            (MV_DDR_REGS_BASE + 0x1444)
#define SDRAM_ERROR_DATA_HIGH_REG           (MV_DDR_REGS_BASE + 0x1440)
#define SDRAM_ERROR_ADDR_REG                (MV_DDR_REGS_BASE + 0x1450)
#define SDRAM_ERROR_ECC_REG                 (MV_DDR_REGS_BASE + 0x1448)
#define SDRAM_CALC_ECC_REG                  (MV_DDR_REGS_BASE + 0x144c)
#define SDRAM_ECC_CONTROL_REG               (MV_DDR_REGS_BASE + 0x1454)
#define SDRAM_SINGLE_BIT_ERR_CNTR_REG 		(MV_DDR_REGS_BASE + 0x1458)
#define SDRAM_DOUBLE_BIT_ERR_CNTR_REG		(MV_DDR_REGS_BASE + 0x145c)

/* SDRAM Error Cause Register (SECR) */
#define SECR_SINGLE_BIT_ERR			BIT0
#define SECR_DOUBLE_BIT_ERR			BIT1
#define SECR_DATA_PATH_PARITY_ERR	BIT2
#define SECR_TRAINING_ERR_DETECTED	BIT3
/* SDRAM Error Address Register (SEAR) */
#define SEAR_ERR_TYPE_OFFS			0
#define SEAR_ERR_TYPE_MASK      	(1 << SEAR_ERR_TYPE_OFFS)
#define SEAR_ERR_TYPE_SINGLE    	0
#define SEAR_ERR_TYPE_DOUBLE    	(1 << SEAR_ERR_TYPE_OFFS)
#define SEAR_ERR_CS_OFFS			1
#define SEAR_ERR_CS_MASK			(3 << SEAR_ERR_CS_OFFS)
#define SEAR_ERR_CS(csNum)			(csNum << SEAR_ERR_CS_OFFS)
#define SEAR_ERR_ADDR_OFFS      	3
#define SEAR_ERR_ADDR_MASK      	(0x1FFFFFFF << SEAR_ERR_ADDR_OFFS)

/* SDRAM ECC Control Register (SECR) */
#define SECR_FORCEECC_OFFS          0
#define SECR_FORCEECC_MASK          (0xFF << SECR_FORCEECC_OFFS)
#define SECR_FORCEEN_OFFS           8
#define SECR_FORCEEN_MASK           (1 << SECR_FORCEEN_OFFS)
#define SECR_ECC_CALC_MASK          (0 << SECR_FORCEEN_OFFS)
#define SECR_ECC_USER_MASK          (1 << SECR_FORCEEN_OFFS)
#define SECR_PERRPROP_EN            BIT9
#define SECR_CNTMODE_OFFS           10
#define SECR_CNTMODE_MASK           (1 << SECR_CNTMODE_OFFS)
#define SECR_ALL_IN_CS0             (0 << SECR_CNTMODE_OFFS)
#define SECR_NORMAL_COUNTER         (1 << SECR_CNTMODE_OFFS)
#define SECR_THRECC_OFFS            16
#define SECR_THRECC_MAX             0xFF
#define SECR_THRECC_MASK            (SECR_THRECC_MAX << SECR_THRECC_OFFS)
#define SECR_THRECC(threshold)      (threshold << SECR_THRECC_OFFS)

/* FPGA - Delay Phase */
#define FPGA_DDR3_DELAY_PHASE		0x00000004

 /* SDRAM CSn Size Register (SCSR) */
#define SDRAM_SIZE_REG(csNum)	(0x1504 + ((csNum) * 8))
#define SCSR_SIZE_OFFS			24
#define SCSR_SIZE_MASK			(0xff << SCSR_SIZE_OFFS)
#define SCSR_SIZE_ALIGNMENT		0x1000000
#define SCSR_WIN_EN			BIT0

#define ECC_SUPPORT
#define REG_SDRAM_CONFIG_ADDR                                   0x1400
#define REG_SDRAM_CONFIG_ECC_OFFS                               18
#define REG_SDRAM_CONFIG_DDR_BUS_OFFS				15
#define REG_SDRAM_CONFIG_IERR									19
#define REG_STATIC_DRAM_DLB_CONTROL                             0x1700
#define DLB_ENABLE 0x1
#define DLB_WRITE_COALESING (0x1 << 2)
#define DLB_AXI_PREFETCH_EN (0x1 << 3)
#define DLB_MBUS_PREFETCH_EN (0x1 << 4)
#define PreFetchNLnSzTr (0x1 << 6)
#define PF_RegretEn (0x1<<9)
#define DLB_BUS_Optimization_Weights_REG     0x1704
#define DLB_Eviction_Timers_Register_REG     0x1710
#define SameBankOPageWeight (0x1 << 0)
#define DiffBankOPageWeight (0x1 << 2)
#define SameCmdWeight (0x1 << 6)
#define PfRspWeight (0x1 << 16)
#define PfPrioSrc (0x1 << 19)
#define EvictBlockWin (0x18B << 0)
#define EvictBlockWin_MASK (0x3FF << 0)
#define EvictBlockWinLow ( 0x1f << 10)
#define EvictBlockWinLow_MASK ( 0x1F << 10)

#define REG_DRAM_PIN_MUXING_ADDR				0x19D4
#define DRAM_PIN_MUXING_PUP3_EN					(1 << 8)


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __INCmvDramIfRegsh */
