t4_write_indirect(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– t4_write_indirect โ€” write indirectly addressed registers ๐Ÿ’–

okay so this one is a kernel API manual page, bestie, and it's literally all about pushing a whole little line of values into registers that you can't even poke directly. no cap. let's get into it ๐ŸŽ€


โœจ SYNOPSIS โœจ

void t4_write_indirect (struct adapter *adap , unsigned int addr_reg ,
unsigned int data_reg , const u32 *vals , unsigned int nregs , unsigned
int start_idx );

that's the whole signature, bestie โ€” memorize it and you're iconic ๐Ÿ’…


๐Ÿซถ ARGUMENTS ๐Ÿซถ

  • adap โ€” the adapter. yes. that one. the network adapter you're out here being a main character for ๐ŸŒธ
  • addr_reg โ€” the register that holds the indirect addresses. it's giving "address holder" energy โœจ
  • data_reg โ€” the register holding the value for the indirect registers. so like, the payload register ๐Ÿ˜Œ
  • vals โ€” the values you want to write. plural. many. a whole squad of u32s ๐Ÿ”ฅ
  • nregs โ€” how many indirect registers to write. count 'em, bestie ๐Ÿงฎ
  • start_idx โ€” address of the first indirect register to write. your starting point, your origin story โญ

๐ŸŒˆ DESCRIPTION ๐ŸŒˆ

So here's the tea: t4_write_indirect writes a sequential block of registers that are accessed indirectly through an address/data register pair ๐Ÿฆ‹

like, the hardware is lowkey shy โ€” it won't let you write the registers directly, so you knock on the door with addr_reg, drop the value in data_reg, and the block gets written sequentially from start_idx onward. it's giving very "no direct access, only vibes" energy ๐Ÿ’…


๐Ÿ’œ SEE ALSO ๐Ÿ’œ

the kernel file we're living in is literally ./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c โ€” that's the home base, bestie ๐Ÿ 

and now for the friend group ๐Ÿซถ โ€” the whole extended family of t4_* besties:

t4_wait_op_done_val(9), t4_set_reg_field(9), t4_read_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_vpd_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) ๐Ÿ˜ญ๐Ÿ’–

that's the whole group chat, no cap ๐Ÿซถ


๐ŸŽ€ lowkey reminder bestie: this page lives in the Kernel API Manual section 9, and it's sourced from ./drivers/net/ethernet/chelsio... dated October 2026. slay, that's the whole metadata. periodt ๐Ÿ’…โœจ
๐Ÿ“ฆ where this page comes from