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

diag_sand_access.h (3374B)


      1 /*
      2  * ! \file diag_sand_access.h Purpose: shell registers commands for Dune Devices 
      3  */
      4 /*
      5  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      6  * 
      7  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
      8  */
      9 #ifndef DIAG_SAND_ACCESS_H_INCLUDED
     10 #define DIAG_SAND_ACCESS_H_INCLUDED
     11 
     12 #include <appl/diag/shell.h>
     13 #include <appl/diag/sand/diag_sand_prt.h>
     14 #include <appl/diag/sand/diag_sand_framework.h>
     15 
     16 #define MAX_FIELDS_NUM  512
     17 #define SAND_DCL_CMD(_f)  \
     18     extern cmd_result_t _f(int, args_t *); \
     19     extern char     _f##_usage[];
     20 
     21 extern sh_sand_man_t sh_sand_access_man;
     22 extern sh_sand_cmd_t sh_sand_access_cmds[];
     23 
     24 extern const char cmd_sand_access_usage[];
     25 extern const char cmd_sand_access_desc[];
     26 
     27 cmd_result_t cmd_sand_access(
     28     int unit,
     29     args_t * a);
     30 
     31 /**
     32  * \brief - read register and return its value and address
     33  *
     34  * \param [in] unit - unit number
     35  * \param [in] reg - register to read
     36  * \param [in] block_id - block id
     37  * \param [in] port - port index
     38  * \param [in] reg_index - register index in array register
     39  * \param [out] value - register value
     40  * \param [out] addr_p - register address
     41  *
     42  * \return
     43  *   shr_error_e
     44  *
     45  * \remark
     46  *   * None
     47  * \see
     48  *   * None
     49  */
     50 shr_error_e access_reg_read(
     51     int unit,
     52     soc_reg_t reg,
     53     soc_block_t block_id,
     54     int port,
     55     int reg_index,
     56     uint32 *value,
     57     uint32 *addr_p);
     58 
     59 /**
     60  * \brief - print register in a tabular format - format should contain the following fields:
     61  *          Object, Block, Index, Address, Value and Property in this order
     62  *
     63  * \param [in] prt_ctr - pointer to print infra control structure
     64  * \param [in] unit - unit number
     65  * \param [in] reg - register to print
     66  * \param [in] block_name - block name
     67  * \param [in] reg_index - register index in array register
     68  * \param [in] address - register address
     69  * \param [in] reg_value - register value
     70  * \param [in] field_flag - if true - print register fields as well
     71  * \param [in] changed_flag - if true print only changed registers
     72  * \param [in] fld_match_list - allows filtering which fields to print and which not according to order.
     73  *
     74  * \return
     75  *   shr_error_e
     76  *
     77  * \remark
     78  *   * None
     79  * \see
     80  *   * None
     81  */
     82 shr_error_e access_reg_print(
     83     prt_control_t * prt_ctr,
     84     int unit,
     85     soc_reg_t reg,
     86     char *block_name,
     87     int reg_index,
     88     uint32 address,
     89     soc_reg_above_64_val_t reg_value,
     90     int field_flag,
     91     int changed_flag,
     92     int *fld_match_list);
     93 
     94 SAND_DCL_CMD(cmd_sand_reg_list)
     95 SAND_DCL_CMD(cmd_sand_reg_get) SAND_DCL_CMD(cmd_sand_reg_set) SAND_DCL_CMD(cmd_sand_reg_modify)
     96 /*
     97  * The parameter name is set when you want to dump a specific block.
     98  */
     99      int
    100      diag_sand_reg_get_all(
    101     int unit,
    102     int is_debug,
    103     char *name);
    104 
    105 /*
    106  * List the tables, or fields of a table entry
    107  */
    108 SAND_DCL_CMD(cmd_sand_mem_list)
    109 SAND_DCL_CMD(cmd_sand_mem_get)
    110 SAND_DCL_CMD(cmd_sand_mem_write)
    111 SAND_DCL_CMD(cmd_sand_mem_modify) SAND_DCL_CMD(cmd_sand_dma) SAND_DCL_CMD(cmd_sand_intr)
    112 #if defined(__DUNE_GTO_BCM_CPU__) || defined(__DUNE_WRX_BCM_CPU__) || defined(__DUNE_SLK_BCM_CPU__) || defined(__DUNE_GTS_BCM_CPU__)
    113     SAND_DCL_CMD(cmd_sand_cpu_i2c) SAND_DCL_CMD(cmd_sand_cpu_regs)
    114 #endif
    115     SAND_DCL_CMD(cmd_sand_pcie_reg) SAND_DCL_CMD(cmd_sand_pcic_access)
    116 #endif /* DIAG_SAND_ACCESS_H_INCLUDED */