diff --git a/arch/arm/mach-feroceon-kw2/core.c b/arch/arm/mach-feroceon-kw2/core.c
index 7abeb6b..e68380a 100755
--- a/arch/arm/mach-feroceon-kw2/core.c
+++ b/arch/arm/mach-feroceon-kw2/core.c
@@ -153,9 +153,16 @@
 	mvUbootVer = tag->u.mv_uboot.uboot_version;
 	mvIsUsbHost = tag->u.mv_uboot.isUsbHost;
 
-	printk("Using UBoot passing parameters structure\n");
+	printk("Using UBoot passing parameters structure: UbootVer:%x\n", mvUbootVer);
 
 	gBoardId =  (mvUbootVer & 0xff);
+#ifdef CONFIG_MACH_GFLT110
+	if ((gBoardId != GFLT110_ID) && (gBoardId != GFLT300_ID)) {
+		printk("unknown boardID from uboot:%x  defaulting to GFLT110\n", gBoardId);
+		gBoardId = GFLT110_ID;
+	}
+#endif
+	printk("BoardId:%x\n", mvBoardIdGet());
 #ifdef CONFIG_MV_INCLUDE_GIG_ETH
 	for (i = 0; i < CONFIG_MV_ETH_PORTS_NUM; i++) {
 #if defined (CONFIG_OVERRIDE_ETH_CMDLINE)
diff --git a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvLib.c b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvLib.c
index 9803da1..8774fcc 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvLib.c
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvLib.c
@@ -160,7 +160,7 @@
 	MV_REG_WRITE(GPP_DATA_OUT_REG(1), BOARD_INFO(boardId)->gppOutValMid);
 	if (boardId != DB_88F6601_BP_ID && boardId != RD_88F6601_MC_ID &&
 	   boardId != RD_88F6601_MC2L_ID &&
-	   boardId != GFLT200_ID && boardId != GFLT110_ID)
+	   boardId != GFLT300_ID && boardId != GFLT200_ID && boardId != GFLT110_ID)
 		MV_REG_WRITE(GPP_DATA_OUT_REG(2), BOARD_INFO(boardId)->gppOutValHigh);
 
 	/* set GPP polarity */
@@ -168,7 +168,7 @@
 	mvGppPolaritySet(1, 0xFFFFFFFF, BOARD_INFO(boardId)->gppPolarityValMid);
 	if (boardId != DB_88F6601_BP_ID && boardId != RD_88F6601_MC_ID &&
 	   boardId != RD_88F6601_MC2L_ID &&
-	   boardId != GFLT200_ID && boardId != GFLT110_ID)
+	   boardId != GFLT300_ID && boardId != GFLT200_ID && boardId != GFLT110_ID)
 		mvGppPolaritySet(2, 0xFFFFFFFF, BOARD_INFO(boardId)->gppPolarityValHigh);
 
 	/* Set GPP Out Enable */
@@ -176,7 +176,7 @@
 	mvGppTypeSet(1, 0xFFFFFFFF, BOARD_INFO(boardId)->gppOutEnValMid);
 	if (boardId != DB_88F6601_BP_ID && boardId != RD_88F6601_MC_ID &&
 	    boardId != RD_88F6601_MC2L_ID &&
-	    boardId != GFLT200_ID && boardId != GFLT110_ID)
+	    boardId != GFLT300_ID && boardId != GFLT200_ID && boardId != GFLT110_ID)
 		mvGppTypeSet(2, 0xFFFFFFFF, BOARD_INFO(boardId)->gppOutEnValHigh);
 }
 
@@ -355,7 +355,7 @@
 		return MV_FALSE;
 	}
 	if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
-	    GFLT200_ID == boardId || GFLT110_ID == boardId)
+	    GFLT300_ID == boardId || GFLT200_ID == boardId || GFLT110_ID == boardId)
 		return MV_FALSE;
 
 	if ((ethPortNum > 0) || (ethCompOpt & ESC_OPT_SGMII_2_SW_P1))
@@ -655,7 +655,7 @@
 	}
 	if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
 	    boardId == DB_88F6601_BP_ID ||
