ice_write_nvm_module(9)
π ice_write_nvm_module(9) β like, the actual kernel API manual, bestie π
okay so real quick β this page lives in the Kernel API Manual section 9, and it's all about ice_write_nvm_module, which is giving "I flash your network card's firmware" main character energy. let's get into it β¨
πΈ NAME πΈ
ice_write_nvm_module β write data to an NVM module. that's it, that's the whole vibe π
π¦ SYNOPSIS π¦
int ice_write_nvm_module (struct ice_pf *pf , u16 module , const char
*component , const u8 *image , u32 length , u8 *reset_level , struct
netlink_ext_ack *extack );
β¨ ARGUMENTS β¨
pfβ the PF driver structure π«Ά that's your driver's whole personality right theremoduleβ the module id to program, iykyk πcomponentβ the name of the component being updated. name it, bestie πimageβ buffer of image data to write to the NVM. this is the payload, the moment, the content π₯lengthβ length of the buffer. gotta know how much you're working with fr frreset_levelβ storage for reset level required. it's where the answer goes, not where it comes from πextackβ netlink extended ACK structure π§
π DESCRIPTION π
so here's the tea: this function loops over the data for a given NVM module and programs it in 4 Kb blocks. every single block, one at a time, no skipping π―
after each block is programmed, it notifies the devlink core of progress. like a little "we're at 40% bestie, keep streaming" update π
it loops over a block of data and programs the NVM in 4k block chunks. yes, both 4 Kb and 4k appear in the original and yes we're keeping both, that's just how it is π
β οΈ lowkey important: note this function assumes the caller has acquired the NVM resource. that's on you, not on this function. no cap, if you didn't grab it first, that's a you problem π
π RETURN π
zero on success, or a negative error code on failure. that's the whole range, no in-between β¨
β SEE ALSO β
Kernel file ./drivers/net/ethernet/intel/ice/ice_fw_update.c
ice_send_package_data(9)ice_check_component_response(9)ice_send_component_table(9)ice_write_one_nvm_block(9)ice_erase_nvm_module(9)ice_switch_flash_banks(9)ice_flash_component(9)ice_finalize_update(9)ice_op_pci_match_record(9)ice_get_pending_updates(9)ice_cancel_pending_update(9)ice_devlink_flash_update(9)
okay that's the page!! π this whole thing comes from ./drivers/net/ethernet/intel/ice and the date on it is October 2026 β so yeah, from the future, slay π¦π« go flash something 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