ice_aq_read_nvm(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ice_aq_read_nvm(9) β€” the kernel API manual, but make it cute πŸŽ€

okay so bestie, welcome to the ice_aq_read_nvm page β€” it lives in the Kernel API Manual and it's genuinely iconic. grab a snack, we're reading the NVM together πŸ¦‹


✨ NAME ✨

ice_aq_read_nvm β€” yes, that's the whole name, and honestly? it ate. this is the function that reads the NVM using the admin queue commands (0x0701). main character energy fr fr πŸ’…


🌸 SYNOPSIS 🌸

int ice_aq_read_nvm (struct ice_hw *hw , u16 module_typeid , u32 offset
, u16 length , void *data , bool last_command , bool read_shadow_ram ,
struct ice_sq_cd *cd );

that's the whole signature, copied exactly, no cap. seven arguments, one return int, let's get into it πŸ‘‘


🫢 ARGUMENTS 🫢

  • hw β€” pointer to the HW struct. your hardware bestie, the whole context of the operation ✨
  • module_typeid β€” module pointer location in words from the NVM beginning. words, not bytes, bestie, don't mix it up πŸ™ˆ
  • offset β€” byte offset from the module beginning. like an address but for how far into the module you're looking 🌸
  • length β€” length of the section to be read (in bytes from the offset). how much you're grabbing, in bytes πŸŽ€
  • data β€” command buffer (size [bytes] = length). so the buffer has to be exactly as big as length bytes, that's the vibe check βœ”οΈ
  • last_command β€” tells if this is the last command in a series. like the final text in a group chat β€” flags when you're done 🫑
  • read_shadow_ram β€” tell if this is a shadow RAM read. yes, shadow RAM, very mysterious, very spooky-season πŸ‘»
  • cd β€” pointer to command details structure or NULL. pass NULL if you don't have one, it's literally fine πŸ’œ

πŸ”₯ DESCRIPTION πŸ”₯

Read the NVM using the admin queue commands (0x0701). that's the whole lore β€” it reads the NVM, it does it through the admin queue commands, and the opcode is 0x0701. periodt πŸ’…

ngl this one's short and sweet, so there's no chaos to warn you about β€” just keep your length matching your data buffer size and you're golden 🧚

🌈 SEE ALSO 🌈

Kernel file: ./drivers/net/ethernet/intel/ice/ice_nvm.c β€” that's where the code actually lives, go peek πŸ“

and the whole friend group of functions, all listed, all loved:


that's the whole page bestie, you ate that 🫢✨ mwah πŸ’‹

sign-off time: this little masterpiece comes from ./drivers/net/ethernet/intel/ice, dated October 2026 πŸŽ€ and that's on the Kernel API Manual, ice_aq_read_nvm(9), iykyk πŸ’œπŸŒŸ

πŸ“¦ where this page comes from