-            GFLT200_ID == boardId || GFLT110_ID == boardId)
+            GFLT300_ID == boardId || GFLT200_ID == boardId || GFLT110_ID == boardId)
 		return 0;
 
 
@@ -1255,7 +1255,7 @@
 	tmpTClkRate = MV_REG_READ(MPP_SAMPLE_AT_RESET(0));
 	if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
 	    boardId == DB_88F6601_BP_ID ||
-	    GFLT200_ID == boardId || GFLT110_ID == boardId) {
+	    GFLT300_ID == boardId || GFLT200_ID == boardId || GFLT110_ID == boardId) {
 		tmpTClkRate &= MSAR_TCLCK_6601_MASK;
 		if (tmpTClkRate)
 			return MV_BOARD_TCLK_200MHZ;
@@ -1312,7 +1312,7 @@
 	i = 0;
 	if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
 	    boardId == DB_88F6601_BP_ID ||
-	    GFLT200_ID == boardId || GFLT110_ID == boardId) {
+	    GFLT300_ID == boardId || GFLT200_ID == boardId || GFLT110_ID == boardId) {
 		while (cpuDdrTbl6601[i].satrValue != -1) {
 			if (cpuDdrTbl6601[i].satrValue == clockSatr) {
 				res = i;
@@ -1722,7 +1722,7 @@
 
 	if (boardId != DB_88F6601_BP_ID && boardId != RD_88F6601_MC_ID &&
 	    boardId != RD_88F6601_MC2L_ID &&
-	    boardId != GFLT200_ID && boardId != GFLT110_ID) {
+	    boardId != GFLT300_ID && boardId != GFLT200_ID && boardId != GFLT110_ID) {
 		/* KW2 only */
 		/* Update link speed for MAC0 / 1 */
 		/* If MAC 0 is connected to switch, then set to speed 1000Mbps */
@@ -2354,7 +2354,7 @@
 		return MV_FALSE;
 	}
 	if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
-	    GFLT200_ID == boardId || GFLT110_ID == boardId) {
+	    GFLT300_ID == boardId || GFLT200_ID == boardId || GFLT110_ID == boardId) {
 		if (ethPortNum == 0)
 			return MV_TRUE;
 		return MV_FALSE;
@@ -2764,6 +2764,7 @@
 		tmpBoardId = GFLT200_ID;
 #elif defined(GFLT110)
 		tmpBoardId = GFLT110_ID;
+#error " gBoardId is first set in mach-feroceon-kw2/core.c parse_tag_mv_uboot()"
 #endif
 		gBoardId = tmpBoardId;
 	}
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 dc7e9e3..209268c 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
@@ -1502,18 +1502,6 @@
 	{BOARD_GPP_PON_XVR_TX_IND, 24},
 };
 
-/* TODO(cgibson): For GFLT200, these are set to:
-     {BOARD_GPP_PON_XVR_TX, 21, 1},
-     {BOARD_GPP_PON_XVR_TX_POWER, 37, 0},
-   Which is correct?
-*/
-MV_BOARD_GPP_INFO gflt300InfoBoardGppInfo[] = {
-	/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
-	{BOARD_GPP_PON_XVR_TX, 17},
-	{BOARD_GPP_PON_XVR_TX_POWER, 11},
-	{BOARD_GPP_PON_XVR_TX_IND, 24},
-};
-
 MV_DEV_CS_INFO gflt110InfoBoardDeCsInfo[] = {
 	/*{deviceCS, params, devType, devWidth} */
 #ifdef MV_SPI
@@ -1535,44 +1523,13 @@
 	 }
 };
 
