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_gh2_methods.h (10306B)


      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 BCM53570
      9  */
     10 
     11 #ifndef TDM_GH2_PREPROCESSOR_PROTOTYPES_H
     12 #define TDM_GH2_PREPROCESSOR_PROTOTYPES_H
     13 
     14 #ifdef _TDM_STANDALONE
     15 	#include <tdm_gh2_soc.h>
     16 #else
     17 	#include <soc/tdm/greyhound2/tdm_gh2_soc.h>
     18 #endif
     19 
     20 /*
     21  * CHIP function prototypes 
     22  */
     23 
     24 /* Functions managed by TDM chip executive */
     25 LINKER_DECL int tdm_gh2_init( tdm_mod_t *_tdm );
     26 LINKER_DECL int tdm_gh2_pmap_transcription( tdm_mod_t *_tdm );
     27 LINKER_DECL int tdm_gh2_scheduler_wrap_pipe( tdm_mod_t *_tdm );
     28 LINKER_DECL int tdm_gh2_scheduler_wrap( tdm_mod_t *_tdm );
     29 LINKER_DECL int tdm_gh2_proc_cal( tdm_mod_t *_tdm );
     30 LINKER_DECL int tdm_gh2_parse_tdm_tbl( tdm_mod_t *_tdm );
     31 LINKER_DECL int tdm_gh2_corereq( tdm_mod_t *_tdm );
     32 LINKER_DECL int tdm_gh2_filter( tdm_mod_t *_tdm );
     33 LINKER_DECL int tdm_gh2_post( tdm_mod_t *_tdm );
     34 LINKER_DECL int tdm_gh2_chk( tdm_mod_t *_tdm);
     35 LINKER_DECL int tdm_gh2_check_ethernet( tdm_mod_t *_tdm );
     36 LINKER_DECL int tdm_gh2_pick_vec( tdm_mod_t *_tdm );
     37 LINKER_DECL int tdm_gh2_free( tdm_mod_t *_tdm );
     38 
     39 LINKER_DECL int tdm_gh2_proc_cal_tdm5( tdm_mod_t *_tdm );
     40 LINKER_DECL int tdm_gh2_filter_tdm5( tdm_mod_t *_tdm );
     41 LINKER_DECL int tdm_gh2_chk_tdm5( tdm_mod_t *_tdm);
     42 
     43 /* Core executive polymorphic functions */
     44 LINKER_DECL int tdm_gh2_which_tsc( tdm_mod_t *_tdm );
     45 LINKER_DECL void tdm_gh2_parse_pipe( tdm_mod_t *_tdm );
     46 
     47 /* TDM.4 - Tomahawk chip API */
     48 LINKER_DECL int tdm_gh2_legacy_which_tsc(unsigned short port, int **tsc);
     49 LINKER_DECL int tdm_gh2_proc_cal_ancl( tdm_mod_t *_tdm );
     50 LINKER_DECL int tdm_gh2_proc_cal_acc( tdm_mod_t *_tdm );
     51 LINKER_DECL int tdm_gh2_proc_cal_idle( tdm_mod_t *_tdm );
     52 LINKER_DECL int tdm_gh2_proc_cal_lr( tdm_mod_t *_tdm );
     53 
     54 /* TDM.4 - Tomahawk chip based filter methods */
     55 LINKER_DECL int tdm_gh2_filter_check_pipe_sister_min( tdm_mod_t *_tdm );
     56 LINKER_DECL int tdm_gh2_filter_check_port_sister_min( tdm_mod_t *_tdm, int port );
     57 LINKER_DECL int tdm_gh2_filter_check_migrate_lr_slot(int idx_src, int idx_dst, int *tdm_tbl, int tdm_tbl_len, int **tsc);
     58 LINKER_DECL int tdm_gh2_filter_sister_min( tdm_mod_t *_tdm );
     59 LINKER_DECL int tdm_gh2_filter_migrate_lr_slot(int idx_src, int idx_dst, int *tdm_tbl, int tdm_tbl_len, int **tsc);
     60 LINKER_DECL int tdm_gh2_filter_migrate_lr_slot_up(tdm_mod_t *_tdm);
     61 LINKER_DECL int tdm_gh2_filter_migrate_lr_slot_dn(tdm_mod_t *_tdm);
     62 LINKER_DECL int tdm_gh2_filter_dither(int *tdm_tbl, int lr_idx_limit, int accessories, int **tsc, int threshold, enum port_speed_e *speed);
     63 LINKER_DECL int tdm_gh2_filter_fine_dither(int port, int *tdm_tbl, int lr_idx_limit, int accessories, int **tsc);
     64 LINKER_DECL int tdm_gh2_filter_shift_lr_port(unsigned short port, int *tdm_tbl, int tdm_tbl_len, int dir);
     65 LINKER_DECL int tdm_gh2_filter_migrate_os_slot(int idx_src, int idx_dst, int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed);
     66 LINKER_DECL int tdm_gh2_filter_smooth_idle_slice(int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed);
     67 LINKER_DECL int tdm_gh2_filter_smooth_os_slice(int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed, int dir);
     68 LINKER_DECL int tdm_gh2_filter_smooth_os_slice_fine(int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed);
     69 LINKER_DECL int tdm_gh2_filter_smooth_os_os_up(int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed);
     70 LINKER_DECL int tdm_gh2_filter_smooth_os_os_dn(int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed);
     71 LINKER_DECL int tdm_gh2_filter_smooth_ancl(int ancl_token, int *tdm_tbl, int tdm_tbl_len, int ancl_space_min);
     72 LINKER_DECL int tdm_gh2_filter_ovsb_p2(tdm_mod_t *_tdm);
     73 LINKER_DECL int tdm_gh2_filter_ovsb_p1(tdm_mod_t *_tdm);
     74 LINKER_DECL int tdm_gh2_filter_ovsb_5x(tdm_mod_t *_tdm);
     75 LINKER_DECL int tdm_gh2_filter_ovsb_4x(tdm_mod_t *_tdm);
     76 LINKER_DECL int tdm_gh2_filter_ovsb_3x(tdm_mod_t *_tdm);
     77 LINKER_DECL int tdm_gh2_filter_ovsb_2x(tdm_mod_t *_tdm);
     78 LINKER_DECL int tdm_gh2_filter_ovsb_1x(tdm_mod_t *_tdm);
     79 LINKER_DECL int tdm_gh2_filter_ovsb(tdm_mod_t *_tdm);
     80 
     81 LINKER_DECL int tdm_gh2_filter_chk_slot_shift_cond(int slot, int dir, int cal_len, int *cal_main, tdm_mod_t *_tdm);
     82 LINKER_DECL int tdm_gh2_filter_calc_jitter(int speed, int cal_len, int *space_min, int *space_max);
     83 LINKER_DECL int tdm_gh2_filter_get_same_port_dist(int slot, int dir, int *cal_main, int cal_len);
     84 LINKER_DECL int tdm_gh2_filter_get_port_pm(int port_token, tdm_mod_t *_tdm);
     85 LINKER_DECL int tdm_gh2_filter_lr_jitter(tdm_mod_t *_tdm, int min_speed);
     86 LINKER_DECL int tdm_gh2_filter_lr(tdm_mod_t *_tdm);
     87 LINKER_DECL int tdm_gh2_filter_ovsb_4x_mix(tdm_mod_t *_tdm);
     88 LINKER_DECL int tdm_gh2_filter_ovsb_3x_mix(tdm_mod_t *_tdm);
     89 LINKER_DECL int tdm_gh2_filter_ovsb_2x_mix(tdm_mod_t *_tdm);
     90 LINKER_DECL int tdm_gh2_filter_ovsb_mix(tdm_mod_t *_tdm);
     91 LINKER_DECL int tdm_gh2_filter_mix(tdm_mod_t *_tdm);
     92 
     93 /* TDM.4 - Tomahawk chip based check/scan methods */
     94 LINKER_DECL int tdm_gh2_check_same_port_dist_dn(int idx, int *tdm_tbl, int lim);
     95 LINKER_DECL int tdm_gh2_check_same_port_dist_up(int idx, int *tdm_tbl, int lim);
     96 LINKER_DECL int tdm_gh2_check_same_port_dist_dn_port(int port, int idx, int *tdm_tbl, int lim);
     97 LINKER_DECL int tdm_gh2_check_same_port_dist_up_port(int port, int idx, int *tdm_tbl, int lim);
     98 LINKER_DECL int tdm_gh2_check_fit_smooth(int *tdm_tbl, int port, int lr_idx_limit, int clump_thresh);
     99 LINKER_DECL int tdm_gh2_slice_size_local(unsigned short idx, int *tdm, int lim);
    100 LINKER_DECL int tdm_gh2_slice_prox_dn(int slot, int *tdm, int lim, int **tsc, enum port_speed_e *speed);
    101 LINKER_DECL int tdm_gh2_slice_prox_up(int slot, int *tdm, int **tsc, enum port_speed_e *speed);
    102 LINKER_DECL int tdm_gh2_slice_size(unsigned short port, int *tdm, int lim);
    103 LINKER_DECL int tdm_gh2_slice_idx(unsigned short port, int *tdm, int lim);
    104 LINKER_DECL int tdm_gh2_slice_prox_local(unsigned short idx, int *tdm, int lim, int **tsc);
    105 LINKER_DECL int tdm_gh2_check_lls_flat_up(int idx, int *tdm_tbl, enum port_speed_e *speed);
    106 LINKER_DECL int tdm_gh2_scan_lr_slot_num(int *tdm_tbl);
    107 LINKER_DECL int tdm_gh2_scan_slice_min(unsigned short port, int *tdm, int lim, int *slice_start_idx, int pos);
    108 LINKER_DECL int tdm_gh2_scan_slice_max(unsigned short port, int *tdm, int lim, int *slice_start_idx, int pos);
    109 LINKER_DECL int tdm_gh2_scan_slice_size_local(unsigned short idx, int *tdm, int lim, int *slice_start_idx);
    110 LINKER_DECL int tdm_gh2_scan_mix_slice_min(unsigned short port, int *tdm, int lim, int *slice_idx, int pos);
    111 LINKER_DECL int tdm_gh2_scan_mix_slice_max(unsigned short port, int *tdm, int lim, int *slice_idx, int pos);
    112 LINKER_DECL int tdm_gh2_scan_mix_slice_size_local(unsigned short idx, int *tdm, int lim, int *slice_start_idx);
    113 LINKER_DECL int tdm_gh2_check_shift_cond_pattern(unsigned short port, int *tdm_tbl, int tdm_tbl_len, int **tsc, int dir);
    114 LINKER_DECL int tdm_gh2_check_shift_cond_local_slice(unsigned short port, int *tdm_tbl, int tdm_tbl_len, int **tsc, int dir);
    115 LINKER_DECL int tdm_gh2_check_slot_swap_cond(int idx, int *tdm_tbl, int tdm_tbl_len, int **tsc, enum port_speed_e *speed);
    116 LINKER_DECL int tdm_gh2_scan_which_tsc( int port, tdm_mod_t *_tdm );
    117 LINKER_DECL int tdm_gh2_check_pipe_ethernet( int port, tdm_mod_t *_tdm );
    118 
    119 /* TDM.4 - Tomahawk linked list API */
    120 LINKER_DECL void tdm_gh2_ll_print(struct gh2_ll_node *llist);
    121 LINKER_DECL void tdm_gh2_ll_deref(struct gh2_ll_node *llist, int *tdm[GH2_LR_VBS_LEN], int lim);
    122 LINKER_DECL void tdm_gh2_ll_append(struct gh2_ll_node *llist, unsigned short port_append, int *pointer);
    123 LINKER_DECL void tdm_gh2_ll_insert(struct gh2_ll_node *llist, unsigned short port_insert, int idx);
    124 LINKER_DECL int tdm_gh2_ll_delete(struct gh2_ll_node *llist, int idx);
    125 LINKER_DECL int tdm_gh2_ll_get(struct gh2_ll_node *llist, int idx);
    126 LINKER_DECL int tdm_gh2_ll_len(struct gh2_ll_node *llist);
    127 LINKER_DECL void tdm_gh2_ll_strip(struct gh2_ll_node *llist, int *pool, int token);
    128 LINKER_DECL int tdm_gh2_ll_count(struct gh2_ll_node *llist, int token);
    129 LINKER_DECL void tdm_gh2_ll_weave(struct gh2_ll_node *llist, int token, tdm_mod_t *_tdm);
    130 LINKER_DECL void tdm_gh2_ll_retrace(struct gh2_ll_node *llist, tdm_mod_t *_tdm);
    131 LINKER_DECL int tdm_gh2_ll_single_100(struct gh2_ll_node *llist);
    132 LINKER_DECL int tdm_gh2_ll_free(struct gh2_ll_node *llist);
    133 
    134 /* TDM.5 - Tomahawk chip-specific checker */
    135 LINKER_DECL int tdm_gh2_chk_get_port_tsc(tdm_mod_t *_tdm, int port);
    136 LINKER_DECL int tdm_gh2_chk_get_cal_len(tdm_mod_t *_tdm, int cal_id);
    137 LINKER_DECL int tdm_gh2_chk_get_speed_slot_num(int port_speed);
    138 LINKER_DECL int tdm_gh2_chk_get_cal_token_num(tdm_mod_t *_tdm, int cal_id, int port_token);
    139 LINKER_DECL int tdm_gh2_chk_is_pipe_ethernet(tdm_mod_t *_tdm);
    140 LINKER_DECL int tdm_gh2_chk_struct_freq(tdm_mod_t *_tdm);
    141 LINKER_DECL int tdm_gh2_chk_struct_calLength(tdm_mod_t *_tdm);
    142 LINKER_DECL int tdm_gh2_chk_struct_speed(tdm_mod_t *_tdm);
    143 LINKER_DECL int tdm_gh2_chk_struct(tdm_mod_t *_tdm);
    144 LINKER_DECL int tdm_gh2_chk_transcription(tdm_mod_t *_tdm);
    145 LINKER_DECL int tdm_gh2_chk_sister(tdm_mod_t *_tdm);
    146 LINKER_DECL int tdm_gh2_chk_sub_cpu(tdm_mod_t *_tdm);
    147 LINKER_DECL int tdm_gh2_chk_sub_lpbk(tdm_mod_t *_tdm);
    148 LINKER_DECL int tdm_gh2_chk_sub_lr_pipe(tdm_mod_t *_tdm, int cal_id);
    149 LINKER_DECL int tdm_gh2_chk_sub_os_pipe(tdm_mod_t *_tdm, int cal_id);
    150 LINKER_DECL int tdm_gh2_chk_sub_lr(tdm_mod_t *_tdm);
    151 LINKER_DECL int tdm_gh2_chk_sub_os(tdm_mod_t *_tdm);
    152 LINKER_DECL int tdm_gh2_chk_sub(tdm_mod_t *_tdm);
    153 LINKER_DECL int tdm_gh2_chk_jitter_os_pipe_tdm5(tdm_mod_t *_tdm, int cal_id);
    154 LINKER_DECL int tdm_gh2_chk_jitter_os_tdm5(tdm_mod_t *_tdm);
    155 LINKER_DECL int tdm_gh2_chk_jitter_lr_pipe_tdm5(tdm_mod_t *_tdm, int cal_id);
    156 LINKER_DECL int tdm_gh2_chk_jitter_lr_tdm5(tdm_mod_t *_tdm);
    157 LINKER_DECL int tdm_gh2_chk_jitter_os_pipe(tdm_mod_t *_tdm, int cal_id);
    158 LINKER_DECL int tdm_gh2_chk_jitter_os(tdm_mod_t *_tdm);
    159 LINKER_DECL int tdm_gh2_chk_jitter_lr_pipe(tdm_mod_t *_tdm, int cal_id);
    160 LINKER_DECL int tdm_gh2_chk_jitter_lr(tdm_mod_t *_tdm);
    161 
    162 /* Print */
    163 LINKER_DECL void tdm_gh2_print_tbl(tdm_mod_t *_tdm);
    164 LINKER_DECL void tdm_gh2_print_config(tdm_mod_t *_tdm);
    165 
    166 #endif /* TDM_GH2_PREPROCESSOR_PROTOTYPES_H */