t4_get_vpd_version(9)
π t4_get_vpd_version β the kernel API manual page, bestie edition π
Okay so this is a section 9 kernel API page (t4_get_vpd_version(9)) and it's literally just about one little function that hands you the VPD version. Short page, iconic energy. Let's go. β¨
πΈ SYNOPSIS πΈ
int t4_get_vpd_version (struct adapter *adapter , u32 *vers );
That's it. That's the whole vibe. π¦
π§ ARGUMENTS π§
adapterβ the adapter. like, the adapter, the one you're working with. no notes. πversβ where to place the version. it's a pointer bestie, so the function writes the version into this spot. π
π DESCRIPTION π
So what it does: it reads the VPD via the Firmware interface. and because of that, you can only call it once we're actually ready to issue Firmware commands. No jumping the gun, no calling it before the FW is up β that's not the move. π
The format of the VPD version is adapter specific. So don't go assuming a shape, it's giving "every adapter is a little different" energy, and honestly? respect. It returns 0 on success, and an error on failure. Fr fr, check that return value. π
β οΈ Note that early versions of the Firmware didn't include the ability to retrieve the VPD version. So in that case, we zero-out the return-value parameter so you don't get left holding a parameter full of garbage. Public service, honestly. π«Ά
β οΈ Also note: the Firmware will return its cached copy of the VPD Revision ID, not the actual Revision ID as written in the Serial EEPROM. This is only an issue if a new VPD has been written and the Firmware/Chip haven't yet gone through aRESETsequence. So it's best to defer calling this routine till after aFW_RESET_CMDhas been issued if the Host Driver will be performing a full adapter initialization. iykyk β get the reset done first, then come ask for versions. β
π¦ SEE ALSO π¦
The kernel file for this one lives at:
./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
And here's the whole extended universe of friends, in the exact order the page lists them. so many. slay. π
t4_wait_op_done_val(9)t4_set_reg_field(9)t4_read_indirect(9)t4_write_indirect(9)t4_record_mbox(9)t4_wr_mbox_meat_timeout(9)t4_memory_rw_init(9)t4_memory_update_win(9)t4_memory_rw_residual(9)t4_memory_rw(9)t4_get_regs_len(9)t4_get_regs(9)t4_eeprom_ptov(9)t4_seeprom_wp(9)t4_get_raw_vpd_params(9)t4_get_vpd_params(9)t4_get_pfres(9)sf1_read(9)sf1_write(9)flash_wait_op(9)t4_read_flash(9)t4_write_flash(9)t4_get_fw_version(9)t4_get_bs_version(9)t4_get_tp_version(9)t4_get_exprom_version(9)t4_get_scfg_version(9)t4_get_version_info(9)t4_dump_version_info(9)t4_check_fw_version(9)t4_flash_erase_sectors(9)t4_flash_cfg_addr(9)t4_load_fw(9)t4_phy_fw_ver(9)t4_load_phy_fw(9)t4_fwcache(9)fwcaps16_to_caps32(9)fwcaps32_to_caps16(9)t4_link_acaps(9)t4_link_l1cfg_core(9)t4_restart_aneg(9)t4_handle_intr_status(9)t4_slow_intr_handler(9)t4_intr_enable(9)t4_intr_disable(9)t4_config_rss_range(9)t4_config_glbl_rss(9)t4_config_vi_rss(9)t4_read_rss(9)t4_tp_fw_ldst_rw(9)t4_tp_indirect_rw(9)t4_tp_pio_read(9)t4_tp_pio_write(9)t4_tp_tm_pio_read(9)t4_tp_mib_read(9)t4_read_rss_key(9)t4_write_rss_key(9)t4_read_rss_pf_config(9)t4_read_rss_vf_config(9)t4_read_rss_pf_map(9)t4_read_rss_pf_mask(9)t4_tp_get_tcp_stats(9)t4_tp_get_err_stats(9)t4_tp_get_cpl_stats(9)t4_tp_get_rdma_stats(9)t4_get_fcoe_stats(9)t4_get_usm_stats(9)t4_read_mtu_tbl(9)t4_read_cong_tbl(9)t4_tp_wr_bits_indirect(9)init_cong_ctrl(9)t4_load_mtus(9)t4_get_chan_txrate(9)t4_set_trace_filter(9)t4_get_trace_filter(9)t4_pmtx_get_stats(9)t4_pmrx_get_stats(9)compute_mps_bg_map(9)t4_get_mps_bg_map(9)t4_get_tp_e2c_map(9)t4_get_tp_ch_map(9)t4_get_port_type_description(9)t4_get_port_stats_offset(9)t4_get_port_stats(9)t4_get_lb_stats(9)t4_mdio_rd(9)t4_mdio_wr(9)t4_sge_decode_idma_state(9)t4_sge_ctxt_flush(9)t4_read_sge_dbqtimers(9)t4_fw_hello(9)t4_fw_bye(9)t4_early_init(9)t4_fw_reset(9)t4_fw_halt(9)t4_fw_restart(9)t4_fw_upgrade(9)t4_fl_pkt_align(9)t4_fixup_host_params(9)t4_fw_initialize(9)t4_query_params_rw(9)t4_set_params_timeout(9)t4_set_params(9)t4_cfg_pfvf(9)t4_alloc_vi(9)t4_free_vi(9)t4_set_rxmode(9)t4_free_encap_mac_filt(9)t4_free_raw_mac_filt(9)t4_alloc_encap_mac_filt(9)t4_alloc_raw_mac_filt(9)t4_alloc_mac_filt(9)t4_free_mac_filt(9)t4_change_mac(9)t4_set_addr_hash(9)t4_enable_vi_params(9)t4_enable_vi(9)t4_enable_pi_params(9)t4_identify_port(9)t4_iq_stop(9)t4_iq_free(9)t4_eth_eq_free(9)t4_ctrl_eq_free(9)t4_ofld_eq_free(9)t4_link_down_rc_str(9)fwcap_to_fwspeed(9)lstatus_to_fwcap(9)t4_handle_get_port_info(9)t4_update_port_info(9)t4_get_link_params(9)t4_handle_fw_rpl(9)init_link_config(9)t4_prep_adapter(9)t4_shutdown_adapter(9)t4_bar2_sge_qregs(9)t4_init_devlog_params(9)t4_init_sge_params(9)t4_init_tp_params(9)t4_filter_field_shift(9)t4_init_portinfo(9)t4_read_cimq_cfg(9)t4_read_cim_ibq(9)t4_read_cim_obq(9)t4_cim_read(9)t4_cim_write(9)t4_cim_read_la(9)t4_tp_read_la(9)t4_idma_monitor_init(9)t4_idma_monitor(9)t4_load_cfg(9)t4_set_vf_mac_acl(9)t4_read_pace_tbl(9)t4_get_tx_sched(9)t4_sge_ctxt_rd_bd(9)t4_i2c_rd(9)t4_set_vlan_acl(9)modify_device_id(9)t4_load_boot(9)t4_flash_bootcfg_addr(9)
π«Ά the sign-off π«Ά
That's the whole page bestie, no cap β and here's the boring-but-important bit so nothing gets lost: this one's sourced from ./drivers/net/ethernet/chelsio... and it's dated October 2026. Periodt. πβ¨π
π¦ 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