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