openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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 */