tdm_td3_methods.h (6634B)
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 function prototypes for BCM56870 9 */ 10 11 #ifndef TDM_TD3_PREPROCESSOR_PROTOTYPES_H 12 #define TDM_TD3_PREPROCESSOR_PROTOTYPES_H 13 14 #ifdef _TDM_STANDALONE 15 #include <tdm_td3_soc.h> 16 #else 17 #include <soc/tdm/trident3/tdm_td3_soc.h> 18 #endif 19 20 21 /* Chip executive polymorphic functions 22 tdm_td3_main_init 23 tdm_td3_main_transcription 24 tdm_td3_main_ingress 25 tdm_td3_filter 26 tdm_td3_parse_tdm_tbl 27 tdm_td3_chk 28 tdm_td3_main_free 29 tdm_td3_main_corereq 30 tdm_td3_main_post 31 */ 32 33 /* Core executive polymorphic functions 34 tdm_td3_proc_cal 35 tdm_td3_shim_get_port_pm 36 */ 37 38 /* main */ 39 LINKER_DECL int tdm_td3_main_corereq(tdm_mod_t *_tdm); 40 LINKER_DECL int tdm_td3_main_ingress_pipe(tdm_mod_t *_tdm); 41 LINKER_DECL int tdm_td3_main_ingress(tdm_mod_t *_tdm); 42 LINKER_DECL int tdm_td3_main_transcription(tdm_mod_t *_tdm); 43 LINKER_DECL int tdm_td3_main_init(tdm_mod_t *_tdm); 44 LINKER_DECL int tdm_td3_main_chk(tdm_mod_t *_tdm); 45 LINKER_DECL int tdm_td3_main_post(tdm_mod_t *_tdm); 46 LINKER_DECL int tdm_td3_main_free(tdm_mod_t *_tdm); 47 48 /* proc */ 49 LINKER_DECL int tdm_td3_proc_cal_ancl(tdm_mod_t *_tdm); 50 LINKER_DECL int tdm_td3_proc_cal_idle(tdm_mod_t *_tdm); 51 LINKER_DECL int tdm_td3_proc_cal_lr(tdm_mod_t *_tdm); 52 LINKER_DECL int tdm_td3_proc_cal(tdm_mod_t *_tdm); 53 54 /* filter */ 55 LINKER_DECL int tdm_td3_filter_chk_slot_shift_cond(int slot, int dir, int cal_len, int *cal_main, tdm_mod_t *_tdm); 56 LINKER_DECL void tdm_td3_filter_calc_jitter(int speed, int cal_len, int *space_min, int *space_max); 57 LINKER_DECL int tdm_td3_filter_lr_jitter(tdm_mod_t *_tdm, int min_speed); 58 LINKER_DECL int tdm_td3_filter_lr(tdm_mod_t *_tdm); 59 LINKER_DECL int tdm_td3_filter(tdm_mod_t *_tdm); 60 61 /* ovsb */ 62 LINKER_DECL int tdm_td3_ovsb_apply_constraints_init(tdm_mod_t *_tdm); 63 LINKER_DECL int tdm_td3_ovsb_apply_constraints_flex(tdm_mod_t *_tdm); 64 LINKER_DECL int tdm_td3_ovsb_sel_grp_4_prt(tdm_mod_t *_tdm, int port_token); 65 LINKER_DECL int tdm_td3_ovsb_gen_os_grps_init(tdm_mod_t *_tdm); 66 LINKER_DECL int tdm_td3_ovsb_gen_os_grps_flex(tdm_mod_t *_tdm); 67 LINKER_DECL int tdm_td3_ovsb_gen_os_grps(tdm_mod_t *_tdm); 68 LINKER_DECL int tdm_td3_ovsb_gen_pkt_shaper_init(tdm_mod_t *_tdm); 69 LINKER_DECL int tdm_td3_ovsb_gen_pkt_shaper_flex(tdm_mod_t *_tdm); 70 LINKER_DECL int tdm_td3_ovsb_gen_pkt_shaper(tdm_mod_t *_tdm); 71 LINKER_DECL int tdm_td3_ovsb_gen_pm2pblk_map(tdm_mod_t *_tdm); 72 LINKER_DECL int tdm_td3_ovsb_consolidate_spipe(tdm_mod_t *_tdm, int spipe); 73 LINKER_DECL int tdm_td3_vbs_scheduler_ovs(tdm_mod_t *_tdm); 74 75 /* parse */ 76 LINKER_DECL void tdm_td3_print_pipe_config(tdm_mod_t *_tdm); 77 LINKER_DECL void tdm_td3_print_pipe_cal(tdm_mod_t *_tdm); 78 LINKER_DECL int tdm_td3_print_lr_cal(tdm_mod_t *_tdm, int cal_id); 79 LINKER_DECL int tdm_td3_parse_mgmt(tdm_mod_t *_tdm, int cal_id); 80 LINKER_DECL int tdm_td3_parse_acc_idb(tdm_mod_t *_tdm, int cal_id); 81 LINKER_DECL int tdm_td3_parse_acc_mmu(tdm_mod_t *_tdm, int cal_id); 82 LINKER_DECL int tdm_td3_parse_ancl(tdm_mod_t *_tdm, int cal_id); 83 LINKER_DECL int tdm_td3_parse_tdm_tbl(tdm_mod_t *_tdm); 84 85 /* check */ 86 LINKER_DECL int tdm_td3_chk_get_speed_slots_5G(enum port_speed_e port_speed); 87 LINKER_DECL int tdm_td3_chk_get_pipe_token_cnt(tdm_mod_t *_tdm, int cal_id, int port_token); 88 LINKER_DECL int tdm_td3_chk_struct_os_ratio(tdm_mod_t *_tdm, int cal_id, int os_ratio_limit); 89 LINKER_DECL int tdm_td3_chk_struct(tdm_mod_t *_tdm); 90 LINKER_DECL int tdm_td3_chk_transcription(tdm_mod_t *_tdm); 91 LINKER_DECL int tdm_td3_chk_sister(tdm_mod_t *_tdm); 92 LINKER_DECL int tdm_td3_chk_same(tdm_mod_t *_tdm); 93 LINKER_DECL int tdm_td3_chk_bandwidth_ancl(tdm_mod_t *_tdm); 94 LINKER_DECL int tdm_td3_chk_bandwidth_lr_pipe(tdm_mod_t *_tdm, int cal_id); 95 LINKER_DECL int tdm_td3_chk_bandwidth_os_pipe(tdm_mod_t *_tdm, int cal_id); 96 LINKER_DECL int tdm_td3_chk_bandwidth_lr(tdm_mod_t *_tdm); 97 LINKER_DECL int tdm_td3_chk_bandwidth_os(tdm_mod_t *_tdm); 98 LINKER_DECL int tdm_td3_chk_bandwidth(tdm_mod_t *_tdm); 99 LINKER_DECL int tdm_td3_chk_jitter_cmic(tdm_mod_t *_tdm, int cal_id); 100 LINKER_DECL int tdm_td3_chk_jitter_lr_pipe(tdm_mod_t *_tdm, int cal_id); 101 LINKER_DECL int tdm_td3_chk_jitter_lr(tdm_mod_t *_tdm); 102 LINKER_DECL int tdm_td3_chk_os_halfpipe(tdm_mod_t *_tdm, int cal_id); 103 LINKER_DECL int tdm_td3_chk_os_pkt_sched(tdm_mod_t *_tdm, int cal_id); 104 LINKER_DECL int tdm_td3_chk(tdm_mod_t *_tdm); 105 106 /* shim */ 107 LINKER_DECL int tdm_td3_shim_get_port_pm(tdm_mod_t *_tdm); 108 LINKER_DECL int tdm_td3_shim_get_pipe_ethernet(tdm_mod_t *_tdm); 109 110 /* common */ 111 LINKER_DECL int tdm_td3_cmn_chk_port_is_fp(tdm_mod_t *_tdm, int port_token); 112 LINKER_DECL int tdm_td3_cmn_chk_port_is_lr(tdm_mod_t *_tdm, int port_token); 113 LINKER_DECL int tdm_td3_cmn_chk_port_is_os(tdm_mod_t *_tdm, int port_token); 114 LINKER_DECL int tdm_td3_cmn_chk_port_is_hg(tdm_mod_t *_tdm, int port_token); 115 LINKER_DECL int tdm_td3_cmn_chk_port_is_mgmt(tdm_mod_t *_tdm, int port_token); 116 LINKER_DECL int tdm_td3_cmn_get_port_pm(tdm_mod_t *_tdm, int port_token); 117 LINKER_DECL int tdm_td3_cmn_get_port_speed(tdm_mod_t *_tdm, int port_token); 118 LINKER_DECL int tdm_td3_cmn_get_port_speed_eth(tdm_mod_t *_tdm, int port_token); 119 LINKER_DECL int tdm_td3_cmn_get_port_state(tdm_mod_t *_tdm, int port_token); 120 LINKER_DECL int tdm_td3_cmn_get_same_port_dist(int slot, int dir, int *cal_main, int cal_len); 121 LINKER_DECL int tdm_td3_cmn_get_speed_lanes(int port_speed); 122 LINKER_DECL int tdm_td3_cmn_get_speed_slots(int port_speed); 123 LINKER_DECL int tdm_td3_cmn_get_port_slots(tdm_mod_t *_tdm, int port_token); 124 LINKER_DECL void tdm_td3_cmn_get_speed_jitter(int port_speed, int cal_len, int *space_min, int *space_max); 125 LINKER_DECL void tdm_td3_cmn_get_pipe_port_range(int cal_id, int *phy_lo, int *phy_hi); 126 LINKER_DECL void tdm_td3_cmn_get_pipe_port_lo_hi(tdm_mod_t *_tdm, int *phy_lo, int *phy_hi); 127 LINKER_DECL void tdm_td3_cmn_get_pipe_pm_lo_hi(tdm_mod_t *_tdm, int *pm_lo, int *pm_hi); 128 LINKER_DECL int tdm_td3_cmn_get_pipe_ethernet(tdm_mod_t *_tdm, int cal_id); 129 LINKER_DECL int tdm_td3_cmn_get_pipe_higig(tdm_mod_t *_tdm, int cal_id); 130 LINKER_DECL int tdm_td3_cmn_get_pipe_cal_len_max(tdm_mod_t *_tdm, int cal_id); 131 LINKER_DECL int tdm_td3_cmn_get_pipe_cal_len(tdm_mod_t *_tdm, int cal_id); 132 LINKER_DECL tdm_calendar_t *tdm_td3_cmn_get_pipe_cal(tdm_mod_t *_tdm); 133 LINKER_DECL tdm_calendar_t *tdm_td3_cmn_get_pipe_cal_prev(tdm_mod_t *_tdm); 134 135 136 #endif /* TDM_TD3_PREPROCESSOR_PROTOTYPES_H */