tdm_td3_top.h (4921B)
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 BCM56870 9 */ 10 11 #ifndef TDM_TD3_PREPROCESSOR_DIRECTIVES_H 12 #define TDM_TD3_PREPROCESSOR_DIRECTIVES_H 13 14 #ifdef _TDM_STANDALONE 15 #include <tdm_td3_defines.h> 16 #else 17 #include <soc/tdm/trident3/tdm_td3_defines.h> 18 #endif 19 20 #define TD3_TOKEN_CHECK(a) \ 21 if (a!=TD3_NUM_EXT_PORTS && \ 22 a!=TD3_OVSB_TOKEN && \ 23 a!=TD3_CMIC_TOKEN && \ 24 a!=TD3_MGM1_TOKEN && \ 25 a!=TD3_MGM2_TOKEN && \ 26 a!=TD3_LPB0_TOKEN && \ 27 a!=TD3_LPB1_TOKEN && \ 28 a!=TD3_ANCL_TOKEN && \ 29 a!=TD3_NULL_TOKEN && \ 30 a!=TD3_IDL1_TOKEN && \ 31 a!=TD3_IDL2_TOKEN) \ 32 33 #define TD3_CMIC(a,b) { \ 34 b[a]=TD3_CMIC_TOKEN; \ 35 TDM_PRINT0("CMIC/CPU\n"); \ 36 break; \ 37 } 38 #define TD3_MGM1(a,b) { \ 39 b[a]=TD3_MGM1_TOKEN; \ 40 TDM_PRINT0("MANAGEMENT-1\n"); \ 41 break; \ 42 } 43 #define TD3_MGM2(a,b) { \ 44 b[a]=TD3_MGM2_TOKEN; \ 45 TDM_PRINT0("MANAGEMENT-2\n"); \ 46 break; \ 47 } 48 #define TD3_LPB0(a,b) { \ 49 b[a]=TD3_LPB0_TOKEN; \ 50 TDM_PRINT0("TILE 0 LOOPBACK\n"); \ 51 break; \ 52 } 53 #define TD3_LPB1(a,b) { \ 54 b[a]=TD3_LPB1_TOKEN; \ 55 TDM_PRINT0("TILE 1 LOOPBACK\n"); \ 56 break; \ 57 } 58 #define TD3_OPT1(a,b) { \ 59 b[a]=TD3_IDL1_TOKEN; \ 60 TDM_PRINT0("OPPORTUNISTIC 1\n"); \ 61 break; \ 62 } 63 #define TD3_OPT2(a,b) { \ 64 b[a]=TD3_IDL1_TOKEN; \ 65 TDM_PRINT0("OPPORTUNISTIC 2\n"); \ 66 break; \ 67 } 68 #define TD3_SBUS(a,b) { \ 69 b[a]=TD3_IDL1_TOKEN; \ 70 TDM_PRINT0("SBUS\n"); \ 71 break; \ 72 } 73 #define TD3_NULL(a,b) { \ 74 b[a]=TD3_NULL_TOKEN; \ 75 TDM_PRINT0("NULL\n"); \ 76 break; \ 77 } 78 #define TD3_IDLE(a,b) { \ 79 b[a]=TD3_IDL2_TOKEN; \ 80 TDM_PRINT0("IDLE\n"); \ 81 break; \ 82 } 83 #define TD3_DOT0(a,b) { \ 84 for (i=0; i<256; i++) { \ 85 if (b[i]==TD3_OVSB_TOKEN) { \ 86 b[a]=TD3_OVSB_TOKEN; \ 87 break; \ 88 } \ 89 else { \ 90 b[a]=TD3_CMIC_TOKEN; \ 91 } \ 92 } \ 93 if (b[a]==TD3_OVSB_TOKEN) { \ 94 TDM_PRINT0("DOT OVERSUB\n"); \ 95 } \ 96 else { \ 97 TDM_PRINT0("DOT CMIC/CPU\n"); \ 98 } \ 99 break; \ 100 } 101 #define TD3_DOT1(a,b) { \ 102 for (i=0; i<256; i++) { \ 103 if (b[i]==TD3_OVSB_TOKEN) { \ 104 b[a]=TD3_OVSB_TOKEN; \ 105 break; \ 106 } \ 107 else { \ 108 b[a]=TD3_MGM1_TOKEN; \ 109 } \ 110 } \ 111 if (b[a]==TD3_OVSB_TOKEN) { \ 112 TDM_PRINT0("DOT OVERSUB\n"); \ 113 } \ 114 else { \ 115 TDM_PRINT0("DOT IDB 1 MANAGEMENT\n"); \ 116 } \ 117 break; \ 118 } 119 #define TD3_DOT2(a,b) { \ 120 for (i=0; i<256; i++) { \ 121 if (b[i]==TD3_OVSB_TOKEN) { \ 122 b[a]=TD3_OVSB_TOKEN; \ 123 break; \ 124 } \ 125 else { \ 126 b[a]=TD3_MGM2_TOKEN; \ 127 } \ 128 } \ 129 if (b[a]==TD3_OVSB_TOKEN) { \ 130 TDM_PRINT0("DOT OVERSUB\n"); \ 131 } \ 132 else { \ 133 TDM_PRINT0("DOT IDB 2 MANAGEMENT\n"); \ 134 } \ 135 break; \ 136 } 137 #define TD3_DOT3(a,b) { \ 138 for (i=0; i<256; i++) { \ 139 if (b[i]==TD3_OVSB_TOKEN) { \ 140 b[a]=TD3_OVSB_TOKEN; \ 141 break; \ 142 } \ 143 else { \ 144 b[a]=TD3_IDL2_TOKEN; \ 145 } \ 146 } \ 147 if (b[a]==TD3_OVSB_TOKEN) { \ 148 TDM_PRINT0("DOT OVERSUB\n"); \ 149 } \ 150 else { \ 151 TDM_PRINT0("DOT PURGE\n"); \ 152 } \ 153 break; \ 154 } 155 156 typedef struct td3_ll_node { 157 unsigned short port; 158 struct td3_ll_node *next; 159 } td3_ll_node; 160 161 #ifdef _TDM_STANDALONE 162 #include <tdm_td3_methods.h> 163 #else 164 #include <soc/tdm/trident3/tdm_td3_methods.h> 165 #endif 166 167 /* API shim layer */ 168 169 #endif /* TDM_TD3_PREPROCESSOR_DIRECTIVES_H */