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