ixgbe_write_nvm_module(9)
π ixgbe_write_nvm_module β the kernel API manual, bestie edition β¨
okay so real talk, this is a page from the Kernel API Manual, and today's main character is ixgbe_write_nvm_module(9). she writes data to an NVM module. that's it, that's the vibe. let's get into it π
β¨ NAME β¨
ixgbe_write_nvm_module β write data to an NVM module π¦
πΈ SYNOPSIS πΈ
int ixgbe_write_nvm_module (struct ixgbe_adapter *adapter , u16 module ,
const char *component , const u8 *image , u32 length , struct
netlink_ext_ack *extack );
like, that's the whole call signature, copied exactly, no notes π
π«Ά ARGUMENTS π«Ά
adapterβ the PF driver structure. the whole personality of this call tbh.moduleβ the module id to program. which one are we doing? this tells us π₯componentβ the name of the component being updated. name drop, periodt.imageβ buffer of image data to write to the NVM. the actual bytes, the moment, the ~content~.lengthβ length of the buffer. how much of that image we're actually taking, no cap.extackβ netlink extended ACK structure. the receipts structure, fr fr.
π DESCRIPTION π
so what she does is: loop over the data for a given NVM module and program it in 4 Kb blocks. yes bestie, blocks. and after each block is programmed, she notifies devlink core of progress β so everyone in the group chat knows how far along we are ππ
then (and yes this is said again, she's thorough): she loops over a block of data and programs the NVM in 4k block chunks. iconic of her to restate it ngl.
β οΈ okay this is the important one: this function assumes the caller has acquired the NVM resource. that's on you, not on her. she will not be checking. do not come for her if you skipped that step π
β RETURN β
0 on success, or a negative error code on failure. slay or don't slay, there's no in between π
π SEE ALSO π
kernel file: ./drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c
and the whole friend group, in order, exactly as listed:
ixgbe_send_package_data(9)ixgbe_check_component_response(9)ixgbe_send_component_table(9)ixgbe_write_one_nvm_block(9)ixgbe_erase_nvm_module(9)ixgbe_switch_flash_banks(9)ixgbe_flash_component(9)ixgbe_finalize_update(9)ixgbe_get_pending_updates(9)ixgbe_cancel_pending_update(9)ixgbe_flash_pldm_image(9)
and that's the page!! π source path is ./drivers/net/ethernet/intel/i... (truncated by the terminal, not by me, blame the rendering π
), dated October 2026, and the page itself is ixgbe_write_nvm_module(9). mwah, go write some NVM blocks responsibly, ily π«Άβ¨
π¦ 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