bc2: set DFX window settings as a part of U-Boot windows management

	- Added early init routine to set hardcoded DFX window configuration
	  (DFX registers are needed in early stage of U-Boot boot sequence)
	- Added DFX window configuration settings to U-Boot windows table
	- Removed mvBoardDfxConfig() routine

Change-Id: If626a60ed79c4a88c5f6cefb0f21aef56c5ad77f
Signed-off-by: Omri Itach <omrii@marvell.com>
Reviewed-on: http://vgitil04.il.marvell.com:8080/5309
Reviewed-by: Ofer Heifetz <oferh@marvell.com>
Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
Tested-by: Star_Automation <star@marvell.com>
diff --git a/board/mv_ebu/common/USP/mv_main.c b/board/mv_ebu/common/USP/mv_main.c
index ea2a881..120d3de 100755
--- a/board/mv_ebu/common/USP/mv_main.c
+++ b/board/mv_ebu/common/USP/mv_main.c
@@ -687,6 +687,17 @@
 	display_dram_config(1);
 	return 0;
 }
+
+int board_early_init_f (void)
+{
+	/* Open window to DFX registers
+	 * DFX registers are needed in early stage of U-Boot boot sequence
+	 * This is done here once, before U-Boot sets its window configuration*/
+	MV_REG_WRITE(AHB_TO_MBUS_WIN_CTRL_REG(1), 0x000f0081);
+	MV_REG_WRITE(AHB_TO_MBUS_WIN_BASE_REG(1), DFX_REGS_BASE);
+	return 0;
+}
+
 int misc_init_r (void)
 {
 	char *env;
diff --git a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c
index b5c7e25..695c1e3 100755
--- a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c
+++ b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c
@@ -150,23 +150,6 @@
 
 }
 
-MV_U32 mvBoardDfxConfig(MV_VOID)
-{
-	MV_U32 I2C_conf;
-
-	/* set acess to DFX */
-	I2C_conf = MV_REG_READ(I2C_CONFIC_DEBUG_REG);
-	I2C_conf &= ICDR_UINIT_ID_MASK;
-	I2C_conf |= 8; /* acess to DFX */
-	MV_REG_WRITE(I2C_CONFIC_DEBUG_REG,I2C_conf);
-
-	/* open windows to DFX */
-	MV_REG_WRITE(AHB_TO_MBUS_WIN_CTRL_REG(1), 0x000f0081);
-	MV_REG_WRITE(AHB_TO_MBUS_WIN_BASE_REG(1), 0xF5000000);
-
-	return 0;
-}
-
 /*******************************************************************************
 * mvBoardModelGet - Get Board model
 *
diff --git a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h
index 5521ebd..0fa4e51 100755
--- a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h
+++ b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h
@@ -253,7 +253,6 @@
 } MV_BOARD_INFO;
 
 MV_VOID mvBoardEnvInit(MV_VOID);
-MV_U32 mvBoardDfxConfig(MV_VOID);
 MV_U16 mvBoardModelGet(MV_VOID);
 MV_U16 mvBoardRevGet(MV_VOID);
 MV_STATUS mvBoardNameGet(char *pNameBuff);
diff --git a/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvRegs.h b/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvRegs.h
index eb39ae4..cda0fe9 100644
--- a/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvRegs.h
+++ b/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvRegs.h
@@ -276,12 +276,13 @@
 
 /* This enumerator defines the Marvell controller target ID  (see Address map) */
 typedef enum _mvTargetId {
-    DRAM_TARGET_ID	= 0,	/* Port 0 -> DRAM interface		*/
-    DEV_TARGET_ID	= 1,	/* Port 1 -> Device port, BootROM, SPI	*/
-    PEX0_TARGET_ID	= 4,	/* Port 4 -> PCI Express 0 		*/
-    CRYPT_TARGET_ID	= 9,	/* Port 9 --> Crypto Engine SRAM	*/
-    PNC_BM_TARGET_ID	= 12,  	/* Port 12 -> PNC + BM Unit		*/
-    MAX_TARGETS_ID
+	DRAM_TARGET_ID   = 0,	/* Port 0 -> DRAM interface		*/
+	DEV_TARGET_ID    = 1,	/* Port 1 -> Device port, BootROM, SPI	*/
+	PEX0_TARGET_ID   = 4,	/* Port 4 -> PCI Express 0		*/
+	DFX_TARGET_ID    = 8,	/* Port 8 -> DFX Server			*/
+	CRYPT_TARGET_ID  = 9,	/* Port 9 --> Crypto Engine SRAM	*/
+	PNC_BM_TARGET_ID = 12,	/* Port 12 -> PNC + BM Unit		*/
+	MAX_TARGETS_ID
 } MV_TARGET_ID;
 
 