-MV_BOARD_MPP_INFO gflt300InfoBoardMppConfigValue[] = {
-	{{
-	  GFLT300_MPP0_7,
-	  GFLT300_MPP8_15,
-	  GFLT300_MPP16_23,
-	  GFLT300_MPP24_31,
-	  GFLT300_MPP32_37
-	  }
-	 }
-};
-
-static MV_VOID gfltBoardInit(MV_BOARD_INFO *pBoardInfo)
-{
-	if (is_gflt300() == 1) {
-		pBoardInfo->numBoardGppInfo = MV_ARRAY_SIZE(
-				gflt300InfoBoardGppInfo);
-		pBoardInfo->pBoardGppInfo = gflt300InfoBoardGppInfo;
-		pBoardInfo->numBoardMppConfigValue = MV_ARRAY_SIZE(
-				gflt300InfoBoardMppConfigValue);
-		pBoardInfo->pBoardMppConfigValue =
-				gflt300InfoBoardMppConfigValue;
-		pBoardInfo->gppOutEnValLow = GFLT300_GPP_OUT_ENA_LOW;
-	} else {
-		pBoardInfo->numBoardGppInfo = MV_ARRAY_SIZE(
-				gflt110InfoBoardGppInfo);
-		pBoardInfo->pBoardGppInfo = gflt110InfoBoardGppInfo;
-		pBoardInfo->numBoardMppConfigValue = MV_ARRAY_SIZE(
-				gflt110InfoBoardMppConfigValue);
-		pBoardInfo->pBoardMppConfigValue =
-				gflt110InfoBoardMppConfigValue;
-		pBoardInfo->gppOutEnValLow = GFLT110_GPP_OUT_ENA_LOW;
-	}
-}
 
 MV_BOARD_INFO gflt110Info = {
 	.boardName = "GFLT110",
-	.pBoardInit = gfltBoardInit,
+	.pBoardInit = NULL,
 	.pBoardMppTypeValue = gflt110InfoBoardMppTypeInfo,
+	.pBoardMppConfigValue = gflt110InfoBoardMppConfigValue,
+	.numBoardMppConfigValue = MV_ARRAY_SIZE(gflt110InfoBoardMppConfigValue),
 	.intsGppMaskLow = 0,
 	.intsGppMaskMid = 0,
 	.intsGppMaskHigh = 0,
@@ -1582,11 +1539,14 @@
 	.pBoardTwsiDev = gflt110InfoBoardTwsiDev,
 	.numBoardMacInfo = MV_ARRAY_SIZE(gflt110InfoBoardMacInfo),
 	.pBoardMacInfo = gflt110InfoBoardMacInfo,
+	.numBoardGppInfo = MV_ARRAY_SIZE(gflt110InfoBoardGppInfo),
+	.pBoardGppInfo = gflt110InfoBoardGppInfo,
 	.activeLedsNumber = 0,
 	.pLedGppPin = NULL,
 	.ledsPolarity = 0,
 
 	/* GPP values */
+	.gppOutEnValLow = GFLT110_GPP_OUT_ENA_LOW,
 	.gppOutEnValMid = GFLT110_GPP_OUT_ENA_MID,
 	.gppOutEnValHigh = 0,
 	.gppOutValLow = GFLT110_GPP_OUT_VAL_LOW,
@@ -1630,6 +1590,145 @@
 	.moduleAutoDetect = MV_FALSE
 };
 
