mem.h (12639B)
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: mem.h 8 * Purpose: Include file for memory access functions: ARL, L2X, L3X. 9 */ 10 11 #ifndef _PCID_MEM_H 12 #define _PCID_MEM_H 13 14 #include "pcid.h" 15 #include <sys/types.h> 16 #include <soc/mcm/memregs.h> 17 18 19 #ifdef BCM_XGS_SWITCH_SUPPORT 20 extern int soc_internal_l2x_read(pcid_info_t *pcid_info, uint32 addr, 21 l2x_entry_t *entry); 22 23 extern int soc_internal_l2x_write(pcid_info_t *pcid_info, uint32 addr, 24 l2x_entry_t *entry); 25 extern int soc_internal_l2x_lkup(pcid_info_t *pcid_info, 26 l2x_entry_t *entry_lookup, uint32 *result); 27 extern int soc_internal_l2x_init(pcid_info_t * pcid_info) ; 28 extern int soc_internal_l2x_del(pcid_info_t *pcid_info, l2x_entry_t *entry); 29 extern int soc_internal_l2x_ins(pcid_info_t *pcid_info, l2x_entry_t *entry); 30 #endif /* BCM_XGS_SWITCH_SUPPORT */ 31 #ifdef BCM_FIREBOLT_SUPPORT 32 extern int soc_internal_l2x2_entry_ins(pcid_info_t *pcid_info, uint8 banks, 33 l2x_entry_t *entry, 34 uint32 *result); 35 extern int soc_internal_l2x2_entry_del(pcid_info_t *pcid_info, uint8 banks, 36 l2x_entry_t *entry, 37 uint32 *result); 38 extern int soc_internal_l2x2_entry_lkup(pcid_info_t * pcid_info, uint8 banks, 39 l2x_entry_t *entry_lookup, 40 uint32 *result); 41 extern int soc_internal_l3x2_read(pcid_info_t * pcid_info, soc_mem_t mem, 42 uint32 addr, uint32 *entry); 43 extern int soc_internal_l3x2_write(pcid_info_t * pcid_info, soc_mem_t mem, 44 uint32 addr, uint32 *entry); 45 extern int soc_internal_l3x2_entry_ins(pcid_info_t *pcid_info, 46 uint32 inv_bank_map, void *entry, 47 uint32 *result); 48 extern int soc_internal_l3x2_entry_del(pcid_info_t *pcid_info, 49 uint32 inv_bank_map, void *entry, 50 uint32 *result); 51 extern int soc_internal_l3x2_entry_lkup(pcid_info_t * pcid_info, 52 uint32 inv_bank_map, void *entry, 53 uint32 *result); 54 #endif /* BCM_FIREBOLT_SUPPORT */ 55 #ifdef BCM_TOMAHAWK_SUPPORT 56 extern int soc_internal_exact_match_read(pcid_info_t * pcid_info, 57 soc_mem_t mem, uint32 addr, 58 uint32 *entry); 59 extern int soc_internal_exact_match_write(pcid_info_t * pcid_info, 60 soc_mem_t mem, uint32 addr, 61 uint32 *entry); 62 extern int soc_internal_exact_match_ins(pcid_info_t *pcid_info, 63 uint32 inv_bank_map, void *entry, 64 uint32 *result); 65 extern int soc_internal_exact_match_del(pcid_info_t *pcid_info, 66 uint32 inv_bank_map, void *entry, 67 uint32 *result); 68 extern int soc_internal_exact_match_lkup(pcid_info_t * pcid_info, 69 uint32 inv_bank_map, void *entry, 70 uint32 *result); 71 #endif /* BCM_TOMAHAWK_SUPPORT */ 72 #ifdef BCM_EASYRIDER_SUPPORT 73 extern int soc_internal_l2_er_entry_ins(pcid_info_t *pcid_info, 74 uint32 *entry); 75 extern int soc_internal_l2_er_entry_del(pcid_info_t *pcid_info, 76 uint32 *entry); 77 extern int soc_internal_l2_er_entry_lkup(pcid_info_t * pcid_info, 78 uint32 *entry); 79 extern int soc_internal_l3_er_entry_ins(pcid_info_t *pcid_info, 80 uint32 *entry, int l3v6); 81 extern int soc_internal_l3_er_entry_del(pcid_info_t *pcid_info, 82 uint32 *entry, int l3v6); 83 extern int soc_internal_l3_er_entry_lkup(pcid_info_t * pcid_info, 84 uint32 *entry, int l3v6); 85 extern int soc_internal_mcmd_write(pcid_info_t * pcid_info, 86 soc_mem_t mem, uint32 *data, int cmd); 87 #endif /* BCM_EASYRIDER_SUPPORT */ 88 #ifdef BCM_TRX_SUPPORT 89 extern int soc_internal_l2_tr_entry_ins(pcid_info_t *pcid_info, 90 uint32 inv_bank_map, void *entry, 91 uint32 *result); 92 extern int soc_internal_l2_tr_entry_del(pcid_info_t *pcid_info, 93 uint32 inv_bank_map, void *entry, 94 uint32 *result); 95 extern int soc_internal_l2_tr_entry_lkup(pcid_info_t *pcid_info, 96 uint32 inv_bank_map, void *entry, 97 uint32 *result); 98 extern int soc_internal_vlan_xlate_hash(pcid_info_t * pcid_info, 99 vlan_xlate_entry_t *entry, int dual); 100 101 extern int soc_internal_vlan_xlate_entry_read(pcid_info_t * pcid_info, 102 uint32 addr, 103 vlan_xlate_entry_t *entry); 104 extern int soc_internal_vlan_xlate_extended_entry_read(pcid_info_t * pcid_info, 105 uint32 block, uint32 addr, 106 vlan_xlate_entry_t *entry); 107 extern int soc_internal_vlan_xlate_entry_write(pcid_info_t * pcid_info, 108 uint32 addr, 109 vlan_xlate_entry_t *entry); 110 extern int soc_internal_vlan_xlate_extended_entry_write(pcid_info_t * pcid_info, 111 uint32 block, uint32 addr, 112 vlan_xlate_entry_t *entry); 113 extern int soc_internal_vlan_xlate_entry_ins(pcid_info_t *pcid_info, 114 uint8 banks, 115 vlan_xlate_entry_t *entry, 116 uint32 *result); 117 extern int soc_internal_vlan_xlate_entry_del(pcid_info_t * pcid_info, 118 uint8 banks, 119 vlan_xlate_entry_t *entry, 120 uint32 *result); 121 extern int soc_internal_vlan_xlate_entry_lkup(pcid_info_t * pcid_info, 122 uint8 banks, 123 vlan_xlate_entry_t *entry_lookup, 124 uint32 *result); 125 126 extern int soc_internal_egr_vlan_xlate_entry_ins(pcid_info_t *pcid_info, 127 uint8 banks, 128 egr_vlan_xlate_entry_t *entry, 129 uint32 *result); 130 extern int soc_internal_egr_vlan_xlate_entry_del(pcid_info_t * pcid_info, 131 uint8 banks, 132 egr_vlan_xlate_entry_t *entry, 133 uint32 *result); 134 extern int soc_internal_egr_vlan_xlate_entry_lkup(pcid_info_t * pcid_info, 135 uint8 banks, 136 egr_vlan_xlate_entry_t *entry_lookup, 137 uint32 *result); 138 #endif /* BCM_TRX_SUPPORT */ 139 140 #ifdef BCM_TRIDENT2_SUPPORT 141 extern int soc_internal_ing_vp_vlan_member_ins(pcid_info_t *pcid_info, 142 uint8 banks, void *entry, 143 uint32 *result); 144 extern int soc_internal_ing_vp_vlan_member_del(pcid_info_t *pcid_info, 145 uint8 banks, void *entry, 146 uint32 *result); 147 extern int soc_internal_ing_vp_vlan_member_lkup(pcid_info_t *pcid_info, 148 uint8 banks, void *entry, 149 uint32 *result); 150 151 extern int soc_internal_egr_vp_vlan_member_ins(pcid_info_t *pcid_info, 152 uint8 banks, void *entry, 153 uint32 *result); 154 extern int soc_internal_egr_vp_vlan_member_del(pcid_info_t *pcid_info, 155 uint8 banks, void *entry, 156 uint32 *result); 157 extern int soc_internal_egr_vp_vlan_member_lkup(pcid_info_t *pcid_info, 158 uint8 banks, void *entry, 159 uint32 *result); 160 161 extern int soc_internal_ing_dnat_address_type_ins(pcid_info_t *pcid_info, 162 uint8 banks, void *entry, 163 uint32 *result); 164 extern int soc_internal_ing_dnat_address_type_del(pcid_info_t *pcid_info, 165 uint8 banks, void *entry, 166 uint32 *result); 167 extern int soc_internal_ing_dnat_address_type_lkup(pcid_info_t *pcid_info, 168 uint8 banks, void *entry, 169 uint32 *result); 170 171 extern int soc_internal_l2_endpoint_id_ins(pcid_info_t *pcid_info, uint8 banks, 172 void *entry, uint32 *result); 173 extern int soc_internal_l2_endpoint_id_del(pcid_info_t *pcid_info, uint8 banks, 174 void *entry, uint32 *result); 175 extern int soc_internal_l2_endpoint_id_lkup(pcid_info_t *pcid_info, 176 uint8 banks, void *entry, 177 uint32 *result); 178 179 extern int soc_internal_endpoint_queue_map_ins(pcid_info_t *pcid_info, 180 uint8 banks, 181 void *entry, uint32 *result); 182 extern int soc_internal_endpoint_queue_map_del(pcid_info_t *pcid_info, 183 uint8 banks, 184 void *entry, uint32 *result); 185 extern int soc_internal_endpoint_queue_map_lkup(pcid_info_t *pcid_info, 186 uint8 banks, void *entry, 187 uint32 *result); 188 #endif /* BCM_TRIDNET2_SUPPORT */ 189 190 #ifdef BCM_TRIUMPH_SUPPORT 191 extern int soc_internal_mpls_hash(pcid_info_t * pcid_info, 192 mpls_entry_entry_t *entry, int dual); 193 194 extern int soc_internal_mpls_entry_read(pcid_info_t * pcid_info, 195 uint32 addr, 196 mpls_entry_entry_t *entry); 197 extern int soc_internal_mpls_entry_write(pcid_info_t * pcid_info, 198 uint32 addr, 199 mpls_entry_entry_t *entry); 200 extern int soc_internal_mpls_entry_ins(pcid_info_t *pcid_info, 201 uint8 banks, 202 mpls_entry_entry_t *entry, 203 uint32 *result); 204 extern int soc_internal_mpls_entry_del(pcid_info_t * pcid_info, 205 uint8 banks, 206 mpls_entry_entry_t *entry, 207 uint32 *result); 208 extern int soc_internal_mpls_entry_lkup(pcid_info_t * pcid_info, 209 uint8 banks, 210 mpls_entry_entry_t *entry_lookup, 211 uint32 *result); 212 213 #endif /* BCM_TRIUMPH_SUPPORT */ 214 #ifdef BCM_TOMAHAWK3_SUPPORT 215 extern int soc_internal_tunnel_entry_ins(pcid_info_t *pcid_info, 216 uint8 inv_bank_map, 217 void *entry, 218 uint32 *result); 219 #endif /* BCM_TOMAHAWK3_SUPPORT */ 220 221 #endif /* _PCID_MEM_H */