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