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