summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/inc/Peripherals
diff options
context:
space:
mode:
authorMandy Lavi <mandy.lavi@freescale.com>2013-10-31 16:51:23 (GMT)
committerMadalin-Cristian Bucur <madalin.bucur@freescale.com>2014-01-06 15:03:57 (GMT)
commit55cfaca07b53b48608ce29150e152eb4ef0b2703 (patch)
tree653a859959f2550acc46df7f812e7468cc838222 /drivers/net/ethernet/freescale/fman/inc/Peripherals
parent4ce33519e320bd72efaf3fab0acc4007af10a60e (diff)
downloadlinux-fsl-qoriq-55cfaca07b53b48608ce29150e152eb4ef0b2703.tar.xz
fmd: fmd22 integration
- Fix for PCD: key mask not properly enabled in exact match table - Fix for PFC mapping function - Added counters for miss entry in match and hash tables - Added counter for IPv4 options in IP fragmentation Change-Id: I1626afc661d412c518172d405860a33d801cd005 Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/6251 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian-Cornel Chereji <marian.chereji@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com> Conflicts: drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.h Change-Id: If356927d0cd4e22e8949a0106c2a403fcf1343a2 Reviewed-on: http://git.am.freescale.net:8181/7665 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Tested-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/inc/Peripherals')
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/Peripherals/dpaa_ext.h2
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h6
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_pcd_ext.h25
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_port_ext.h40
4 files changed, 58 insertions, 15 deletions
diff --git a/drivers/net/ethernet/freescale/fman/inc/Peripherals/dpaa_ext.h b/drivers/net/ethernet/freescale/fman/inc/Peripherals/dpaa_ext.h
index c20a6eb..66fa760 100644
--- a/drivers/net/ethernet/freescale/fman/inc/Peripherals/dpaa_ext.h
+++ b/drivers/net/ethernet/freescale/fman/inc/Peripherals/dpaa_ext.h
@@ -199,6 +199,8 @@ do { \
#pragma pack(pop)
#endif /* defined(__MWERKS__) && ... */
+#define DPAA_LIODN_DONT_OVERRIDE (-1)
+
/** @} */ /* end of DPAA_grp group */
diff --git a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h
index 94b305c..b7128b5 100644
--- a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h
+++ b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h
@@ -210,7 +210,11 @@ typedef struct t_FmMacStatistics {
typedef struct t_FmMacParams {
uintptr_t baseAddr; /**< Base of memory mapped FM MAC registers */
t_EnetAddr addr; /**< MAC address of device; First octet is sent first */
- uint8_t macId; /**< MAC ID <dTSEC 0-3> <10G-MAC 0> */
+ uint8_t macId; /**< MAC ID;
+ numbering of dTSEC and 1G-mEMAC:
+ 0 - FM_MAX_NUM_OF_1G_MACS;
+ numbering of 10G-MAC (TGEC) and 10G-mEMAC:
+ 0 - FM_MAX_NUM_OF_10G_MACS */
e_EnetMode enetMode; /**< Ethernet operation mode (MAC-PHY interface and speed);
Note that the speed should indicate the maximum rate that
this MAC should support rather than the actual speed;
diff --git a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_pcd_ext.h b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_pcd_ext.h
index 00750ba..83cf237 100644
--- a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_pcd_ext.h
+++ b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_pcd_ext.h
@@ -47,7 +47,6 @@
/**************************************************************************//**
-
@Group FM_grp Frame Manager API
@Description Frame Manager Application Programming Interface
@@ -2538,6 +2537,7 @@ typedef struct t_FmPcdManipReassemParams {
} u;
} t_FmPcdManipReassemParams;
+
/**************************************************************************//**
@Description Parameters for defining a manipulation node
*//***************************************************************************/
@@ -2935,6 +2935,10 @@ t_Error FM_PCD_MatchTableDelete(t_Handle h_CcNode);
@Cautions Allowed only following FM_PCD_MatchTableSet();
Not relevant in the case the node is of type 'INDEXED_LOOKUP'.
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
+
*//***************************************************************************/
t_Error FM_PCD_MatchTableModifyMissNextEngine(t_Handle h_CcNode,
t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams);
@@ -2992,6 +2996,10 @@ t_Error FM_PCD_MatchTableAddKey(t_Handle h_CcNode,
@Return E_OK on success; Error code otherwise.
@Cautions Allowed only following FM_PCD_MatchTableSet().
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
+
*//***************************************************************************/
t_Error FM_PCD_MatchTableModifyNextEngine(t_Handle h_CcNode,
uint16_t keyIndex,
@@ -3013,6 +3021,9 @@ t_Error FM_PCD_MatchTableModifyNextEngine(t_Handle h_CcNode,
@Cautions Allowed only following FM_PCD_MatchTableSet() was called for this
node and the nodes that lead to it.
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
*//***************************************************************************/
t_Error FM_PCD_MatchTableModifyKeyAndNextEngine(t_Handle h_CcNode,
uint16_t keyIndex,
@@ -3082,6 +3093,9 @@ t_Error FM_PCD_MatchTableFindNRemoveKey(t_Handle h_CcNode,
@Return E_OK on success; Error code otherwise.
@Cautions Allowed only following FM_PCD_MatchTableSet().
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
*//***************************************************************************/
t_Error FM_PCD_MatchTableFindNModifyNextEngine(t_Handle h_CcNode,
uint8_t keySize,
@@ -3108,6 +3122,9 @@ t_Error FM_PCD_MatchTableFindNModifyNextEngine(t_Handle h_CcNod
@Cautions Allowed only following FM_PCD_MatchTableSet() was called for this
node and the nodes that lead to it.
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
*//***************************************************************************/
t_Error FM_PCD_MatchTableFindNModifyKeyAndNextEngine(t_Handle h_CcNode,
uint8_t keySize,
@@ -3390,6 +3407,9 @@ t_Error FM_PCD_HashTableRemoveKey(t_Handle h_HashTbl,
@Return E_OK on success; Error code otherwise.
@Cautions Allowed only following FM_PCD_HashTableSet().
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
*//***************************************************************************/
t_Error FM_PCD_HashTableModifyNextEngine(t_Handle h_HashTbl,
uint8_t keySize,
@@ -3408,6 +3428,9 @@ t_Error FM_PCD_HashTableModifyNextEngine(t_Handle h_HashTbl,
@Return E_OK on success; Error code otherwise.
@Cautions Allowed only following FM_PCD_HashTableSet().
+ When configuring nextEngine = e_FM_PCD_CC, note that
+ p_FmPcdCcNextEngineParams->ccParams.h_CcNode must be different
+ from the currently changed table.
*//***************************************************************************/
t_Error FM_PCD_HashTableModifyMissNextEngine(t_Handle h_HashTbl,
t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams);
diff --git a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_port_ext.h b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_port_ext.h
index 89fabbc..6f344b8 100644
--- a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_port_ext.h
+++ b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_port_ext.h
@@ -136,7 +136,7 @@ typedef uint32_t fmPortFrameErrSelect_t; /**< typedef
#define FM_PORT_FRM_ERR_IPRE (FM_FD_ERR_IPR & ~FM_FD_IPR) /**< IPR error */
#define FM_PORT_FRM_ERR_IPR_NCSP (FM_FD_ERR_IPR_NCSP & ~FM_FD_IPR) /**< IPR non-consistent-sp */
-#define FM_PORT_FRM_ERR_IPFE 0 /**< Obsolete; will be removed in the future */
+#define FM_PORT_FRM_ERR_IPFE 0 /**< Obsolete; will be removed in the future */
#ifdef FM_CAPWAP_SUPPORT
#define FM_PORT_FRM_ERR_CRE FM_FD_ERR_CRE
@@ -147,7 +147,7 @@ typedef uint32_t fmPortFrameErrSelect_t; /**< typedef
error (SGMII and TBI modes), FIFO parity error. PHY
Sequence error, PHY error control character detected. */
#define FM_PORT_FRM_ERR_SIZE FM_FD_ERR_SIZE /**< Frame too long OR Frame size exceeds max_length_frame */
-#define FM_PORT_FRM_ERR_CLS_DISCARD FM_FD_ERR_CLS_DISCARD /**< classification discard */
+#define FM_PORT_FRM_ERR_CLS_DISCARD FM_FD_ERR_CLS_DISCARD /**< indicates a classifier "drop" operation */
#define FM_PORT_FRM_ERR_EXTRACTION FM_FD_ERR_EXTRACTION /**< Extract Out of Frame */
#define FM_PORT_FRM_ERR_NO_SCHEME FM_FD_ERR_NO_SCHEME /**< No Scheme Selected */
#define FM_PORT_FRM_ERR_KEYSIZE_OVERFLOW FM_FD_ERR_KEYSIZE_OVERFLOW /**< Keysize Overflow */
@@ -159,7 +159,7 @@ typedef uint32_t fmPortFrameErrSelect_t; /**< typedef
#define FM_PORT_FRM_ERR_PRS_ILL_INSTRUCT FM_FD_ERR_PRS_ILL_INSTRUCT /**< Invalid Soft Parser instruction */
#define FM_PORT_FRM_ERR_PRS_HDR_ERR FM_FD_ERR_PRS_HDR_ERR /**< Header error was identified during parsing */
#define FM_PORT_FRM_ERR_BLOCK_LIMIT_EXCEEDED FM_FD_ERR_BLOCK_LIMIT_EXCEEDED /**< Frame parsed beyind 256 first bytes */
-#define FM_PORT_FRM_ERR_PROCESS_TIMEOUT 0x00000001 /**< FPM Frame Processing Timeout Exceeded */
+#define FM_PORT_FRM_ERR_PROCESS_TIMEOUT 0x00000001 /**< FPM Frame Processing Timeout Exceeded */
/* @} */
@@ -1093,9 +1093,10 @@ t_Error FM_PORT_ConfigTxFifoMinFillLevel(t_Handle h_FmPort, uint32_t minFillLeve
pipeline depth parameter in the internal driver data base
from its default configuration: 1G ports: [DEFAULT_PORT_fifoDeqPipelineDepth_1G],
- 10G port: [DEFAULT_PORT_fifoDeqPipelineDepth_10G]
+ 10G port: [DEFAULT_PORT_fifoDeqPipelineDepth_10G],
+ OP port: [DEFAULT_PORT_fifoDeqPipelineDepth_OH]
- May be used for Tx ports only
+ May be used for Tx/OP ports only
@Param[in] h_FmPort A handle to a FM Port module.
@Param[in] deqPipelineDepth New value
@@ -1907,13 +1908,7 @@ typedef struct t_FmPortPcdKgParams {
@Description struct for defining policer parameters
*//***************************************************************************/
typedef struct t_FmPortPcdPlcrParams {
- t_Handle h_Profile; /**< Selected profile handle; Relevant for one of
- following cases:
- e_FM_PORT_PCD_SUPPORT_PLCR_ONLY or
- e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR were selected,
- or if any flow uses a KG scheme were policer
- profile is not generated
- (bypassPlcrProfileGeneration selected) */
+ t_Handle h_Profile; /**< Selected profile handle */
} t_FmPortPcdPlcrParams;
/**************************************************************************//**
@@ -1926,7 +1921,13 @@ typedef struct t_FmPortPcdParams {
t_FmPortPcdPrsParams *p_PrsParams; /**< Parser parameters for this port */
t_FmPortPcdCcParams *p_CcParams; /**< Coarse classification parameters for this port */
t_FmPortPcdKgParams *p_KgParams; /**< Keygen parameters for this port */
- t_FmPortPcdPlcrParams *p_PlcrParams; /**< Policer parameters for this port */
+ t_FmPortPcdPlcrParams *p_PlcrParams; /**< Policer parameters for this port; Relevant for one of
+ following cases:
+ e_FM_PORT_PCD_SUPPORT_PLCR_ONLY or
+ e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR were selected,
+ or if any flow uses a KG scheme were policer
+ profile is not generated
+ ('bypassPlcrProfileGeneration selected'). */
t_Handle h_IpReassemblyManip;/**< IP Reassembly manipulation */
} t_FmPortPcdParams;
@@ -2180,6 +2181,19 @@ t_Error FM_PORT_PcdKgUnbindSchemes (t_Handle h_FmPort, t_FmPcdPortSchemesParams
*//***************************************************************************/
t_Error FM_PORT_PcdPrsModifyStartOffset (t_Handle h_FmPort, t_FmPcdPrsStart *p_FmPcdPrsStart);
+/**************************************************************************//**
+ @Function FM_PORT_GetIPv4OptionsCount
+
+ @Description TODO
+
+ @Param[in] h_FmPort A handle to a FM Port module.
+ @Param[out] p_Ipv4OptionsCount will hold the counter value
+
+ @Return E_OK on success; Error code otherwise.
+
+ @Cautions Allowed only following FM_PORT_Init()
+*//***************************************************************************/
+t_Error FM_PORT_GetIPv4OptionsCount(t_Handle h_FmPort, uint32_t *p_Ipv4OptionsCount);
/** @} */ /* end of FM_PORT_pcd_runtime_control_grp group */
/** @} */ /* end of FM_PORT_runtime_control_grp group */