tdm_th_top.h (5312B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * All Rights Reserved.$ 7 * 8 * TDM top header for BCM56960 9 */ 10 11 #ifndef TDM_TH_PREPROCESSOR_DIRECTIVES_H 12 #define TDM_TH_PREPROCESSOR_DIRECTIVES_H 13 14 #ifdef _TDM_STANDALONE 15 #include <tdm_th_defines.h> 16 #else 17 #include <soc/tdm/tomahawk/tdm_th_defines.h> 18 #endif 19 20 #define TH_TOKEN_CHECK(a) \ 21 if (a!=TH_NUM_EXT_PORTS && \ 22 a!=TH_OVSB_TOKEN && \ 23 a!=TH_NULL_TOKEN && \ 24 a!=TH_RSVD_TOKEN && \ 25 a!=TH_MGM1_TOKEN && \ 26 a!=TH_LPB1_TOKEN && \ 27 a!=TH_MGM2_TOKEN && \ 28 a!=TH_LPB2_TOKEN && \ 29 a!=TH_LPB3_TOKEN && \ 30 a!=TH_CMIC_TOKEN && \ 31 a!=TH_ANCL_TOKEN && \ 32 a!=TH_IDL1_TOKEN && \ 33 a!=TH_IDL2_TOKEN && \ 34 a!=TH_LPB0_TOKEN) \ 35 36 #define TH_CMIC(a,b) { \ 37 b[a]=TH_CMIC_TOKEN; \ 38 TDM_PRINT0("CMIC/CPU\n"); \ 39 break; \ 40 } 41 #define TH_LPB0(a,b) { \ 42 b[a]=TH_LPB0_TOKEN; \ 43 TDM_PRINT0("TILE 0 LOOPBACK\n"); \ 44 break; \ 45 } 46 #define TH_MGM1(a,b) { \ 47 b[a]=TH_MGM1_TOKEN; \ 48 TDM_PRINT0("IDB 1 MANAGEMENT\n"); \ 49 break; \ 50 } 51 #define TH_LPB1(a,b) { \ 52 b[a]=TH_LPB1_TOKEN; \ 53 TDM_PRINT0("TILE 1 LOOPBACK\n"); \ 54 break; \ 55 } 56 #define TH_MGM2(a,b) { \ 57 b[a]=TH_MGM2_TOKEN; \ 58 TDM_PRINT0("IDB 2 MANAGEMENT\n"); \ 59 break; \ 60 } 61 #define TH_LPB2(a,b) { \ 62 b[a]=TH_LPB2_TOKEN; \ 63 TDM_PRINT0("TILE 2 LOOPBACK\n"); \ 64 break; \ 65 } 66 #define TH_OPRT(a,b) { \ 67 b[a]=TH_IDL2_TOKEN; \ 68 TDM_PRINT0("PURGE\n"); \ 69 break; \ 70 } 71 #define TH_SBUS(a,b) { \ 72 b[a]=TH_IDL1_TOKEN; \ 73 TDM_PRINT0("SBUS\n"); \ 74 break; \ 75 } 76 #define TH_NULL(a,b) { \ 77 b[a]=TH_NULL_TOKEN; \ 78 TDM_PRINT0("NULL\n"); \ 79 break; \ 80 } 81 #define TH_LPB3(a,b) { \ 82 b[a]=TH_LPB3_TOKEN; \ 83 TDM_PRINT0("TILE 3 LOOPBACK\n"); \ 84 break; \ 85 } 86 #define TH_DOT0(a,b) { \ 87 for (i=0; i<256; i++) { \ 88 if (b[i]==TH_OVSB_TOKEN) { \ 89 b[a]=TH_OVSB_TOKEN; \ 90 break; \ 91 } \ 92 else { \ 93 b[a]=TH_CMIC_TOKEN; \ 94 } \ 95 } \ 96 if (b[a]==TH_OVSB_TOKEN) { \ 97 TDM_PRINT0("DOT OVERSUB\n"); \ 98 } \ 99 else { \ 100 TDM_PRINT0("DOT CMIC/CPU\n"); \ 101 } \ 102 break; \ 103 } 104 #define TH_DOT1(a,b) { \ 105 for (i=0; i<256; i++) { \ 106 if (b[i]==TH_OVSB_TOKEN) { \ 107 b[a]=TH_OVSB_TOKEN; \ 108 break; \ 109 } \ 110 else { \ 111 b[a]=TH_MGM1_TOKEN; \ 112 } \ 113 } \ 114 if (b[a]==TH_OVSB_TOKEN) { \ 115 TDM_PRINT0("DOT OVERSUB\n"); \ 116 } \ 117 else { \ 118 TDM_PRINT0("DOT IDB 1 MANAGEMENT\n"); \ 119 } \ 120 break; \ 121 } 122 #define TH_DOT2(a,b) { \ 123 for (i=0; i<256; i++) { \ 124 if (b[i]==TH_OVSB_TOKEN) { \ 125 b[a]=TH_OVSB_TOKEN; \ 126 break; \ 127 } \ 128 else { \ 129 b[a]=TH_MGM2_TOKEN; \ 130 } \ 131 } \ 132 if (b[a]==TH_OVSB_TOKEN) { \ 133 TDM_PRINT0("DOT OVERSUB\n"); \ 134 } \ 135 else { \ 136 TDM_PRINT0("DOT IDB 2 MANAGEMENT\n"); \ 137 } \ 138 break; \ 139 } 140 #define TH_DOT3(a,b) { \ 141 for (i=0; i<256; i++) { \ 142 if (b[i]==TH_OVSB_TOKEN) { \ 143 b[a]=TH_OVSB_TOKEN; \ 144 break; \ 145 } \ 146 else { \ 147 b[a]=TH_IDL2_TOKEN; \ 148 } \ 149 } \ 150 if (b[a]==TH_OVSB_TOKEN) { \ 151 TDM_PRINT0("DOT OVERSUB\n"); \ 152 } \ 153 else { \ 154 TDM_PRINT0("DOT PURGE\n"); \ 155 } \ 156 break; \ 157 } 158 159 typedef struct th_ll_node { 160 unsigned short port; 161 struct th_ll_node *next; 162 } th_ll_node; 163 164 #ifdef _TDM_STANDALONE 165 #include <tdm_th_methods.h> 166 #else 167 #include <soc/tdm/tomahawk/tdm_th_methods.h> 168 #endif 169 170 /* API shim layer */ 171 LINKER_DECL tdm_mod_t* tdm_chip_th_shim__which_tsc( int port, int tsc[TH_NUM_PHY_PM][TH_NUM_PM_LNS] ); 172 LINKER_DECL tdm_mod_t* tdm_chip_th_shim__check_ethernet_d( int port, enum port_speed_e speed[TH_NUM_EXT_PORTS], enum port_state_e state[TH_NUM_EXT_PORTS], int **tsc, int traffic[TH_NUM_PM_MOD] ); 173 174 #endif /* TDM_TH_PREPROCESSOR_DIRECTIVES_H */