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_ap_top.h (4824B)


      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 BCM56860
      9  */
     10 
     11 #ifndef TDM_AP_PREPROCESSOR_DIRECTIVES_H
     12 #define TDM_AP_PREPROCESSOR_DIRECTIVES_H
     13 
     14 #ifdef _TDM_STANDALONE
     15 	#include <tdm_ap_defines.h>
     16 #else
     17 	#include <soc/tdm/apache/tdm_ap_defines.h>
     18 #endif
     19 
     20 
     21 /* Excludes all tokenized port numbers */
     22 #define AP_TOKEN_CHECK(a)  				\
     23 			if (a!=AP_NUM_EXT_PORTS && 	\
     24 			a!=AP_OVSB_TOKEN && 			\
     25 			a!=AP_IDL1_TOKEN && 			\
     26 			a!=AP_AUX_TOKEN && 			\
     27 			a!=AP_IDL2_TOKEN && 			\
     28 			a!=AP_ANCL_TOKEN &&			\
     29 			a!=AP_MGMT_TOKEN && 			\
     30 			a!=AP_US1G_TOKEN && 			\
     31 			a!=AP_LOOPBACK_PORT &&		\
     32 			a!=AP_CPU_PORT) 				\
     33 
     34 /* Excludes all tokenized port numbers except OVS */
     35 #define AP_OVS_TOKEN_CHECK(a)  				\
     36 			if (a!=AP_NUM_EXT_PORTS && 	\
     37 			a!=AP_IDL1_TOKEN && 			\
     38 			a!=AP_AUX_TOKEN && 			\
     39 			a!=AP_IDL2_TOKEN && 			\
     40 			a!=AP_ANCL_TOKEN &&			\
     41 			a!=AP_MGMT_TOKEN && 			\
     42 			a!=AP_US1G_TOKEN && 			\
     43 			a!=AP_LOOPBACK_PORT &&		\
     44 			a!=AP_CPU_PORT) 				\
     45 
     46 #define AP_CMIC(a) {						\
     47 			mmu_tdm_tbl[a]=AP_CPU_PORT; 	\
     48 			TDM_PRINT0("CMIC\n"); 			\
     49 			break;							\
     50 		}
     51 #define AP_LPBK(a) {							\
     52 			mmu_tdm_tbl[a]=AP_LOOPBACK_PORT; 	\
     53 			TDM_PRINT0("LOOPBACK\n"); 			\
     54 			break;								\
     55 		}
     56 #define AP_ANCL(a) {							\
     57 			mmu_tdm_tbl[a]=AP_AUX_TOKEN; 	\
     58 			TDM_PRINT0("AUXILLARY\n");		\
     59 			break;								\
     60 		}
     61 #define AP_SBUS(a) {							\
     62 			mmu_tdm_tbl[a]=AP_SBUS_TOKEN; 	\
     63 			TDM_PRINT0("SBUS\n");		\
     64 			break;								\
     65 		}
     66 #define AP_REFR(a) {							\
     67 			mmu_tdm_tbl[a]=AP_IDL2_TOKEN; 	\
     68 			TDM_PRINT0("REFRESH\n");			\
     69 			break;								\
     70 		}
     71 		
     72 #define IARB_MAIN_TDM__TDM_SLOT_PGW_0         0
     73 #define IARB_MAIN_TDM__TDM_SLOT_PGW_1         1
     74 #define IARB_MAIN_TDM__TDM_SLOT_CMIC_PORT     2
     75 #define IARB_MAIN_TDM__TDM_SLOT_EP_LOOPBACK   3
     76 #define IARB_MAIN_TDM__TDM_SLOT_RDB_PORT      4 
     77 #define IARB_MAIN_TDM__TDM_SLOT_RESERVED      6
     78 #define IARB_MAIN_TDM__TDM_SLOT_AUX_OPS_SLOT  7
     79 
     80 typedef struct ap_ll_node {
     81 	unsigned short port;
     82 	struct ap_ll_node *next;
     83 } ap_ll_node;
     84 
     85 typedef struct {
     86 	int pgw_tdm_tbl_x0[AP_LR_LLS_LEN];
     87 	int ovs_tdm_tbl_x0[AP_OS_LLS_GRP_LEN]; 
     88 	int ovs_spacing_x0[AP_OS_LLS_GRP_LEN];
     89 	int pgw_tdm_tbl_x1[AP_LR_LLS_LEN];
     90 	int ovs_tdm_tbl_x1[AP_OS_LLS_GRP_LEN];
     91 	int ovs_spacing_x1[AP_OS_LLS_GRP_LEN];
     92 	int iarb_tdm_tbl_x[AP_LR_IARB_STATIC_LEN];
     93 	int op_flags_x[NUM_OP_FLAGS];
     94 } ap_tdm_pgw_t;
     95 
     96 typedef struct {
     97 	int tdm_pipe_main[AP_LR_VBS_LEN];
     98 	int tdm_ovs_grp_0[AP_OS_VBS_GRP_LEN];
     99 	int tdm_ovs_grp_1[AP_OS_VBS_GRP_LEN];
    100 	int tdm_ovs_grp_2[AP_OS_VBS_GRP_LEN];
    101 	int tdm_ovs_grp_3[AP_OS_VBS_GRP_LEN];
    102 	int tdm_ovs_grp_4[AP_OS_VBS_GRP_LEN];
    103 	int tdm_ovs_grp_5[AP_OS_VBS_GRP_LEN];
    104 	int tdm_ovs_grp_6[AP_OS_VBS_GRP_LEN];
    105 	int tdm_ovs_grp_7[AP_OS_VBS_GRP_LEN];
    106 } ap_tdm_pipe_t;
    107 
    108 typedef struct {
    109 	enum port_speed_e speed[AP_NUM_EXT_PORTS];
    110 	int clk_freq;
    111 	enum port_state_e port_rates_array[AP_NUM_EXT_PORTS];
    112 	int pm_encap_type[AP_NUM_PM_MOD];
    113   int cl_flag;
    114   int num_1g;
    115 } ap_tdm_globals_t;
    116 
    117 typedef struct {
    118 	int pmap[AP_NUM_PHY_PM][AP_NUM_PM_LNS];
    119 	ap_tdm_pipe_t tdm_pipe_table_x;
    120 	ap_tdm_globals_t tdm_globals;
    121 	ap_tdm_pgw_t tdm_pgw;
    122 } tdm_ap_chip_legacy_t;
    123 /*
    124 typedef enum {
    125 	AP_PGW_OS_MV_720G =0x00,
    126 	AP_PGW_OS_MV_880G =0x01,
    127 	AP_PGW_OS_FB_565  =0x10,
    128 	AP_PGW_OS_FB_567  =0x20,
    129 	AP_PGW_OS_FB_568_1=0x30,
    130 	AP_PGW_OS_FB_568_2=0x31,
    131 	AP_PGW_OS_FB_568_3=0x32
    132 } ap_pgw_os_tdm_sel_e; */
    133 typedef enum {
    134 	AP_PGW_OS_MV_720G =0x0,
    135 	AP_PGW_OS_MV_880G =0x1,
    136 	AP_PGW_OS_FB_565  =0x2,
    137 	AP_PGW_OS_FB_567  =0x3,
    138 	AP_PGW_OS_FB_568_1=0x4,
    139 	AP_PGW_OS_FB_568_2=0x5,
    140 	AP_PGW_OS_FB_568_3=0x6
    141 } ap_pgw_os_tdm_sel_e;
    142 
    143 #ifdef _TDM_STANDALONE
    144 	#include <tdm_ap_methods.h>
    145 #else
    146 	#include <soc/tdm/apache/tdm_ap_methods.h>
    147 #endif
    148 
    149 /* API shim layer */
    150 LINKER_DECL int tdm_chip_ap_shim_core( tdm_mod_t *_tdm, tdm_ap_chip_legacy_t *_tdm_ap );
    151 LINKER_DECL int tdm_chip_ap_shim__ing_wrap( tdm_mod_t *_tdm, tdm_ap_chip_legacy_t *_tdm_ap );
    152 LINKER_DECL int tdm_chip_ap_shim__egr_wrap( tdm_mod_t *_tdm, tdm_ap_chip_legacy_t *_tdm_ap );
    153 LINKER_DECL tdm_mod_t* tdm_chip_ap_shim__which_tsc_alloc( int port, int tsc[AP_NUM_PHY_PM][AP_NUM_PM_LNS] );
    154 LINKER_DECL int tdm_chip_ap_shim__which_tsc_free( tdm_mod_t *_tdm ); 
    155 LINKER_DECL tdm_mod_t* tdm_chip_ap_shim__check_ethernet( int port, enum port_speed_e speed[AP_NUM_EXT_PORTS], int tsc[AP_NUM_PHY_PM][AP_NUM_PM_LNS], int traffic[AP_NUM_PM_MOD] );
    156 LINKER_DECL tdm_mod_t* tdm_chip_ap_shim__check_ethernet_d( int port, enum port_speed_e speed[AP_NUM_EXT_PORTS], enum port_state_e state[AP_NUM_EXT_PORTS], int **tsc, int traffic[AP_NUM_PM_MOD] );
    157 LINKER_DECL int tdm_chip_ap_shim__core_vbs_scheduler_ovs( tdm_mod_t *_tdm );
    158 
    159 
    160 #endif /* TDM_AP_PREPROCESSOR_DIRECTIVES_H */