pmNull.h (11164B)
1 /* 2 * 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-2019 Broadcom Inc. All rights reserved. 8 * 9 * 10 * DO NOT EDIT THIS FILE! 11 */ 12 13 #ifndef _PMNULL_H__H_ 14 #define _PMNULL_H__H_ 15 16 #include <phymod/phymod.h> 17 #include <phymod/phymod_diagnostics.h> 18 #include <phymod/phymod_reg.h> 19 #include <soc/cprimod/cprimod.h> 20 #include <soc/portmod/portmod_defs.h> 21 /**/ 22 int pmNull_port_speed_ability_local_get(int unit, int port, pm_info_t pm_info, int max_num_abilities, portmod_port_speed_ability_t* abilities, int* num_abilities); 23 24 /*Get whether the inerface type is supported by PM */ 25 int pmNull_pm_interface_type_is_supported(int unit, soc_port_if_t interface, int* is_supported); 26 27 /*Add new pm.*/ 28 int pmNull_pm_init(int unit, const portmod_pm_create_info_internal_t* pm_add_info, int wb_buffer_index, pm_info_t pm_info); 29 30 /*Release PM resources*/ 31 int pmNull_pm_destroy(int unit, pm_info_t pm_info); 32 33 /*Add new port*/ 34 int pmNull_port_attach(int unit, int port, pm_info_t pm_info, const portmod_port_add_info_t* add_info); 35 36 /*get port cores' phymod access*/ 37 int pmNull_pm_core_info_get(int unit, pm_info_t pm_info, int phyn, portmod_pm_core_info_t* core_info); 38 39 /*Port remove in PM level*/ 40 int pmNull_port_detach(int unit, int port, pm_info_t pm_info); 41 42 /*Port enable*/ 43 int pmNull_port_enable_set(int unit, int port, pm_info_t pm_info, int flags, int enable); 44 int pmNull_port_enable_get(int unit, int port, pm_info_t pm_info, int flags, int* enable); 45 46 /* set/get the interface, speed and encapsulation for the specified port. 47 For the First port within core this function initialize the PM, MAC and PHY before configure the port.*/ 48 int pmNull_port_interface_config_set(int unit, int port, pm_info_t pm_info, const portmod_port_interface_config_t* config, int phy_init_flags); 49 int pmNull_port_interface_config_get(int unit, int port, pm_info_t pm_info, portmod_port_interface_config_t* config, int phy_init_flags); 50 51 /* get the default line-side (outmost) interface type of a port based on its speed, encap, number of lanes, etc, when there is or there is not an ext PHY*/ 52 int pmNull_port_default_interface_get(int unit, int port, pm_info_t pm_info, const portmod_port_interface_config_t* config, soc_port_if_t* interface); 53 54 /*Port speed set\get*/ 55 int pmNull_port_loopback_set(int unit, int port, pm_info_t pm_info, portmod_loopback_mode_t loopback_type, int enable); 56 int pmNull_port_loopback_get(int unit, int port, pm_info_t pm_info, portmod_loopback_mode_t loopback_type, int* enable); 57 58 /*Port RX MAC ENABLE set\get*/ 59 int pmNull_port_rx_mac_enable_set(int unit, int port, pm_info_t pm_info, int enable); 60 int pmNull_port_rx_mac_enable_get(int unit, int port, pm_info_t pm_info, int* enable); 61 62 /*get port auto negotiation local ability*/ 63 int pmNull_port_ability_local_get(int unit, int port, pm_info_t pm_info, uint32 phy_flags, portmod_port_ability_t* ability); 64 65 /*Set\Get autoneg*/ 66 int pmNull_port_autoneg_set(int unit, int port, pm_info_t pm_info, uint32 phy_flags, const phymod_autoneg_control_t* an); 67 int pmNull_port_autoneg_get(int unit, int port, pm_info_t pm_info, uint32 phy_flags, phymod_autoneg_control_t* an); 68 69 /*Get autoneg status*/ 70 int pmNull_port_autoneg_status_get(int unit, int port, pm_info_t pm_info, phymod_autoneg_status_t* an_status); 71 72 /*get link status*/ 73 int pmNull_port_link_get(int unit, int port, pm_info_t pm_info, int flags, int* link); 74 75 /* link up event */ 76 int pmNull_port_phy_link_up_event(int unit, int port, pm_info_t pm_info); 77 78 /* link down event */ 79 int pmNull_port_phy_link_down_event(int unit, int port, pm_info_t pm_info); 80 81 /*Filter packets bigger than the specified value*/ 82 int pmNull_port_max_packet_size_set(int unit, int port, pm_info_t pm_info, int value); 83 int pmNull_port_max_packet_size_get(int unit, int port, pm_info_t pm_info, int* value); 84 85 /*set/get the MAC source address that will be sent in case of Pause/LLFC*/ 86 int pmNull_port_tx_mac_sa_set(int unit, int port, pm_info_t pm_info, sal_mac_addr_t mac_sa); 87 int pmNull_port_tx_mac_sa_get(int unit, int port, pm_info_t pm_info, sal_mac_addr_t mac_sa); 88 89 /*set/get Average inter-packet gap*/ 90 int pmNull_port_tx_average_ipg_set(int unit, int port, pm_info_t pm_info, int value); 91 int pmNull_port_tx_average_ipg_get(int unit, int port, pm_info_t pm_info, int* value); 92 93 /*local fault set/get*/ 94 int pmNull_port_local_fault_control_set(int unit, int port, pm_info_t pm_info, const portmod_local_fault_control_t* control); 95 int pmNull_port_local_fault_control_get(int unit, int port, pm_info_t pm_info, portmod_local_fault_control_t* control); 96 97 /*remote fault set/get*/ 98 int pmNull_port_remote_fault_control_set(int unit, int port, pm_info_t pm_info, const portmod_remote_fault_control_t* control); 99 int pmNull_port_remote_fault_control_get(int unit, int port, pm_info_t pm_info, portmod_remote_fault_control_t* control); 100 101 /*local fault steatus get*/ 102 int pmNull_port_local_fault_status_get(int unit, int port, pm_info_t pm_info, int* value); 103 104 /*remote fault status get*/ 105 int pmNull_port_remote_fault_status_get(int unit, int port, pm_info_t pm_info, int* value); 106 107 /*set/get Pause FC configuration*/ 108 int pmNull_port_pause_control_set(int unit, int port, pm_info_t pm_info, const portmod_pause_control_t* control); 109 int pmNull_port_pause_control_get(int unit, int port, pm_info_t pm_info, portmod_pause_control_t* control); 110 111 /*get port cores' phymod access*/ 112 int pmNull_port_core_access_get(int unit, int port, pm_info_t pm_info, int phyn, int max_cores, phymod_core_access_t* core_access_arr, int* nof_cores, int* is_most_ext); 113 114 /*Get lane phymod access structure. can be used for per lane operations*/ 115 int pmNull_port_phy_lane_access_get(int unit, int port, pm_info_t pm_info, const portmod_access_get_params_t* params, int max_phys, phymod_phy_access_t* access, int* nof_phys, int* is_most_ext); 116 117 /*Port duplex set\get*/ 118 int pmNull_port_duplex_set(int unit, int port, pm_info_t pm_info, int enable); 119 int pmNull_port_duplex_get(int unit, int port, pm_info_t pm_info, int* enable); 120 121 /*get port auto negotiation local ability*/ 122 int pmNull_port_ability_advert_set(int unit, int port, pm_info_t pm_info, uint32 phy_flags, portmod_port_ability_t* ability); 123 int pmNull_port_ability_advert_get(int unit, int port, pm_info_t pm_info, uint32 phy_flags, portmod_port_ability_t* ability); 124 125 /*set EEE Config.*/ 126 int pmNull_port_eee_set(int unit, int port, pm_info_t pm_info, const portmod_eee_t* eee); 127 int pmNull_port_eee_get(int unit, int port, pm_info_t pm_info, portmod_eee_t* eee); 128 129 /*set Vlan Inner/Outer tag.*/ 130 int pmNull_port_vlan_tag_set(int unit, int port, pm_info_t pm_info, const portmod_vlan_tag_t* vlan_tag); 131 int pmNull_port_vlan_tag_get(int unit, int port, pm_info_t pm_info, portmod_vlan_tag_t* vlan_tag); 132 133 /*set modid field.*/ 134 int pmNull_port_modid_set(int unit, int port, pm_info_t pm_info, int value); 135 136 /*Toggle Lag Failover Status.*/ 137 int pmNull_port_lag_failover_status_toggle(int unit, int port, pm_info_t pm_info); 138 139 /*set port mode.*/ 140 int pmNull_port_mode_set(int unit, int port, pm_info_t pm_info, const portmod_port_mode_info_t* mode); 141 int pmNull_port_mode_get(int unit, int port, pm_info_t pm_info, portmod_port_mode_info_t* mode); 142 143 /*set port encap.*/ 144 int pmNull_port_encap_set(int unit, int port, pm_info_t pm_info, int flags, portmod_encap_t encap); 145 int pmNull_port_encap_get(int unit, int port, pm_info_t pm_info, int* flags, portmod_encap_t* encap); 146 147 /*set port register higig field.*/ 148 int pmNull_port_higig_mode_set(int unit, int port, pm_info_t pm_info, int mode); 149 int pmNull_port_higig_mode_get(int unit, int port, pm_info_t pm_info, int* mode); 150 151 /*set port register higig field.*/ 152 int pmNull_port_higig2_mode_set(int unit, int port, pm_info_t pm_info, int mode); 153 int pmNull_port_higig2_mode_get(int unit, int port, pm_info_t pm_info, int* mode); 154 155 /*Get the reference clock value 156 or 125.*/ 156 int pmNull_port_ref_clk_get(int unit, int port, pm_info_t pm_info, int* ref_clk); 157 158 /*Disable lag failover.*/ 159 int pmNull_port_cntmaxsize_set(int unit, int port, pm_info_t pm_info, int val); 160 int pmNull_port_cntmaxsize_get(int unit, int port, pm_info_t pm_info, int* val); 161 162 /*Get Info needed to restore after drain cells.*/ 163 int pmNull_port_drain_cell_get(int unit, int port, pm_info_t pm_info, portmod_drain_cells_t* drain_cells); 164 165 /*Restore informaation after drain cells.*/ 166 int pmNull_port_drain_cell_stop(int unit, int port, pm_info_t pm_info, const portmod_drain_cells_t* drain_cells); 167 168 /*Restore informaation after drain cells.*/ 169 int pmNull_port_drain_cell_start(int unit, int port, pm_info_t pm_info); 170 171 /**/ 172 int pmNull_port_drain_cells_rx_enable(int unit, int port, pm_info_t pm_info, int rx_en); 173 174 /**/ 175 int pmNull_port_egress_queue_drain_rx_en(int unit, int port, pm_info_t pm_info, int rx_en); 176 177 /**/ 178 int pmNull_port_mac_ctrl_set(int unit, int port, pm_info_t pm_info, uint64 ctrl); 179 180 /**/ 181 int pmNull_port_txfifo_cell_cnt_get(int unit, int port, pm_info_t pm_info, uint32* cnt); 182 183 /**/ 184 int pmNull_port_egress_queue_drain_get(int unit, int port, pm_info_t pm_info, uint64* ctrl, int* rxen); 185 186 /*Set/get port mac reset */ 187 int pmNull_port_mac_reset_set(int unit, int port, pm_info_t pm_info, int val); 188 int pmNull_port_mac_reset_get(int unit, int port, pm_info_t pm_info, int* val); 189 190 /**/ 191 int pmNull_port_soft_reset_toggle(int unit, int port, pm_info_t pm_info, int idx); 192 193 /*Check if MAC needs to be reset.*/ 194 int pmNull_port_mac_reset_check(int unit, int port, pm_info_t pm_info, int enable, int* reset); 195 196 /*get the speed for the specified port*/ 197 int pmNull_port_speed_get(int unit, int port, pm_info_t pm_info, int* speed); 198 199 /* portmod check if external phy is legacy*/ 200 int pmNull_port_check_legacy_phy(int unit, int port, pm_info_t pm_info, int* legacy_phy); 201 202 /* portmod phy failover mode*/ 203 int pmNull_port_failover_mode_set(int unit, int port, pm_info_t pm_info, phymod_failover_mode_t failover); 204 int pmNull_port_failover_mode_get(int unit, int port, pm_info_t pm_info, phymod_failover_mode_t* failover); 205 206 /* portmod restore information after warmboot*/ 207 int pmNull_port_warmboot_db_restore(int unit, int port, pm_info_t pm_info, const portmod_port_interface_config_t* intf_config, const portmod_port_init_config_t* init_config, phymod_operation_mode_t phy_op_mode); 208 209 /* portmod port flow control config*/ 210 int pmNull_port_flow_control_set(int unit, int port, pm_info_t pm_info, int merge_mode_en, int parallel_fc_en); 211 212 /*set/get port medium type config. */ 213 int pmNull_port_medium_config_set(int unit, int port, pm_info_t pm_info, soc_port_medium_t medium, soc_phy_config_t* config); 214 int pmNull_port_medium_config_get(int unit, int port, pm_info_t pm_info, soc_port_medium_t medium, soc_phy_config_t* config); 215 216 /*get port medium type. */ 217 int pmNull_port_medium_get(int unit, int port, pm_info_t pm_info, soc_port_medium_t* medium); 218 219 /* set/get the speed config for the specified port.*/ 220 int pmNull_port_speed_config_set(int unit, int port, pm_info_t pm_info, const portmod_speed_config_t* speed_config); 221 int pmNull_port_speed_config_get(int unit, int port, pm_info_t pm_info, portmod_speed_config_t* speed_config); 222 223 #endif /*_PMNULL_H_*/