__i40e_read_nvm_buffer(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– __i40e_read_nvm_buffer(9) πŸ’–

okay so real talk, this is a page straight out of the Kernel API Manual, and it's all about reading the NVM buffer... except it does NOT grab the lock for you, bestie. That's your job. Let's get into it 🫢


✨ SYNOPSIS ✨

int __i40e_read_nvm_buffer (struct i40e_hw *hw , u16 offset , u16 *words
, u16 *data );

🌸 ARGUMENTS 🌸

  • hw β€” pointer to the HW structure πŸ’… like, the whole hardware vibe lives here
  • offset β€” offset of the Shadow RAM word to read. range is 0x000000 – 0x001FFF, no cap
  • words β€” this one's doing double duty πŸŽ€ (in) number of words to read; (out) number of words actually read. she contains multitudes
  • data β€” the words read from the Shadow RAM. the actual payload, the main character

πŸ¦‹ DESCRIPTION πŸ¦‹

So what does it do? It reads 16 bit words (that's the data buffer, babes) from the SR using the i40e_read_nvm_srrd method. That's it. That's the whole thing. ✨

πŸ’€ the big warning, fr fr: the caller must acquire the lock. this function does NOT do it for you. it's the double-underscore version for a reason, iykyk. go call your lock-acquiring bestie first or things get cursed πŸ™ˆ

πŸŽ€ SEE ALSO πŸŽ€

  • the kernel file itself, go read it, it's giving lore: ./drivers/net/ethernet/intel/i40e/i40e_nvm.c

and the entire i40e NVM friend group πŸ‘‘ (they all showed up to the group chat):

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_aq(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)


anyway that's the page, mwah πŸ’‹ this one came from ./drivers/net/ethernet/intel/i40e, dated October 2026, and it's filed under __i40e_read_nvm_buffer(9) β€” go read the source, it ate, no cap 🌈⭐

πŸ“¦ where this page comes from