1 /* 2 * Copyright 2023 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef NETC_ETH_IP_FEATURES_H 8 #define NETC_ETH_IP_FEATURES_H 9 10 /** 11 * @file Netc_Eth_Ip_Features.h 12 * 13 * @addtogroup NETC_ETH_DRIVER NETC_ETH Driver 14 * @{ 15 */ 16 17 #ifdef __cplusplus 18 extern "C" 19 { 20 #endif 21 22 /*================================================================================================== 23 * INCLUDE FILES 24 * 1) system and project includes 25 * 2) needed interfaces from external units 26 * 3) internal and external interfaces from this unit 27 ==================================================================================================*/ 28 29 /*================================================================================================== 30 * SOURCE FILE VERSION INFORMATION 31 ==================================================================================================*/ 32 #define NETC_ETH_IP_FEATURES_VENDOR_ID 43 33 #define NETC_ETH_IP_FEATURES_AR_RELEASE_MAJOR_VERSION 4 34 #define NETC_ETH_IP_FEATURES_AR_RELEASE_MINOR_VERSION 7 35 #define NETC_ETH_IP_FEATURES_AR_RELEASE_REVISION_VERSION 0 36 #define NETC_ETH_IP_FEATURES_SW_MAJOR_VERSION 1 37 #define NETC_ETH_IP_FEATURES_SW_MINOR_VERSION 0 38 #define NETC_ETH_IP_FEATURES_SW_PATCH_VERSION 0 39 40 /*================================================================================================== 41 * FILE VERSION CHECKS 42 ==================================================================================================*/ 43 44 /*================================================================================================== 45 * CONSTANTS 46 ==================================================================================================*/ 47 48 /*================================================================================================== 49 * DEFINES AND MACROS 50 ==================================================================================================*/ 51 /** @brief Total number of virtual ethernet controllers supported on NETC(VSIs). */ 52 #define FEATURE_NETC_ETH_NUM_OF_VIRTUAL_CTRLS 7 53 54 /** @brief Total number of physical ethernet controllers supported on NETC(PSIs). */ 55 #define NETC_ETH_IP_NUM_OF_PHYSICAL_CTRLS (1U) 56 57 /** @brief Total number of ethernet controllers supported on NETC(VSI + PSI). */ 58 #define FEATURE_NETC_ETH_NUMBER_OF_CTRLS (8) 59 60 #define FEATURE_NETC_NUMBER_OF_FUNC (4U) 61 /** @brief Index of the physical SI. */ 62 #define NETC_ETH_IP_PSI_INDEX (0U) 63 64 /** @brief Alignment for buffer descriptor. */ 65 #define FEATURE_NETC_BUFFDESCR_ALIGNMENT_BYTES (128U) 66 67 /** @brief Alignment for buffer. */ 68 #define FEATURE_NETC_BUFF_ALIGNMENT_BYTES (64U) 69 70 /** @brief Alignment value for virtual station interface message send. */ 71 #define FEATURE_NETC_ETH_VSI_MSG_ALIGNMENT (64U) 72 73 /* TODO: Generate this from configuration. From all VSs take the bigger value. */ 74 /** @brief Number of RX BDR used.*/ 75 #define FEATURE_NETC_RX_BDR_COUNT (18U) 76 /** @brief Number of TX BDR used.*/ 77 #define FEATURE_NETC_TX_BDR_COUNT (18U) 78 79 /** @brief Index in the MSI table of VSI to PSI interrupt. */ 80 #define NETC_ETH_IP_SITOSI_MESSAGE_MSI_TABLE_INDEX (0U) 81 /** @brief Index in the MSI table of TX interrupt. */ 82 #define NETC_ETH_IP_TX_MSI_TABLE_INDEX (1U) 83 /** @brief Index in the MSI table of RX interrupt. */ 84 #define NETC_ETH_IP_RX_MSI_TABLE_INDEX (2U) 85 /** @brief MSI message control enable mask. */ 86 #define NETC_ETH_IP_MSI_MSG_CTL_ENABLE_MASK (0x8000U) 87 /** @brief Number of entries for a MSI table of a SI. */ 88 #define NETC_ETH_IP_NUM_OF_ENTRIES_MSITABLE (3U) 89 90 /** @brief Extract a specific bit form a byte. */ 91 #define NETC_ETH_IP_BIT0_VALUE_FROM_BYTE(Byte) ((Byte) & 1U) 92 #define NETC_ETH_IP_BIT1_VALUE_FROM_BYTE(Byte) (((Byte) >> 1U) & 0x01U) 93 #define NETC_ETH_IP_BIT2_VALUE_FROM_BYTE(Byte) (((Byte) >> 2U) & 0x01U) 94 #define NETC_ETH_IP_BIT3_VALUE_FROM_BYTE(Byte) (((Byte) >> 3U) & 0x01U) 95 #define NETC_ETH_IP_BIT4_VALUE_FROM_BYTE(Byte) (((Byte) >> 4U) & 0x01U) 96 #define NETC_ETH_IP_BIT5_VALUE_FROM_BYTE(Byte) (((Byte) >> 5U) & 0x01U) 97 #define NETC_ETH_IP_BIT6_VALUE_FROM_BYTE(Byte) (((Byte) >> 6U) & 0x01U) 98 #define NETC_ETH_IP_BIT7_VALUE_FROM_BYTE(Byte) (((Byte) >> 7U) & 0x01U) 99 100 /** @brief Number of bytes in a MAC address. */ 101 #define NETC_ETH_IP_MAC_BYTES_SIZE (uint8)(6U) 102 103 /** @brief Select hash value register. */ 104 #define NETC_ETH_IP_SELECT_HASH_REGISTER (uint8)(0x20U) 105 106 /** @brief Select hash value register. */ 107 #define NETC_ETH_IP_HASH_VALUE (uint8)(0x1FU) 108 109 #define NETC_ETH_IP_TIME_GATE_SCHEDULING_TABLE_ID (5U) /*!< Time Gate Scheduling table id */ 110 #define NETC_ETH_IP_RATE_POLICER_TABLE_ID (10U) /*!< Rate Policer table id */ 111 #define NETC_ETH_IP_INGRESS_PORT_FILTER_TABLE_ID (13U) /*!< Ingress Port Filter table id */ 112 113 /*! @brief Generate the type of cache IP on the platform used for the cacheable buffers feature */ 114 #define FEATURE_NETC_CACHABLE_BUFFERS_LMEM (0U) 115 #define FEATURE_NETC_CACHABLE_BUFFERS_CORE (1U) 116 117 /*================================================================================================== 118 * ENUMS 119 ==================================================================================================*/ 120 121 /*================================================================================================== 122 * STRUCTURES AND OTHER TYPEDEFS 123 ==================================================================================================*/ 124 125 /*================================================================================================== 126 * GLOBAL VARIABLE DECLARATIONS 127 ==================================================================================================*/ 128 129 /*================================================================================================== 130 * FUNCTION PROTOTYPES 131 ==================================================================================================*/ 132 133 #ifdef __cplusplus 134 } 135 #endif 136 137 /** @} */ 138 139 #endif 140