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

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