STRUCT ETHTOOL_MODULE_EEPROM(9)
π NAME
struct ethtool_module_eeprom β the read / write parameters for plug-in module EEPROM, bestie β¨
Like, this is the little struct that carries all the deets you need when you're talking to a plug-in module's EEPROM. She's giving "backstage pass to the memory" energy, no cap π
πΈ SYNOPSIS
struct ethtool_module_eeprom {
u32 offset;
u32 length;
u8 page;
u8 bank;
u8 i2c_address;
u8 *data;
};
There she is ππ the whole squad, in order, exactly like that.
π¦ Members
offsetβ okay so this one is lowkey the main character π. Whenoffsetis0-127, it's used as an address to the Lower Memory (and heads up,pagemust be0in that case, fr fr). Otherwise β like, any other value β it's used as an address to the Upper Memory. Two modes, one field, she contains multitudes β¨lengthβ the number of bytes to read / write. That's it, that's the whole vibe πpageβ the page number. Yep. Just the page number πbankβ the bank number, if supported by EEPROM spec. Key word: if π some EEPROMs simply do not have bank energy.i2c_addressβ the I2C address of a page. A value less than0x7fis expected β and ngl, most EEPROMs use0x50or0x51β those are the iconic ones, iykyk πdataβ pointer to a buffer with EEPROM data oflengthsize. So like, the actual payload, the real content, the reason we're all here π«Ά
π§ SEE ALSO
Kernel file ./include/linux/ethtool.h β and the whole extended friend group π:
enum ethtool_phys_id_state(9), struct kernel_ethtool_ringparam(9), enum ethtool_supported_ring_param(9), ethtool_rxfh_indir_default(9), struct ethtool_rxfh_context(9), ethtool_link_ksettings_zero_link_mode(9), ethtool_link_ksettings_add_link_mode(9), ethtool_link_ksettings_del_link_mode(9), ethtool_link_ksettings_test_link_mode(9), ethtool_intersect_link_masks(9), struct ethtool_phy_stats(9), struct ethtool_pause_stats(9), struct ethtool_fec_hist_range(9), struct ethtool_fec_stats(9), struct ethtool_rmon_hist_range(9), struct ethtool_rmon_stats(9), struct ethtool_ts_stats(9), struct ethtool_module_power_mode_params(9), struct ethtool_mm_state(9), struct ethtool_mm_cfg(9), struct ethtool_mm_stats(9), struct ethtool_mmsv_ops(9), struct ethtool_mmsv(9), struct ethtool_rxfh_param(9), struct ethtool_rxfh_fields(9), struct kernel_ethtool_ts_info(9), struct ethtool_ops(9), struct ethtool_netdev_state(9), struct ethtool_phy_ops(9), ethtool_set_ethtool_phy_ops(9), ethtool_params_from_link_mode(9), ethtool_get_phc_vclocks(9), ethtool_mm_frag_size_add_to_min(9), ethtool_mm_frag_size_min_to_add(9), ethtool_get_ts_info_by_layer(9), ethtool_sprintf(9), ethtool_puts(9), ethtool_cpy(9)
okay that's the whole page, you ate that π«Άβ¨ this one lives in ./include/linux, dated October 2026, and she's filed under struct ethto...odule_eeprom(9) (yes the name got truncated, she's mysterious like that ππ
). go read your EEPROMs responsibly, mwah π
π¦ 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