diff --git a/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvSpec.h b/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvSpec.h
index 97e4add..0e1276a 100755
--- a/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvSpec.h
+++ b/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvSpec.h
@@ -312,7 +312,7 @@
 	{0xE8, PEX0_TARGET_ID	},		/*  8 PEX0_LANE0_MEM */	\
 	{0xE0, PEX0_TARGET_ID	},		/*  9 PEX0_LANE0_IO */	\
 	{0xFF, 0xFF             },		/* 10 INTER_REGS */	\
-	{0x00, 8		},		/* 11 DFX_INTER_REGS */	\
+	{0x00, DFX_TARGET_ID	},		/* 11 DFX_INTER_REGS */	\
 	{0x01, DEV_TARGET_ID    },		/* 12 DMA_UART */	\
 	{0x1E, DEV_TARGET_ID    },		/* 13 SPI_CS0 */	\
 	{0x5E, DEV_TARGET_ID    },		/* 14 SPI_CS1 */	\
diff --git a/board/mv_ebu/msys/mvSysHwConfig.h b/board/mv_ebu/msys/mvSysHwConfig.h
index 28b04a1..b8a3aae 100644
--- a/board/mv_ebu/msys/mvSysHwConfig.h
+++ b/board/mv_ebu/msys/mvSysHwConfig.h
@@ -112,21 +112,18 @@
 #define PEX0_IO_SIZE                    _1M
 /*****************  DFX base address ***********************/
 #define DFX_REGS_BASE   0xF5000000
+#define DFX_REGS_SIZE   _1M
 
 #define MV_DFX_REG_READ(offset)		\
-	mvBoardDfxConfig() |		\
 	(MV_MEMIO_LE32_READ(DFX_REGS_BASE | (offset)))	\
 
-
 #define MV_DFX_REG_WRITE(offset, val)	\
 {					\
-	mvBoardDfxConfig();		\
 	MV_MEMIO_LE32_WRITE((DFX_REGS_BASE | (offset)), (val));	\
 }
 
 #define MV_DFX_REG_BIT_SET(offset, bitMask)	\
 {						\
-	mvBoardDfxConfig();			\
         (MV_MEMIO32_WRITE((DFX_REGS_BASE | (offset)), \
          (MV_MEMIO32_READ(DFX_REGS_BASE | (offset)) | \
           MV_32BIT_LE_FAST(bitMask))));		\
@@ -134,7 +131,6 @@
 
 #define MV_DFX_REG_BIT_RESET(offset,bitMask)	\
 {						\
-	mvBoardDfxConfig(); 			\
         (MV_MEMIO32_WRITE((DFX_REGS_BASE | (offset)), \
          (MV_MEMIO32_READ(DFX_REGS_BASE | (offset)) & \
           MV_32BIT_LE_FAST(~bitMask))));		\
@@ -256,6 +252,7 @@
 		{ { PEX0_MEM_BASE,        0,      PEX0_MEM_SIZE   },      0,              EN },         /* PEX0_MEM */	\
 		{ { PEX0_IO_BASE,         0,      PEX0_IO_SIZE    },      TBL_UNUSED,     DIS },        /* PEX0_IO */	\
 		{ { INTER_REGS_BASE,      0, INTER_REGS_SIZE }, MV_AHB_TO_MBUS_INTREG_WIN, EN },        /* INTER_REGS */ \
+		{ { DFX_REGS_BASE,        0,      DFX_REGS_SIZE   },      1,               EN },        /* DFX_REGS */ \
 		{ { TBL_UNUSED,           0,      TBL_UNUSED      },      TBL_UNUSED,     DIS },        /* DMA_UART   */ \
 		{ { SPI_CS_BASE,          0,      SPI_CS_SIZE     },      8,               EN },        /* SPI_CS0 */	\
 		{ { TBL_UNUSED,           0,      TBL_UNUSED      },      TBL_UNUSED,     DIS },        /* SPI_CS1 */	\
diff --git a/include/configs/msys.h b/include/configs/msys.h
index ed083d5..e14a53e 100644
--- a/include/configs/msys.h
+++ b/include/configs/msys.h
@@ -77,6 +77,7 @@
 #define MV_DDR_64BIT
 #define MV_MEM_FASTPATH
 #define MV_BOOTROM
+#define CONFIG_BOARD_EARLY_INIT_F
 
 /*********/
 /* Debug */