i40e_aq_erase_nvm(9)
πΎ i40e_aq_erase_nvm β bestie's guide to nuking an NVM sector β¨
okay so this is a page from the Kernel API Manual (section 9, the kernel-api girlies π) and it's all about i40e_aq_erase_nvm. Deep breath, it's literally just one function, you got this π«Ά
π NAME
so the original manpage leaves this completely blank after i40e_aq_erase_nvm - π which is giving "left on read" energy, but ngl the function name tells you everything: it erases a chunk of NVM. That's the vibe. Periodt.
β¨ SYNOPSIS
int i40e_aq_erase_nvm (struct i40e_hw *hw , u8 module_pointer , u32
offset , u16 length , bool last_command , struct i40e_asq_cmd_details
*cmd_details );
that's the whole signature, copy it exactly, do not freestyle it π
π§Έ ARGUMENTS
hwβ pointer to thehwstruct. yes, the whole hardware struct. she's the main character of this entire driver π₯module_pointerβ the module pointer location, measured in words from the beginning of the NVM. words, not bytes, ok bestie? don't come at me with bytes πoffsetβ the offset within the module, and it's expressed in 4 KB units from the module's beginning. so it's giving chunky granularity, everything moves in 4 KB steps π¦lengthβ how long the section you're erasing is, also expressed in 4 KB. solengthΓ 4 KB = how much NVM is about to get got πlast_commandβ aboolthat tells the firmware if this is the last command in a series. it's the "and that's a wrap" flag π¬cmd_detailsβ pointer to the command details structure, orNULL. both are valid, we love options β¨
πΈ DESCRIPTION
Erase the NVM sector using the admin queue commands.
that's it. that's the whole description. short and iconic π
real talk though: this is an erase, not a read. once that sector is gone it's gone, so make sure yourmodule_pointer,offset, andlengthmath is actually correct before you send this one π¨
π SEE ALSO
look, this girl knows everyone. the whole friend group, in the original order, no cap π«Ά
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_common.ci40e_set_mac_type(9)i40e_debug_aq(9)i40e_check_asq_alive(9)i40e_aq_queue_shutdown(9)i40e_aq_get_set_rss_lut(9)i40e_aq_get_rss_lut(9)i40e_aq_set_rss_lut(9)i40e_aq_get_set_rss_key(9)i40e_aq_get_rss_key(9)i40e_aq_set_rss_key(9)i40e_init_shared_code(9)i40e_aq_mac_address_read(9)i40e_aq_mac_address_write(9)i40e_get_mac_addr(9)i40e_get_port_mac_addr(9)i40e_pre_tx_queue_cfg(9)i40e_get_pba_string(9)i40e_get_media_type(9)i40e_poll_globr(9)i40e_pf_reset(9)i40e_clear_hw(9)i40e_clear_pxe_mode(9)i40e_led_is_mine(9)i40e_led_get(9)i40e_led_set(9)i40e_aq_get_phy_capabilities(9)i40e_aq_set_phy_config(9)i40e_set_fc(9)i40e_aq_set_mac_config(9)i40e_aq_clear_pxe_mode(9)i40e_aq_set_link_restart_an(9)i40e_aq_get_link_info(9)i40e_aq_set_phy_int_mask(9)i40e_aq_set_mac_loopback(9)i40e_aq_set_phy_debug(9)i40e_aq_add_vsi(9)i40e_aq_set_default_vsi(9)i40e_aq_clear_default_vsi(9)i40e_aq_set_vsi_unicast_promiscuous(9)i40e_aq_set_vsi_multicast_promiscuous(9)i40e_aq_set_vsi_mc_promisc_on_vlan(9)i40e_aq_set_vsi_uc_promisc_on_vlan(9)i40e_aq_set_vsi_bc_promisc_on_vlan(9)i40e_aq_set_vsi_broadcast(9)i40e_aq_get_vsi_params(9)i40e_aq_update_vsi_params(9)i40e_aq_get_switch_config(9)i40e_aq_set_switch_config(9)i40e_aq_get_firmware_version(9)i40e_aq_send_driver_version(9)i40e_get_link_status(9)i40e_update_link_info(9)i40e_aq_add_veb(9)i40e_aq_get_veb_parameters(9)i40e_prepare_add_macvlan(9)i40e_aq_add_macvlan(9)i40e_aq_add_macvlan_v2(9)i40e_aq_remove_macvlan(9)i40e_aq_remove_macvlan_v2(9)i40e_aq_send_msg_to_vf(9)i40e_aq_debug_read_register(9)i40e_aq_debug_write_register(9)i40e_aq_request_resource(9)i40e_aq_release_resource(9)i40e_aq_read_nvm(9)i40e_parse_discover_capabilities(9)i40e_aq_discover_capabilities(9)i40e_aq_update_nvm(9)i40e_aq_get_lldp_mib(9)i40e_aq_set_lldp_mib(9)i40e_aq_cfg_lldp_mib_change_event(9)i40e_aq_stop_lldp(9)i40e_aq_start_lldp(9)i40e_aq_set_dcb_parameters(9)i40e_aq_get_cee_dcb_config(9)i40e_aq_add_udp_tunnel(9)i40e_aq_del_udp_tunnel(9)i40e_aq_delete_element(9)i40e_aq_dcb_updated(9)i40e_aq_tx_sched_cmd(9)i40e_aq_config_vsi_bw_limit(9)i40e_aq_config_vsi_tc_bw(9)i40e_aq_config_switch_comp_ets(9)i40e_aq_config_switch_comp_bw_config(9)i40e_aq_query_vsi_bw_config(9)i40e_aq_query_vsi_ets_sla_config(9)i40e_aq_query_switch_comp_ets_config(9)i40e_aq_query_port_ets_config(9)i40e_aq_query_switch_comp_bw_config(9)i40e_validate_filter_settings(9)i40e_set_filter_control(9)i40e_aq_add_rem_control_packet_filter(9)i40e_add_filter_to_drop_tx_flow_control_frames(9)i40e_aq_alternate_read(9)i40e_aq_suspend_port_tx(9)i40e_aq_resume_port_tx(9)i40e_set_pci_config_data(9)i40e_aq_debug_dump(9)i40e_read_bw_from_alt_ram(9)i40e_aq_configure_partition_bw(9)i40e_read_phy_register_clause22(9)i40e_write_phy_register_clause22(9)i40e_read_phy_register_clause45(9)i40e_write_phy_register_clause45(9)i40e_get_phy_address(9)i40e_led_get_reg(9)i40e_led_set_reg(9)i40e_led_get_phy(9)i40e_led_set_phy(9)i40e_aq_rx_ctl_read_register(9)i40e_read_rx_ctl(9)i40e_aq_rx_ctl_write_register(9)i40e_write_rx_ctl(9)i40e_mdio_if_number_selection(9)i40e_aq_set_phy_register_ext(9)i40e_aq_get_phy_register_ext(9)i40e_aq_write_ddp(9)i40e_aq_get_ddp_list(9)i40e_find_segment_in_package(9)i40e_ddp_exec_aq_section(9)i40e_validate_profile(9)i40e_write_profile(9)i40e_rollback_profile(9)i40e_aq_add_cloud_filters(9)i40e_aq_add_cloud_filters_bb(9)i40e_aq_rem_cloud_filters(9)i40e_aq_rem_cloud_filters_bb(9)
and that's the whole page bestie π this one lives in ./drivers/net/ethernet/intel/i40e, it's dated October 2026, and it still answers to i40e_aq_erase_nvm(9) β go erase responsibly, mwah ππ¦
π¦ 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