bnx2x_func_init_cmn(9)
π bnx2x_func_init_cmn(9) β Kernel API Manual β¨
okay so bestie, welcome to the bnx2x_func_init_cmn page, straight out of the Kernel API Manual. yes we're in the driver mines today. put your hair up, grab a matcha π, and let's get into it.
πΈ NAME πΈ
bnx2x_func_init_cmn β performs HW init at common stage
like, it does the hardware init but specifically at the common stage, okay? that's the whole vibe. π
β¨ SYNOPSIS β¨
int bnx2x_func_init_cmn (struct bnx2x *bp , const struct
bnx2x_func_sp_drv_ops *drv );
so it returns an int (as one does), takes a struct bnx2x * called bp, and a const struct bnx2x_func_sp_drv_ops * called drv. two pointers, one int, no drama. π«Ά
π ARGUMENTS π
bpβ device handle. it's the bnx2x thing you're working with, your main character struct πdrvβ so bestieβ¦ the manpage literally gives us no description here. it's aconst struct bnx2x_func_sp_drv_ops *per the synopsis, and that's all the page says. i'm not gonna make something up, that's not the energy π
π¦ DESCRIPTION π¦
okay so here's what's tea: this function inits the HW when the current phase is FW_MSG_CODE_DRV_LOAD_COMMON_CHIP. yes that exact constant, no substitutions, we don't do that here.
and when it does that, it initializes:
- the COMMON HW blocks,
- the PORT-only HW blocks,
- and the FUNCTION-only HW blocks.
all three, one function, iconic behaviour honestly. β¨
π SEE ALSO π
the kernel file lives at:
./drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
and here's the full friend group, no cap, every single one of them:
bnx2x_exe_queue_init(9)bnx2x_exe_queue_add(9)bnx2x_exe_queue_step(9)bnx2x_state_wait(9)__bnx2x_vlan_mac_h_write_trylock(9)__bnx2x_vlan_mac_h_exec_pending(9)__bnx2x_vlan_mac_h_pend(9)__bnx2x_vlan_mac_h_write_unlock(9)__bnx2x_vlan_mac_h_read_lock(9)bnx2x_vlan_mac_h_read_lock(9)__bnx2x_vlan_mac_h_read_unlock(9)bnx2x_vlan_mac_h_read_unlock(9)bnx2x_vlan_mac_set_cmd_hdr_e2(9)bnx2x_vlan_mac_set_rdata_hdr_e2(9)bnx2x_vlan_mac_set_rdata_hdr_e1x(9)bnx2x_set_one_mac_e1x(9)bnx2x_set_one_vlan_mac_e1h(9)bnx2x_vlan_mac_restore(9)bnx2x_validate_vlan_mac_add(9)bnx2x_validate_vlan_mac_del(9)bnx2x_validate_vlan_mac_move(9)bnx2x_wait_vlan_mac(9)bnx2x_complete_vlan_mac(9)bnx2x_optimize_vlan_mac(9)bnx2x_vlan_mac_get_registry_elem(9)bnx2x_execute_vlan_mac(9)bnx2x_config_vlan_mac(9)bnx2x_vlan_mac_del_all(9)bnx2x_mcast_get_next_bin(9)bnx2x_mcast_clear_first_bin(9)bnx2x_mcast_handle_restore_cmd_e2(9)bnx2x_mcast_handle_current_cmd(9)bnx2x_mcast_set_rdata_hdr_e2(9)bnx2x_mcast_refresh_registry_e2(9)bnx2x_mcast_set_rdata_hdr_e1(9)bnx2x_mcast_handle_restore_cmd_e1(9)bnx2x_get_fw_mac_addr(9)bnx2x_mcast_refresh_registry_e1(9)__atomic_add_ifless(9)__atomic_dec_ifmoe(9)bnx2x_init_credit_pool(9)bnx2x_debug_print_ind_table(9)bnx2x_setup_rss(9)bnx2x_queue_state_change(9)bnx2x_queue_comp_cmd(9)bnx2x_q_init(9)bnx2x_q_send_deactivate(9)bnx2x_q_send_activate(9)bnx2x_queue_chk_transition(9)bnx2x_func_state_change_comp(9)bnx2x_func_comp_cmd(9)bnx2x_func_chk_transition(9)bnx2x_func_init_func(9)bnx2x_func_init_port(9)bnx2x_func_init_cmn_chip(9)bnx2x_func_reset_func(9)bnx2x_func_reset_port(9)bnx2x_func_reset_cmn(9)bnx2x_func_state_change(9)
(yes __atomic_dec_ifmoe(9) is spelled exactly like that on the page β i'm keeping it character for character, don't come for me π)
ngl bestie, that reference list is a whole roster. read them all, fr fr. π
and that's the page!! π§ mwah π this one's sourced from ./drivers/net/ethernet/broadco... (yes it's truncated like that on the page, that's just how it is), dated October 2026, and the manual entry is bnx2x_func_init_cmn(9). slay, go init some hardware. π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms