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_hx5_top.h (4274B)


      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_HX5_PREPROCESSOR_DIRECTIVES_H
     12 #define TDM_HX5_PREPROCESSOR_DIRECTIVES_H
     13 
     14 #ifdef _TDM_STANDALONE
     15 	#include <tdm_hx5_defines.h>
     16 #else
     17 	#include <soc/tdm/helix5/tdm_hx5_defines.h>
     18 #endif
     19 
     20 #define HX5_TOKEN_CHECK(a)  		\
     21         if (a!=HX5_NUM_EXT_PORTS && \
     22             a!=HX5_OVSB_TOKEN && 	\
     23             a!=HX5_CMIC_TOKEN && 	\
     24             a!=HX5_FAE_TOKEN &&	\
     25             a!=HX5_LPB0_TOKEN && 	\
     26             a!=HX5_ANCL_TOKEN &&	\
     27             a!=HX5_NULL_TOKEN &&	\
     28             a!=HX5_IDL1_TOKEN &&	\
     29             a!=HX5_IDL2_TOKEN) 		\
     30 
     31 #define HX5_CMIC(a,b) {							\
     32 			b[a]=HX5_CMIC_TOKEN; 				\
     33 			TDM_PRINT0("CMIC/CPU\n");			\
     34 			break;                              \
     35 		}
     36 #define HX5_LPB0(a,b) {							\
     37 			b[a]=HX5_LPB0_TOKEN; 				\
     38 			TDM_PRINT0("TILE 0 LOOPBACK\n");	\
     39 			break;                              \
     40 		}
     41 #define HX5_OPT1(a,b) {							\
     42 			b[a]=HX5_IDL1_TOKEN; 				\
     43 			TDM_PRINT0("OPPORTUNISTIC 1\n");	\
     44 			break;								\
     45 		}
     46 #define HX5_OPT2(a,b) {							\
     47 			b[a]=HX5_IDL1_TOKEN; 				\
     48 			TDM_PRINT0("OPPORTUNISTIC 2\n");	\
     49 			break;								\
     50 		}
     51 #define HX5_SBUS(a,b) {							\
     52 			b[a]=HX5_IDL1_TOKEN; 				\
     53 			TDM_PRINT0("SBUS\n");				\
     54 			break;								\
     55 		}
     56 #define HX5_NULL(a,b) {							\
     57 			b[a]=HX5_NULL_TOKEN; 				\
     58 			TDM_PRINT0("NULL\n");				\
     59 			break;								\
     60 		}
     61 #define HX5_IDLE(a,b) {							\
     62 			b[a]=HX5_IDL2_TOKEN; 				\
     63 			TDM_PRINT0("IDLE\n");				\
     64 			break;								\
     65 		}
     66 #define HX5_DOT0(a,b) {								\
     67 			for (i=0; i<256; i++) {					\
     68 				if (b[i]==HX5_OVSB_TOKEN) {			\
     69 					b[a]=HX5_OVSB_TOKEN;				\
     70 					break;							\
     71 				}									\
     72 				else {								\
     73 					b[a]=HX5_CMIC_TOKEN;				\
     74 				}									\
     75 			}										\
     76 			if (b[a]==HX5_OVSB_TOKEN) {             	\
     77 				TDM_PRINT0("DOT OVERSUB\n");		\
     78 			}                                               \
     79 			else {                                          \
     80 				TDM_PRINT0("DOT CMIC/CPU\n");				\
     81 			}                                               \
     82 			break;                                          \
     83 		}
     84 #define HX5_DOT1(a,b) {									\
     85 			for (i=0; i<256; i++) {						\
     86 				if (b[i]==HX5_OVSB_TOKEN) {				\
     87 					b[a]=HX5_OVSB_TOKEN;					\
     88 					break;								\
     89 				}										\
     90 			}											\
     91 			if (b[a]==HX5_OVSB_TOKEN) {					\
     92 				TDM_PRINT0("DOT OVERSUB\n");			\
     93 			}                                               \
     94 			else {                                                  \
     95 				TDM_PRINT0("DOT IDB 1 MANAGEMENT\n");				\
     96 			}                                                       \
     97 			break;                                                  \
     98 		}
     99 #define HX5_DOT2(a,b) {									\
    100 			for (i=0; i<256; i++) {						\
    101 				if (b[i]==HX5_OVSB_TOKEN) {				\
    102 					b[a]=HX5_OVSB_TOKEN;					\
    103 					break;								\
    104 				}										\
    105 			}											\
    106 			if (b[a]==HX5_OVSB_TOKEN) {                    			\
    107 				TDM_PRINT0("DOT OVERSUB\n");						\
    108 			}                                                       \
    109 			else {                                                  \
    110 				TDM_PRINT0("DOT IDB 2 MANAGEMENT\n");				\
    111 			}                                                       \
    112 			break;                                                  \
    113 		}
    114 #define HX5_DOT3(a,b) {								\
    115 			for (i=0; i<256; i++) {					\
    116 				if (b[i]==HX5_OVSB_TOKEN) {			\
    117 					b[a]=HX5_OVSB_TOKEN;				\
    118 					break;							\
    119 				}									\
    120 				else {								\
    121 					b[a]=HX5_IDL2_TOKEN;				\
    122 				}									\
    123 			}										\
    124 			if (b[a]==HX5_OVSB_TOKEN) {    			\
    125 				TDM_PRINT0("DOT OVERSUB\n");		\
    126 			}                                               \
    127 			else {                                          \
    128 				TDM_PRINT0("DOT PURGE\n");					\
    129 			}                                               \
    130 			break;                                          \
    131 		}
    132 
    133 typedef struct hx5_ll_node {
    134 	unsigned short port;
    135 	struct hx5_ll_node *next;
    136 } hx5_ll_node;
    137 
    138 #ifdef _TDM_STANDALONE
    139 	#include <tdm_hx5_methods.h>
    140 #else
    141 	#include <soc/tdm/helix5/tdm_hx5_methods.h>
    142 #endif
    143 
    144 /* API shim layer */
    145 
    146 #endif /* TDM_HX5_PREPROCESSOR_DIRECTIVES_H */