diff --git a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
index 2f9b6dc..fde344a 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
@@ -1335,6 +1335,17 @@
 	 }
 };
 
+MV_BOARD_MPP_INFO gflt200Evt2InfoBoardMppConfigValue[] = {
+	{{
+	  GFLT200_EVT2_MPP0_7,
+	  GFLT200_EVT2_MPP8_15,
+	  GFLT200_EVT2_MPP16_23,
+	  GFLT200_EVT2_MPP24_31,
+	  GFLT200_EVT2_MPP32_37
+	  }
+	 }
+};
+
 /*
 MV_BOARD_SPEC_INIT gflt200BoardSpecInit[] = {
 	{
@@ -1351,14 +1362,16 @@
 
 #define GFLT200_GPP_BOARD_VER_MASK	((1 << 18) | (1 << 15) | (1 << 13))
 #define GFLT200_EVT1_BOARD_VER		(0)
+#define GFLT200_EVT2_BOARD_VER		(1 << 13)
 
 static MV_VOID gflt200BoardInit(MV_BOARD_INFO *pBoardInfo)
 {
+	MV_U32 board_ver;
+
 	mvGppTypeSet(0, GFLT200_GPP_BOARD_VER_MASK, GFLT200_GPP_BOARD_VER_MASK);
 
-	switch (mvGppValueGet(0, GFLT200_GPP_BOARD_VER_MASK)) {
+	switch ((board_ver = mvGppValueGet(0, GFLT200_GPP_BOARD_VER_MASK))) {
 	case GFLT200_EVT1_BOARD_VER:
-	default: /* latest */
 		pBoardInfo->numBoardMppConfigValue
 			= MV_ARRAY_SIZE(gflt200Evt1InfoBoardMppConfigValue);
 		pBoardInfo->pBoardMppConfigValue
@@ -1370,6 +1383,22 @@
 		pBoardInfo->gppPolarityValLow = GFLT200_EVT1_GPP_POL_LOW;
 		pBoardInfo->gppPolarityValMid = GFLT200_EVT1_GPP_POL_MID;
 		break;
+
+	default:
+		pr_err("GFLT200: unknown board version '%x'\n", board_ver);
+		/* fallthrough */
+	case GFLT200_EVT2_BOARD_VER:
+		pBoardInfo->numBoardMppConfigValue
+			= MV_ARRAY_SIZE(gflt200Evt2InfoBoardMppConfigValue);
+		pBoardInfo->pBoardMppConfigValue
+			= gflt200Evt2InfoBoardMppConfigValue;
+		pBoardInfo->gppOutEnValLow = GFLT200_EVT2_GPP_OUT_ENA_LOW;
+		pBoardInfo->gppOutEnValMid = GFLT200_EVT2_GPP_OUT_ENA_MID;
+		pBoardInfo->gppOutValLow = GFLT200_EVT2_GPP_OUT_VAL_LOW;
+		pBoardInfo->gppOutValMid = GFLT200_EVT2_GPP_OUT_VAL_MID;
+		pBoardInfo->gppPolarityValLow = GFLT200_EVT2_GPP_POL_LOW;
+		pBoardInfo->gppPolarityValMid = GFLT200_EVT2_GPP_POL_MID;
+		break;
 	}
 }
 
diff --git a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
index a8051d7..856cc31 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
@@ -477,34 +477,47 @@
 #define GFLT200_EVT1_MPP24_31		0x40200000
 #define GFLT200_EVT1_MPP32_37		0x00000004
 
+#define GFLT200_EVT2_MPP0_7		0x22222220
+#define GFLT200_EVT2_MPP8_15		0x00000002
+#define GFLT200_EVT2_MPP16_23		0x00000000
+#define GFLT200_EVT2_MPP24_31		0x40200004
+#define GFLT200_EVT2_MPP32_37		0x00000004
+
 /* GPPs
- 1 SPI_MOSI (out)
- 2 SPI_SCK (out)
- 3 SPI_CS_L (out)
- 4 SPI_MISO (in)
- 5 I2C_SDA (inout)
- 6 I2C_SCLK (inout)
- 7 UART0_TX (out)
- 8 UART0_RX (in)
- 9 VDD_MARGIN_EN (out)
-10 VDD_MARGIN_CTRL (out)
-11 PON_LINK_LED (out)
-12 PON_ERROR_LED (out)
-13 BOARD_VER[0] (in)
-15 BOARD_VER[1] (in)
-17 SW_RESET (out)
-18 BOARD_VER[2] (in)
-21 PON_TX_DIS (out)
-23 GE_DATA_LED (out)
-24 GE_LINK_LED (out)
-26 PON_C2_DATA (out)
-27 PON_C2_CLK (out)
-28 SPI_WP_L (out)
-29 PON_RX_LOS (in)
-31 UART1_RX (out)
-32 UART2_TX (in)
-36 PON_RX_PMON (in)
-37 PON_PWR_EN_L (out)
+   ... ditto
+   --- unused
+
+   EVT1                   EVT2
+ 1 SPI_MOSI (out)         ...
+ 2 SPI_SCK (out)          ...
+ 3 SPI_CS_L (out)         ...
+ 4 SPI_MISO (in)          ...
+ 5 I2C_SDA (inout)        ...
+ 6 I2C_SCLK (out)         ...
+ 7 UART0_TX (out)         ...
+ 8 UART0_RX (in)          ...
+ 9 VDD_MARGIN_EN (out)    ---
+10 VDD_MARGIN_CTRL (out)  ---
+11 PON_LINK_LED (out)     PON_LED_RED (out)
+12 PON_ERROR_LED (out)    PON_LED_BLUE (out)
+13 BOARD_VER[0] (in)      ...
+14 ---                    GE_LINK_LED (out)
+15 BOARD_VER[1] (in)      ...
+17 SW_RESET (out)         ...
+18 BOARD_VER[2] (in)      ...
+21 PON_TX_DIS (out)       ...
+22 ---                    DOLOS_DETECT (in)
+23 GE_DATA_LED (out)      ---
+24 GE_LINK_LED (out)      PTP_TRIG_GEN (out)
+25 ---                    PTP_EVENT_REQ (in)
+26 PON_C2_DATA (out)      GE_DATA_LED (out)
+27 PON_C2_CLK (out)       PTP_CLK (in)
+28 SPI_WP_L (out)         ...
+29 PON_RX_LOS (in)        ...
+31 UART1_RX (out)         ...
+32 UART2_TX (in)          ...
+36 PON_RX_PMON (in)       ...
+37 PON_PWR_EN_L (out)     ...
 */
 
 #define GFLT200_EVT1_GPP_OUT_ENA_LOW	(BIT13 | BIT15 | BIT18 | BIT29)
@@ -516,6 +529,15 @@
 #define GFLT200_EVT1_GPP_POL_LOW	0x0
 #define GFLT200_EVT1_GPP_POL_MID	0x0
 
+#define GFLT200_EVT2_GPP_OUT_ENA_LOW	(BIT13 | BIT15 | BIT18 | BIT22 | BIT29)
+#define GFLT200_EVT2_GPP_OUT_ENA_MID	(BIT4)
+
+#define GFLT200_EVT2_GPP_OUT_VAL_LOW	(BIT21 | BIT28)
+#define GFLT200_EVT2_GPP_OUT_VAL_MID	0x0
+
+#define GFLT200_EVT2_GPP_POL_LOW	0x0
+#define GFLT200_EVT2_GPP_POL_MID	0x0
+
 /***************************************************************************
 ** GFLT110
 ****************************************************************************/