+
+/***************************************************************************
+** GFLT300
+****************************************************************************/
+
+MV_BOARD_TWSI_INFO gflt300InfoBoardTwsiDev[] = {
+	/* {{MV_BOARD_DEV_CLASS devClass, MV_U8 twsiDevAddr, MV_U8 twsiDevAddrType}} */
+};
+
+MV_BOARD_MAC_INFO gflt300InfoBoardMacInfo[] = {
+	/* {{MV_BOARD_MAC_SPEED boardMacSpeed, MV_U8 boardEthSmiAddr}} */
+	{BOARD_MAC_SPEED_AUTO, 0x0},
+	{BOARD_MAC_SPEED_AUTO, 0x1},
+	{N_A,N_A}
+};
+
+MV_BOARD_MPP_TYPE_INFO gflt300InfoBoardMppTypeInfo[] = {
+	{
+		.boardMppTdm = MV_BOARD_AUTO,
+		.ethSataComplexOpt = ESC_OPT_GEPHY_MAC0,
+		.ethPortsMode = 0x0
+	}
+};
+
+MV_BOARD_GPP_INFO gflt300InfoBoardGppInfo[] = {
+	/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
+
+	{BOARD_GPP_SYS_LED,  9 , 1},
+	{BOARD_GPP_SYS_LED, 10 , 1},
+};
+
+
+MV_DEV_CS_INFO gflt300InfoBoardDeCsInfo[] = {
+	/*{deviceCS, params, devType, devWidth} */
+#ifdef MV_SPI
+	{SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8},		/* SPI DEV */
+#endif
+#if !defined(MV_SPI)
+	{N_A, N_A, N_A, N_A}			/* No device */
+#endif
+};
+
+MV_BOARD_MPP_INFO gflt300InfoBoardMppConfigValue[] = {
+	{{
+	  GFLT300_MPP0_7,
+	  GFLT300_MPP8_15,
+	  GFLT300_MPP16_23,
+	  GFLT300_MPP24_31,
+	  GFLT300_MPP32_37
+	  }
+	 }
+};
+
+#if 0
+static MV_VOID gflt300BoardEgigaPhyInit(MV_BOARD_INFO *pBoardInfo)
+{
+	MV_U16 value = 0;
+	/* pass led control to internal phy */
+	MV_REG_WRITE(LED_MATRIX_CTRL_REG(0), 0x82);
+
+	/* link = mpp 14 = c2 = phy led[2] */
+	/* data = mpp 26 = c1 = phy led[1] */
+	mvEthPhyRegWrite(0, 22, 3);
+	mvEthPhyRegRead(0, 16, &value);
+	value = (value & ~0xff) | 0x37;
+	mvEthPhyRegWrite(0, 16, value);
+	mvEthPhyRegWrite(0, 22, 0);
+}
+
+#endif
+
+MV_BOARD_INFO gflt300Info = {
+	.boardName = "GFLT300",
+	.pBoardInit = NULL,
+	//.pBoardEgigaPhyInit = gflt300BoardEgigaPhyInit,
+	.numBoardMppTypeValue = MV_ARRAY_SIZE(gflt300InfoBoardMppTypeInfo),
+	.pBoardMppTypeValue = gflt300InfoBoardMppTypeInfo,
+	.numBoardMppConfigValue = MV_ARRAY_SIZE(gflt300InfoBoardMppConfigValue),
+	.pBoardMppConfigValue = gflt300InfoBoardMppConfigValue,
+	.intsGppMaskLow = 0,
+	.intsGppMaskMid = 0,
+	.intsGppMaskHigh = 0,
+	.numBoardDeviceIf = MV_ARRAY_SIZE(gflt300InfoBoardDeCsInfo),
+	.pDevCsInfo = gflt300InfoBoardDeCsInfo,
+	.numBoardTwsiDev = MV_ARRAY_SIZE(gflt300InfoBoardTwsiDev),
+	.pBoardTwsiDev = gflt300InfoBoardTwsiDev,
+	.numBoardMacInfo = MV_ARRAY_SIZE(gflt300InfoBoardMacInfo),
+	.pBoardMacInfo = gflt300InfoBoardMacInfo,
+	.numBoardGppInfo = MV_ARRAY_SIZE(gflt300InfoBoardGppInfo),
+	.pBoardGppInfo = gflt300InfoBoardGppInfo,
+	.activeLedsNumber = 0,
+	.pLedGppPin = NULL,
+	.ledsPolarity = 0,
+
+	/* GPP values */
+	.gppOutEnValLow = GFLT300_GPP_OUT_ENA_LOW,
+	.gppOutEnValMid = GFLT300_GPP_OUT_ENA_MID,
+	.gppOutEnValHigh = 0,
+	.gppOutValLow = GFLT300_GPP_OUT_VAL_LOW,
+	.gppOutValMid = GFLT300_GPP_OUT_VAL_MID,
+	.gppOutValHigh = 0,
+	.gppPolarityValLow = GFLT300_GPP_POL_LOW,
+	.gppPolarityValMid = GFLT300_GPP_POL_MID,
+	.gppPolarityValHigh = 0,
+
+	/* External Switch Configuration */
+	.pSwitchInfo = NULL,
+	.switchInfoNum = 0,
+
+	/* PON configuration. */
+	.ponConfigValue = BOARD_GPON_CONFIG,
+
+	/* TDM configuration */
+	/* We hold a different configuration array for each possible slic that
+	 ** can be connected to board.
+	 ** When modules are scanned, then we select the index of the relevant
+	 ** slic's information array.
+	 ** For RD and Customers boards we only need to initialize a single
+	 ** entry of the arrays below, and set the boardTdmInfoIndex to 0.
+	 */
+	.numBoardTdmInfo = {0},
+	.pBoardTdmInt2CsInfo = {NULL},
+	.boardTdmInfoIndex = -1,
+
+	.pBoardSpecInit = NULL,			/* gflt300BoardSpecInit, */
+
+	.deepIdlePwrUpDelay = 2400,	/* 12uS */
+
+	/* NAND init params */
+	.nandFlashParamsValid = MV_FALSE,
+	.nandFlashReadParams = 0,
+	.nandFlashWriteParams = 0,
+	.nandFlashControl = 0,
+	.pBoardTdmSpiInfo = NULL,
+
+	/* Enable modules auto-detection. */
+	.moduleAutoDetect = MV_FALSE
+};
+
 MV_BOARD_INFO *boardInfoTbl[] = {
 	&db88f6535Info,
 	&rd88f6510Info,
@@ -1641,4 +1740,5 @@
 	&gflt200Info,
 	&gflt110Info,
 	&rd88f6601MC2LInfo,
+	&gflt300Info,
 };
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 64a804b..8dd507d 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
@@ -115,7 +115,8 @@
 #define GFLT200_ID			DB_CUSTOMER_ID
 #define GFLT110_ID			(BOARD_ID_BASE+0x8)
 #define RD_88F6601_MC2L_ID		(BOARD_ID_BASE+0x9)
