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

triumph.h (5967B)


      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  *
      7  * File:        triumph.h
      8  */
      9 
     10 #ifndef _SOC_TRIUMPH_H_
     11 #define _SOC_TRIUMPH_H_
     12 
     13 #include <soc/drv.h>
     14 
     15 typedef struct tr_ext_sram_bist_s {
     16     /* Parameters for the fields of ESx_DTU_LTE_xxx registers */
     17     uint32 d0r_0;       /* Data pattern for DQ[17: 0] on first rising edge */
     18     uint32 d0r_1;       /* Data pattern for DQ[35:18] on first rising edge */
     19     uint32 d0f_0;       /* Data pattern for DQ[17: 0] on first falling edge */
     20     uint32 d0f_1;       /* Data pattern for DQ[35:18] on first falling edge */
     21     uint32 d1r_0;       /* Data pattern for DQ[17: 0] on second rising edge */
     22     uint32 d1r_1;       /* Data pattern for DQ[35:18] on second rising edge */
     23     uint32 d1f_0;       /* Data pattern for DQ[17: 0] on second falling edge */
     24     uint32 d1f_1;       /* Data pattern for DQ[35:18] on second falling edge */
     25     int adr0;           /* Start address */
     26     int adr1;           /* End address (can be optional in some adr_mode) */
     27     int loop_mode;      /* 00:WW, 01:RR, 10:WR 11:WW-RR */
     28     int adr_mode;       /* 00:ALT_A0A1, 01:INC1, 10:INC2, 11:ONLY_A0 */
     29     int cmp_em_rdat_fr; /* 1: use fall_rise for compare
     30                          * 0: use rise_fall for compare */
     31     int em_latency;     /* External memory read latency */
     32     int w2r_nops;       /* Number of nops between write to read */
     33     int r2w_nops;       /* Number of nops between read to write */
     34     int wdoebr;         /* wdoeb_rise */
     35     int wdoebf;         /* wdoeb_fall */
     36     int wdmr;           /* Write data mask rise */
     37     int wdmf;           /* Write data mask fall */
     38     int rdmr;           /* Read data mask rise */
     39     int rdmf;           /* Read data mask fall */
     40     int err_cnt;        /* Error count */
     41     int err_bitmap;     /* Error bit map */
     42     uint32 err_adr;     /* Error address */
     43     uint32 err_dr_0;    /* Error data for DQ[17: 0] on rising edge */
     44     uint32 err_dr_1;    /* Error data for DQ[35:18] on rising edge */
     45     uint32 err_df_0;    /* Error data for DQ[17: 0] on falling edge */
     46     uint32 err_df_1;    /* Error data for DQ[35:18] on falling edge */
     47 
     48     /* Non-BIST engine parameter */
     49     uint32 bg_tcam_loop_count; /* Enable tcam bist in background if > 1 */
     50 } tr_ext_sram_bist_t;
     51 
     52 typedef struct _soc_tr_l2e_ppa_info_s {
     53     uint32      data;
     54     sal_mac_addr_t mac;
     55 } _soc_tr_l2e_ppa_info_t;
     56 
     57 typedef struct _soc_tr_l2e_ppa_vlan_s {
     58     int         vlan_min[VLAN_ID_MAX + 1];
     59     int         vlan_max[VLAN_ID_MAX + 1];
     60 } _soc_tr_l2e_ppa_vlan_t;
     61 
     62 /* defines for bits in the ppa_info data word */
     63 #define _SOC_TR_L2E_LIMIT_COUNTED 0x80000000
     64 #define _SOC_TR_L2E_VALID         0x40000000
     65 #define _SOC_TR_L2E_STATIC        0x20000000
     66 #define _SOC_TR_L2E_T             0x10000000
     67 
     68 #define _SOC_TR_L2E_VLAN_MASK   0xfff
     69 #define _SOC_TR_L2E_VLAN_SHIFT  16
     70 #define _SOC_TR_L2E_TRUNK_MASK  0xffff
     71 #define _SOC_TR_L2E_TRUNK_SHIFT 0
     72 #define _SOC_TR_L2E_MOD_MASK    0xff
     73 #define _SOC_TR_L2E_MOD_SHIFT   8
     74 #define _SOC_TR_L2E_PORT_MASK   0xff
     75 #define _SOC_TR_L2E_PORT_SHIFT  0
     76 
     77 extern int soc_triumph_misc_init(int);
     78 extern int soc_triumph_mmu_init(int);
     79 extern int soc_triumph_age_timer_get(int, int *, int *);
     80 extern int soc_triumph_age_timer_max_get(int, int *);
     81 extern int soc_triumph_age_timer_set(int, int, int);
     82 extern void soc_triumph_parity_error(void *unit_vp, void *d1, void *d2,
     83                                      void *d3, void *d4);
     84 extern void soc_triumph_esm_intr_status(void *unit_vp, void *d1, void *d2,
     85                                         void *d3, void *d4);
     86 extern int soc_triumph_esm_init_read_config(int unit);
     87 extern int soc_triumph_esm_init_set_tcam_freq(int unit, int freq);
     88 extern int soc_triumph_esm_init_set_sram_freq(int unit, int freq);
     89 extern int soc_triumph_esm_init_pvt_comp(int unit, int intf_num);
     90 extern void soc_triumph_esm_init_mem_config(int unit);
     91 extern int soc_triumph_esm_init(int unit);
     92 extern int soc_triumph_ext_age_timer_set(int unit, int age_seconds,
     93                                          int enable);
     94 extern int soc_triumph_tcam_access(int unit, int op_type, int num_inst,
     95                                    int num_pre_nop, int num_post_nop,
     96                                    uint32 *dbus, int *ibus);
     97 extern int soc_triumph_tcam_search_bist(int unit, int part1, int part2,
     98                                         uint32 *data, int index1, int index2,
     99                                         int loop_count);
    100 extern int soc_triumph_ext_sram_enable_set(int unit, int intf_num,
    101                                            int enable, int clear_status);
    102 extern int soc_triumph_ext_sram_bist_setup(int unit, int intf_num,
    103                                            tr_ext_sram_bist_t *sram_bist);
    104 extern int soc_triumph_ext_sram_op(int unit, int intf_num,
    105                                    tr_ext_sram_bist_t *sram_bist,
    106                                    tr_ext_sram_bist_t *opt_sram_bist);
    107 extern int soc_triumph_l2x_to_ext_l2(int unit, l2x_entry_t *l2x_entry,
    108                                      ext_l2_entry_entry_t *ext_l2_entry);
    109 extern int soc_triumph_ext_l2_to_l2x(int unit,
    110                                      ext_l2_entry_entry_t *ext_l2_entry,
    111                                      l2x_entry_t *l2x_entry);
    112 extern int soc_triumph_ext_l2_entry_update(int unit, int index, void *entry);
    113 extern int soc_triumph_learn_count_update(int unit,
    114                                           ext_l2_entry_entry_t *ext_l2_entry,
    115                                           int incl_sys_vlan, int diff);
    116 extern int soc_triumph_xgport_mode_change(int unit, soc_port_t port,
    117                                           soc_mac_mode_t mode);
    118 extern int
    119 soc_triumph_l2_entry_limit_count_update(int unit);
    120 extern soc_functions_t soc_triumph_drv_funs;
    121 
    122 #endif	/* !_SOC_TRIUMPH_H_ */