diff options
author | Mandy Lavi <mandy.lavi@freescale.com> | 2013-10-31 16:51:23 (GMT) |
---|---|---|
committer | Madalin-Cristian Bucur <madalin.bucur@freescale.com> | 2014-01-06 15:03:57 (GMT) |
commit | 55cfaca07b53b48608ce29150e152eb4ef0b2703 (patch) | |
tree | 653a859959f2550acc46df7f812e7468cc838222 /drivers/net/ethernet/freescale/fman/Peripherals/FM/inc | |
parent | 4ce33519e320bd72efaf3fab0acc4007af10a60e (diff) | |
download | linux-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/Peripherals/FM/inc')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/inc/fm_common.h | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/inc/fm_common.h b/drivers/net/ethernet/freescale/fman/Peripherals/FM/inc/fm_common.h index a2ca82a..d23c1d0 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/inc/fm_common.h +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/inc/fm_common.h @@ -242,6 +242,7 @@ typedef struct { uint8_t hardwarePortId; t_FmRevisionInfo revInfo; uint32_t nia; + uint32_t discardMask; } t_GetCcParams; typedef struct { @@ -300,6 +301,7 @@ static __inline__ bool TRY_LOCK(t_Handle h_Spinlock, volatile bool *p_Flag) #define GET_NIA_FPNE 0x01000000 #define GET_NIA_PNDN 0x00800000 #define NUM_OF_EXTRA_TASKS 0x00400000 +#define DISCARD_MASK 0x00200000 #define UPDATE_NIA_PNEN 0x80000000 #define UPDATE_PSO 0x40000000 @@ -374,7 +376,6 @@ static __inline__ bool TRY_LOCK(t_Handle h_Spinlock, volatile bool *p_Flag) #define NIA_BMI_AC_TX 0x00000274 #define NIA_BMI_AC_FETCH 0x00000208 #define NIA_BMI_AC_MASK 0x000003FF -#define NIA_BMI_AC_FETCH_ALL_FRAME 0x0000020c #define NIA_KG_DIRECT 0x00000100 #define NIA_KG_CC_EN 0x00000200 @@ -443,59 +444,59 @@ static __inline__ bool TRY_LOCK(t_Handle h_Spinlock, volatile bool *p_Flag) REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal OH_PORT port id")) #endif #if (FM_MAX_NUM_OF_1G_RX_PORTS > 0) -#define CHECK_PORT_ID_1G_RX_PORTS(_relativePortId) \ - if ((_relativePortId) >= FM_MAX_NUM_OF_1G_RX_PORTS) \ +#define CHECK_PORT_ID_1G_RX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_1G_RX_PORTS) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_RX_PORT port id")) #else -#define CHECK_PORT_ID_1G_RX_PORTS(_relativePortId) \ +#define CHECK_PORT_ID_1G_RX_PORTS(_relativePortId) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_RX_PORT port id")) #endif #if (FM_MAX_NUM_OF_10G_RX_PORTS > 0) -#define CHECK_PORT_ID_10G_RX_PORTS(_relativePortId) \ - if ((_relativePortId) >= FM_MAX_NUM_OF_10G_RX_PORTS) \ +#define CHECK_PORT_ID_10G_RX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_10G_RX_PORTS) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_RX_PORT port id")) #else -#define CHECK_PORT_ID_10G_RX_PORTS(_relativePortId) \ +#define CHECK_PORT_ID_10G_RX_PORTS(_relativePortId) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_RX_PORT port id")) #endif #if (FM_MAX_NUM_OF_1G_TX_PORTS > 0) -#define CHECK_PORT_ID_1G_TX_PORTS(_relativePortId) \ - if ((_relativePortId) >= FM_MAX_NUM_OF_1G_TX_PORTS) \ +#define CHECK_PORT_ID_1G_TX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_1G_TX_PORTS) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_TX_PORT port id")) #else -#define CHECK_PORT_ID_1G_TX_PORTS(_relativePortId) \ +#define CHECK_PORT_ID_1G_TX_PORTS(_relativePortId) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_TX_PORT port id")) #endif #if (FM_MAX_NUM_OF_10G_TX_PORTS > 0) -#define CHECK_PORT_ID_10G_TX_PORTS(_relativePortId) \ - if ((_relativePortId) >= FM_MAX_NUM_OF_10G_TX_PORTS) \ +#define CHECK_PORT_ID_10G_TX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_10G_TX_PORTS) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_TX_PORT port id")) #else -#define CHECK_PORT_ID_10G_TX_PORTS(_relativePortId) \ +#define CHECK_PORT_ID_10G_TX_PORTS(_relativePortId) \ REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_TX_PORT port id")) #endif #define SW_PORT_ID_TO_HW_PORT_ID(_port, _type, _relativePortId) \ switch (_type) { \ - case (e_FM_PORT_TYPE_OH_OFFLINE_PARSING): \ - case (e_FM_PORT_TYPE_OH_HOST_COMMAND): \ + case (e_FM_PORT_TYPE_OH_OFFLINE_PARSING): \ + case (e_FM_PORT_TYPE_OH_HOST_COMMAND): \ CHECK_PORT_ID_OH_PORTS(_relativePortId); \ _port = (uint8_t)(BASE_OH_PORTID + (_relativePortId)); \ break; \ - case (e_FM_PORT_TYPE_RX): \ + case (e_FM_PORT_TYPE_RX): \ CHECK_PORT_ID_1G_RX_PORTS(_relativePortId); \ _port = (uint8_t)(BASE_1G_RX_PORTID + (_relativePortId)); \ break; \ - case (e_FM_PORT_TYPE_RX_10G): \ + case (e_FM_PORT_TYPE_RX_10G): \ CHECK_PORT_ID_10G_RX_PORTS(_relativePortId); \ _port = (uint8_t)(BASE_10G_RX_PORTID + (_relativePortId)); \ break; \ - case (e_FM_PORT_TYPE_TX): \ + case (e_FM_PORT_TYPE_TX): \ CHECK_PORT_ID_1G_TX_PORTS(_relativePortId); \ _port = (uint8_t)(BASE_1G_TX_PORTID + (_relativePortId)); \ break; \ - case (e_FM_PORT_TYPE_TX_10G): \ + case (e_FM_PORT_TYPE_TX_10G): \ CHECK_PORT_ID_10G_TX_PORTS(_relativePortId); \ _port = (uint8_t)(BASE_10G_TX_PORTID + (_relativePortId)); \ break; \ @@ -733,14 +734,12 @@ t_Error FmPcdPlcrCcGetSetParams(t_Handle h_FmPcd, uint16_t profileIndx,uint3 /***********************************************************************/ uint8_t FmPcdCcGetParseCode(t_Handle h_CcNode); uint8_t FmPcdCcGetOffset(t_Handle h_CcNode); -uint32_t FmPcdCcGetNodeAddrOffset(t_Handle h_FmPcd, t_Handle h_Pointer); t_Error FmPcdCcRemoveKey(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint16_t keyIndex); t_Error FmPcdCcAddKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint16_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_FmPCdCcKeyParams); t_Error FmPcdCcModifyKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint16_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask); t_Error FmPcdCcModifyKeyAndNextEngine(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint16_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_FmPcdCcKeyParams); t_Error FmPcdCcModifyMissNextEngineParamNode(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); t_Error FmPcdCcModifyNextEngineParamTree(t_Handle h_FmPcd, t_Handle h_FmPcdCcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); -t_Error FmPcdCcModiyNextEngineParamNode(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, uint16_t keyIndex,t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); uint32_t FmPcdCcGetNodeAddrOffsetFromNodeInfo(t_Handle h_FmPcd, t_Handle h_Pointer); t_Handle FmPcdCcTreeGetSavedManipParams(t_Handle h_FmTree); void FmPcdCcTreeSetSavedManipParams(t_Handle h_FmTree, t_Handle h_SavedManipParams); |