Merge "Marvell: MHSLPONLGCY-166 l2fwserver doesn't work on AvantaMC when working in GMAC's bridge mode"
diff --git a/arch/arm/mach-feroceon-kw2/core.c b/arch/arm/mach-feroceon-kw2/core.c
index 613d635..4c761d7 100755
--- a/arch/arm/mach-feroceon-kw2/core.c
+++ b/arch/arm/mach-feroceon-kw2/core.c
@@ -157,7 +157,8 @@
gBoardId = (mvUbootVer & 0xff);
#ifdef CONFIG_MACH_GFLT110
- if ((gBoardId != GFLT110_ID) && (gBoardId != GFLT300_ID)) {
+ if ((gBoardId != GFLT110_ID) && (gBoardId != GFLT300_ID) &&
+ (gBoardId != GFLT400_ID)) {
printk("Unknown boardId from uboot: %x: Defaulting to GFLT110.\n", gBoardId);
gBoardId = GFLT110_ID;
}
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 7a9c1ee..bd55fb0 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
@@ -1995,8 +1995,8 @@
&rd88f6601Info,
&gflt200Info,
&gflt110Info,
- &rd88f6601MC2LInfo,
- &rd88f6601SFPInfo,
+ &rd88f6601MC2LInfo, /* disabled (NULL) in uboot */
&gflt300Info,
&gflt400Info,
+ &rd88f6601SFPInfo /* not present in uboot, moved to back of list */
};
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 436f6ae..2cdda78 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
@@ -115,9 +115,15 @@
#define GFLT200_ID DB_CUSTOMER_ID
#define GFLT110_ID (BOARD_ID_BASE+0x8)
#define RD_88F6601_MC2L_ID (BOARD_ID_BASE+0x9)
-#define RD_88F6601_SFP_ID (BOARD_ID_BASE+0xA)
-#define GFLT300_ID (BOARD_ID_BASE+0xB)
-#define GFLT400_ID (BOARD_ID_BASE+0xC)
+#define GFLT300_ID (BOARD_ID_BASE+0xA)
+#define GFLT400_ID (BOARD_ID_BASE+0xB)
+// When Marvell upgraded their SDK from RC32 -> thunderbolt_v1, they added a
+// new ID. We did not upgrade the uboot half of our SDK. This means the IDs are
+// out of sync. Since uboot doesn't have this ID at all, we manually move it
+// in the kernel half to the end of list so that it stays out of the way, and
+// every other boardID still lines up.
+#define RD_88F6601_SFP_ID (BOARD_ID_BASE+0xC)
+
#define MV_MAX_BOARD_ID (DB_CUSTOMER_ID + 6)
// These are Marvells defines, we should switch to match these in
// uboot to make future merges easier.
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c
index c86e5ea..dbe07b3 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c
@@ -1325,6 +1325,10 @@
skb_new = skb_old;
goto out;
}
+ // Remove CRC from original message. It is not needed when forwarding to WAN interface
+ skb_old->tail -= MV_ETH_CRC_SIZE; // Remove CRC
+ skb_old->len -= MV_ETH_CRC_SIZE; // Remove CRC
+
/* If WAN interface is GMAC1, remove MH in upstream */
if ((profile_id == TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT) && (active_port == MV_APP_GMAC_PORT_1))
{