i40e_read_nvm_buffer_aq(9)
π i40e_read_nvm_buffer_aq(9) β from the Kernel API Manual
okay so bestie, welcome to the glow-up of i40e_read_nvm_buffer_aq(9), straight out of the Kernel API Manual. this one's a little NIC function that reads stuff out of Shadow RAM through the AQ, and honestly? she's lowkey iconic for it. let's get into it β¨
πΈ NAME
i40e_read_nvm_buffer_aq β reads a Shadow RAM buffer via AQ. that's it, that's the whole vibe π
β¨ SYNOPSIS
int i40e_read_nvm_buffer_aq (struct i40e_hw *hw , u16 offset , u16
*words , u16 *data );
like, four args, one int back. she's not complicated and we love that for her π
π«Ά ARGUMENTS
hwβ pointer to the HW structure. yes bestie, the whole hardware situation comes through here πoffsetβ the offset of the Shadow RAM word to read, valid range0x000000β0x001FFF. don't go outside that range fr fr, it's giving "stay in your lane" πwordsβ sneaky dual-purpose param, pay attention: (in) it's the number of words to read; (out) it's the number of words actually read. so she goes in with one number and comes out with another π that's main character energy right theredataβ the words that got read out of the Shadow RAM. this is where the goodies land π
π₯ DESCRIPTION
so the way that this works: she reads 16 bit words (that's your data buffer, babes) out of the SR using the i40e_read_nvm_aq method. no cap, that's the mechanism.
and the order of operations? chef's kiss β the buffer read is preceded by the NVM ownership take, and followed by the release. so she takes ownership, does her little read, then gives it back like a considerate queen. graceful. polite. iconic. π
ngl, the take-ownership-and-release sandwich is the whole plot here β no buffer read happens without the NVM ownership take coming first π§
π SEE ALSO
okay this list is long long, so buckle up bestie β every single one of these is a real reference, don't come for me:
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_nvm.c
i40e_init_nvm(9)i40e_acquire_nvm(9)i40e_release_nvm(9)i40e_poll_sr_srctl_done_bit(9)i40e_read_nvm_word_srctl(9)i40e_read_nvm_aq(9)i40e_read_nvm_word_aq(9)__i40e_read_nvm_word(9)i40e_read_nvm_word(9)i40e_read_nvm_module_data(9)i40e_read_nvm_buffer_srctl(9)__i40e_read_nvm_buffer(9)i40e_read_nvm_buffer(9)i40e_write_nvm_aq(9)i40e_calc_nvm_checksum(9)i40e_update_nvm_checksum(9)i40e_validate_nvm_checksum(9)i40e_nvmupd_validate_command(9)i40e_nvmupd_nvm_erase(9)i40e_nvmupd_nvm_write(9)i40e_nvmupd_nvm_read(9)i40e_nvmupd_exec_aq(9)i40e_nvmupd_get_aq_result(9)i40e_nvmupd_get_aq_event(9)i40e_nvmupd_state_init(9)i40e_nvmupd_state_reading(9)i40e_nvmupd_state_writing(9)i40e_nvmupd_command(9)i40e_nvmupd_clear_wait_state(9)i40e_nvmupd_check_wait_event(9)
and that's the whole page, bestie β go read some Shadow RAM, you absolute legend π¦
mwah π this lil sign-off comes to you from the source at <code>./drivers/net/ethernet/intel/i40e</code>, dated <strong>October 2026</strong> β born in the Kernel API Manual, raised on vibes. 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