-#define MV_MAX_BOARD_ID			(DB_CUSTOMER_ID + 3)
+#define GFLT300_ID			(BOARD_ID_BASE+0xA)
+#define MV_MAX_BOARD_ID			(DB_CUSTOMER_ID + 4)
 // These are Marvells defines, we should switch to match these in
 // uboot to make future merges easier.
 //#define DB_CUSTOMER_ID			(BOARD_ID_BASE+0x8)
@@ -538,7 +539,7 @@
 #define GFLT200_EVT2_GPP_POL_MID	0x0
 
 /***************************************************************************
-** GFLT110 & GFLT300
+** GFLT110
 ****************************************************************************/
 #define GFLT110_MPP0_7			0x22222220
 #define GFLT110_MPP8_15			0x00000002
@@ -546,12 +547,6 @@
 #define GFLT110_MPP24_31		0x00200550
 #define GFLT110_MPP32_37		0x00000000
 
-/* GFLT300 */
-#define GFLT300_MPP0_7			0x22222220
-#define GFLT300_MPP8_15			0x00000002
-#define GFLT300_MPP16_23		0x00000000
-#define GFLT300_MPP24_31		0x40200504
-#define GFLT300_MPP32_37		0x00000004
 
 /* GPPs
  1 SPI0_MOSI (out)
@@ -585,8 +580,31 @@
 #define GFLT110_GPP_POL_LOW		(BIT23)
 #define GFLT110_GPP_POL_MID		0x0
 
-/* GFLT300 */
-#define GFLT300_GPP_OUT_ENA_LOW	(BIT0 | BIT14 | BIT16 | BIT17 | BIT19 | BIT22 | BIT23 | BIT24 | BIT27| BIT30 | BIT31)
+/***************************************************************************
+** GFLT300
+****************************************************************************/
+/*spreadheet on GPIO settings:
+    https://goto.google.com/gflt300-gpio-config
+*/
+
+#define GFLT300_MPP0_7          0x22222220
+#define GFLT300_MPP8_15         0x05000002
+#define GFLT300_MPP16_23        0x00000000
+#define GFLT300_MPP24_31        0x40004544
+#define GFLT300_MPP32_37        0x00000004
+
+
+// default all ones-inputs, invert for outputs
+#define GFLT300_GPP_OUT_ENA_LOW	(~(BIT9 | BIT10 | BIT21))
+#define GFLT300_GPP_OUT_ENA_MID	(~(BIT4))
+
+// BIT09 turns the LED blue.
+// BIT10 turns the LED red.
+#define GFLT300_GPP_OUT_VAL_LOW	(BIT9)
+#define GFLT300_GPP_OUT_VAL_MID	(BIT4)
+
+#define GFLT300_GPP_POL_LOW	0x0
+#define GFLT300_GPP_POL_MID	0x0
 
 /***************************************************************************
 ** RD-88F6601MC2L
diff --git a/arch/arm/mach-feroceon-kw2/kw2_family/cpu/mvCpu.c b/arch/arm/mach-feroceon-kw2/kw2_family/cpu/mvCpu.c
index b20b1cb..1508074 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/cpu/mvCpu.c
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/cpu/mvCpu.c
@@ -113,7 +113,7 @@
 	i = 0;
 	if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
 	    boardId == DB_88F6601_BP_ID ||
-	    GFLT200_ID == boardId || GFLT110_ID == boardId) {
+	    GFLT300_ID == boardId || GFLT200_ID == boardId || GFLT110_ID == boardId) {
 		while (cpuDdrTbl6601[i].satrValue != -1) {
 			if (cpuDdrTbl6601[i].satrValue == clockSatr) {
 				res = i;
@@ -163,7 +163,7 @@
 	else {
 		if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
 		    boardId == DB_88F6601_BP_ID ||
-			(GFLT200_ID == boardId) || (GFLT110_ID == boardId))
+		    (GFLT300_ID == boardId) || (GFLT200_ID == boardId) || (GFLT110_ID == boardId))
 			return cpuDdrTbl6601[idx].cpuClk;
 		else
 			return cpuDdrL2Tbl[idx].cpuClk;
@@ -198,7 +198,7 @@
 	else {
 		if (boardId == RD_88F6601_MC_ID || boardId == RD_88F6601_MC2L_ID ||
 		    boardId == RD_88F6601_MC_ID ||
-			(GFLT200_ID == boardId) || (GFLT110_ID == boardId))
+			(GFLT300_ID == boardId) || (GFLT200_ID == boardId) || (GFLT110_ID == boardId))
 			return cpuDdrTbl6601[idx].l2Clk;
 		else
 			return cpuDdrL2Tbl[idx].l2Clk;
@@ -226,7 +226,7 @@
 
 	if (id == RD_88F6510_SFU_ID || id == DB_88F6601_BP_ID ||
 	    id == RD_88F6601_MC_ID || id == RD_88F6601_MC2L_ID ||
-	    GFLT200_ID == id || id == GFLT110_ID)
+	    GFLT300_ID == id || GFLT200_ID == id || id == GFLT110_ID)
 		return MV_FALSE;
 
 	/* Read S@R register value */
