bcm_xmod_pe_api.h (2478B)
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: bcm_xmod_pe_api.h 8 */ 9 10 #include "bcm_xmod_api.h" 11 12 13 #define SBUS_LOCK_INIT if (sbus_lock == NULL) \ 14 SOC_IF_ERROR_RETURN(bcm_sbus_mutex_init()) 15 #define SBUS_LOCK bcm_mutex_take(sbus_lock, sal_mutex_FOREVER) 16 #define SBUS_UNLOCK bcm_mutex_give(sbus_lock) 17 18 #define AXI_LOCK_INIT if (axi_lock == NULL) \ 19 SOC_IF_ERROR_RETURN(bcm_axi_mutex_init()) 20 #define AXI_LOCK bcm_mutex_take(axi_lock, sal_mutex_FOREVER) 21 #define AXI_UNLOCK bcm_mutex_give(axi_lock) 22 23 #define XMOD_LOCK_INIT if (sbus_lock == NULL) \ 24 SOC_IF_ERROR_RETURN(bcm_xmod_mutex_init()) 25 #define XMOD_LOCK bcm_mutex_take(xmod_lock, sal_mutex_FOREVER) 26 #define XMOD_UNLOCK bcm_mutex_give(xmod_lock) 27 28 extern int bcm_initialize(void); 29 extern int bcm_sbus_mutex_init(void); 30 extern void bcm_sbus_mutex_cleanup(void); 31 extern int bcm_axi_mutex_init(void); 32 extern void bcm_axi_mutex_cleanup(void); 33 extern int bcm_xmod_mutex_init(void); 34 extern void bcm_xmod_mutex_cleanup(void); 35 extern int bcm_firmware_download(int unit, int module, void *data, int len); 36 extern int bcm_port_lane_mask(int unit, int module, int sys_port); 37 extern int bcm_xmod_pe_init(int unit, int module, xmod_pe_config_t *config); 38 extern int bcm_xmod_pe_status_get(int unit, int module, xmod_pe_status_t *status); 39 extern int bcm_xmod_pe_port_stats_get(int unit, int module, int pe_port, xmod_pe_port_stats_t *stats, int reset); 40 extern int bcm_xmod_pe_fw_ver_get(int unit, int module, xmod_pe_fw_ver_t *ver); 41 extern int bcm_device_rev_id(int unit, int module, int *rev_id); 42 extern int bcm_device_die_temp(int unit, int module, int *temp); 43 extern int bcm_tsc_reg_access(int unit, int module, int sys_port, int write, int reg, int *val); 44 extern int bcm_mdio_access(int unit, int module, int write, int reg, int *val); 45 extern int bcm_sbus_access(int unit, int module, uint32 reg, uint32 cmd, int ring, uint32 arg[]); 46 extern int bcm_axi_reg_access(int unit, int module, int write, uint32 reg, uint32 *val); 47 extern int bcm_top_reg_access(int unit, int module, int write, uint32 reg, uint32 *val); 48 extern int bcm_eyescan(int unit, int module, int sys_port); 49 extern int bcm_dscdump(int unit, int module, int sys_port); 50 extern int bcm_prbs(int unit, int module, int sys_port, int action, int dir, int poly, int invert); 51