ice_aq_sff_eeprom(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ice_aq_sff_eeprom(9) πŸ’–

okay so welcome to the man page for ice_aq_sff_eeprom, bestie β€” it lives in section 9 of the Kernel API Manual and it's all about poking at the SFF EEPROM on an Intel ice NIC. pull up a chair πŸŽ€


✨ NAME ✨

ice_aq_sff_eeprom β€”

and that's it. that's the whole name line. the original literally just gives you the function name, a dash, and then… nothing 😭 no one-line summary, no blurb, no nothing. so we move on, no cap.


🌸 SYNOPSIS 🌸

int ice_aq_sff_eeprom (struct ice_hw *hw , u16 lport , u8 bus_addr , u16
mem_addr , u8 page , u8 set_page , u8 *data , u8 length , bool write ,
struct ice_sq_cd *cd );

that's the whole signature, exactly as written β€” don't let me catch you "tidying" it up πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

okay so this function takes a lot of arguments and every single one matters, so let's go one by one, no skipping πŸ™ˆ

  • hw β€” pointer to the HW struct. yes queen, the hardware struct, the main character of the whole thing πŸ‘‘
  • lport β€” bits [7:0] = logical port, bit [8] = logical port valid. so the low bits are the port itself and that top bit is the "hey, this port is actually valid" flag ✨
  • bus_addr β€” I2C bus address of the eeprom (typically 0xA0, 0=topo default). so 0xA0 is the usual vibe, and 0 means you want the topo default 🫢
  • mem_addr β€” I2C offset. lower 8 bits for address, 8 upper bits zero padding. so the real address lives down in the low byte and the top byte is just padding, lowkey decorative πŸ’€
  • page β€” QSFP page. yep, that's the page 🌸
  • set_page β€” set or ignore the page. your call: actually apply it, or just act like it's not there πŸ™ˆ
  • data β€” pointer to data buffer to be read/written to the I2C device. the actual payload, the whole point πŸ“
  • length β€” 1-16 for read, 1 for write. so reads can be up to 16 bytes but writes are one byte only, periodt πŸ’…
  • write β€” 0 read, 1 for write. the switch between "gimme the tea" and "here's the tea" πŸ”₯
  • cd β€” pointer to command details structure or NULL. optional detail-holder, NULL is totally fine πŸ’œ

πŸ’« DESCRIPTION πŸ’«

Read/Write SFF EEPROM (0x06EE)

that's the entire description in the original, bestie β€” one line, and the opcode 0x06EE is doing all the heavy lifting. it's giving "minimal effort, maximum mystique" 😭


🌈 SEE ALSO 🌈

alright, so this is the part where the original just dumps the entire neighborhood group chat on you. kernel file: ./drivers/net/ethernet/intel/ice/ice_common.c β€” and then every friend of the family, in the exact order they appeared, because we do NOT skip anyone in this house πŸ’–

okay that's everyone, no one left out, we are nothing if not thorough πŸ’…βœ¨


heads up bestie: that's a genuinely long list, so if you're hunting for a specific function, just ctrl-f the name and let the terminal do the work 🫢

and that's the whole page!! πŸŽ€ this little cutie comes to you from the kernel source tree at ./drivers/net/ethernet/intel/ice, dated October 2026, wearing the very stylish identifier ice_aq_sff_eeprom(9) β€” go read the source, it's iconic, periodt πŸ’–πŸ”₯

πŸ“¦ where this page comes from