diff --git a/arch/arm/mach-feroceon-kw2/sysmap.c b/arch/arm/mach-feroceon-kw2/sysmap.c
index 3224c2b..88fa6c4 100755
--- a/arch/arm/mach-feroceon-kw2/sysmap.c
+++ b/arch/arm/mach-feroceon-kw2/sysmap.c
@@ -224,6 +224,7 @@
 		case DB_88F6601_BP_ID:
 		case RD_88F6601_MC_ID:
 		case RD_88F6601_MC2L_ID:
+		case GFLT300_ID:
 		case GFLT200_ID:
 		case GFLT110_ID:
 			return SYSMAP_88F6601;
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_init.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_init.c
index b47d2af..9e4d381 100644
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_init.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_init.c
@@ -687,7 +687,7 @@
 		if (DB_88F6601_BP_ID == mvBoardIdGet())
 			profile[0] = ESC_OPT_SGMII | ESC_OPT_GEPHY_MAC0 | ESC_OPT_LP_SERDES_FE_GE_PHY;
 		if ((RD_88F6601_MC_ID == mvBoardIdGet())
-			|| (GFLT200_ID == mvBoardIdGet()) || (GFLT110_ID == mvBoardIdGet()))
+			|| (GFLT300_ID == mvBoardIdGet()) || (GFLT200_ID == mvBoardIdGet()) || (GFLT110_ID == mvBoardIdGet()))
 			profile[0] = ESC_OPT_GEPHY_MAC0;
 		break;
 	case TPM_PON_WAN_G0_G1_DUAL_LAN:
