t4_memory_rw(9)
β¨ t4_memory_rw β Kernel API Manual β¨
okay so bestie, this is the t4_memory_rw(9) page and itβs literally about reading/writing firmware memory through a PCIE memory window. very demure, very kernel-coded. π
π NAME π
t4_memory_rw β read/write EDC 0, EDC 1 or MC via PCIE memory window. no cap, thatβs the whole name vibe. π
π¦ SYNOPSIS π¦
int t4_memory_rw (struct adapter *adap , int win , int mtype , u32 addr
, u32 len , void *hbuf , int dir );
π ARGUMENTS π
adapβ the adapter. the main character struct. πwinβ PCI-E Memory Window to use. pick your window, bestie. πͺmtypeβ memory type:MEM_EDC0,MEM_EDC1orMEM_MC. those are the options, periodt.addrβ address within indicated memory type. the exact spot weβre visiting. πlenβ amount of memory to transfer. how much weβre moving. π¦hbufβ host memory buffer. the host-side hangout spot. πdirβ direction of transferT4_MEMORY_READ(1) orT4_MEMORY_WRITE(0). read or write, choose your fighter. π
πΈ DESCRIPTION πΈ
okay so this function reads/writes an [almost] arbitrary memory region in the firmware. the firmware memory address and the host buffer must be aligned on 32-bit boundaries; the length may be arbitrary. yes, that alignment rule is real and you gotta respect it. π«Ά
the memory is transferred as a raw byte sequence from/to the firmwareβs memory. itβs giving βjust bytes, no extra drama.β β¨
if this memory contains data structures which contain multi-byte integers, itβs the callerβs responsibility to perform appropriate byte order conversions. not the functionβs job, bestie β the caller has to handle that. π
π SEE ALSO π
- Kernel file
./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c 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_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 page, bestie! source/version + date sign-off: ./drivers/net/ethernet/chelsio... Β· October 2026 Β· t4_memory_rw(9) 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