eeprom_write(9)
πΎ eeprom_write(9) β like, the EEPROM writer era πΎ
okay so bestie, welcome to section 9 of the Kernel API Manual β¨ this one is eeprom_write and it's honestly short and sweet β a little one-job icon. Let's get into it π«Ά
πΈ NAME πΈ
eeprom_write β write to AT93C46 EEPROM π
Like, that's the whole personality. She writes to the AT93C46 EEPROM. Slay.
β¨ SYNOPSIS β¨
void eeprom_write (struct ksz_hw *hw , u8 reg , u16 data );
no cap, that's the exact signature β spaces and all, I'm not touching it π
π ARGUMENTS π
hwβ the hardware instance π like, which hardware we're talking to.regβ the register offset. where in the register map we're aiming, bestie.dataβ the data value. the actual payload going in. the main character of this whole operation π
π¦ DESCRIPTION π¦
so this procedure writes a word to the AT93C46 EEPROM β¨ that's it, that's the vibe. one word, one EEPROM, iconic behaviour.
ngl it's giving "small function, big responsibility" β because like, it's literally writing a word into the AT93C46 EEPROM. periodt. π
π₯ SEE ALSO π₯
okay this is the part where the friend group shows up π literally everyone is here. the kernel file lives at ./drivers/net/ethernet/micrel/ksz884x.c and then there's the whole extended squad of structs and functions, all in section 9:
struct ksz_hw_desc(9), struct ksz_sw_desc(9), struct ksz_dma_buf(9), struct ksz_desc(9), struct ksz_desc_info(9), struct ksz_mac_table(9), struct ksz_vlan_table(9), struct ksz_port_mib(9), struct ksz_port_cfg(9), struct ksz_switch(9), struct ksz_port_info(9), struct ksz_hw(9), struct ksz_port(9), struct ksz_timer_info(9), struct ksz_shared_mem(9), struct ksz_counter_info(9), struct dev_info(9), struct dev_priv(9) β¨
then the hw/sw/port crew: hw_turn_on_intr(9), hw_block_intr(9), sw_r_table(9), sw_w_table_64(9), sw_w_sta_mac_table(9), sw_r_vlan_table(9), port_r_mib_cnt(9), port_r_mib_pkt(9), port_r_cnt(9), port_init_cnt(9), port_cfg(9), port_r8(9), port_r16(9), port_w16(9), sw_chk(9), sw_cfg(9), sw_cfg_broad_storm(9), sw_get_broad_storm(9), sw_dis_broad_storm(9), sw_ena_broad_storm(9), sw_init_broad_storm(9), hw_cfg_broad_storm(9), sw_dis_prio_rate(9), sw_init_prio_rate(9), sw_dis_diffserv(9), sw_dis_802_1p(9), sw_cfg_replace_null_vid(9), sw_cfg_replace_vid(9), sw_cfg_port_based(9), sw_dis_multi_queue(9), sw_init_prio(9), port_get_def_vid(9), sw_init_vlan(9), sw_cfg_port_base_vlan(9), sw_set_addr(9), sw_set_global_ctrl(9), port_set_stp_state(9), sw_clr_sta_mac_table(9), sw_init_stp(9), sw_block_addr(9), hw_r_phy(9), hw_w_phy(9), eeprom_read(9) (her sibling!! π the read counterpart, we stan a duo), port_get_link_speed(9), port_set_link_speed(9), port_force_link_speed(9) π
the wol and hw set: hw_chk_wol_pme_status(9), hw_clr_wol_pme_status(9), hw_cfg_wol_pme(9), hw_cfg_wol(9), hw_set_wol_frame(9), hw_add_wol_arp(9), hw_add_wol_bcast(9), hw_add_wol_mcast(9), hw_add_wol_ucast(9), hw_enable_wol(9), hw_init(9), hw_reset(9), hw_setup(9), hw_setup_intr(9), hw_set_desc_base(9), hw_start_rx(9), hw_stop_rx(9), hw_start_tx(9), hw_stop_tx(9), hw_disable(9), hw_enable(9), hw_alloc_pkt(9), hw_send_pkt(9), hw_set_addr(9), hw_read_addr(9), hw_clr_multicast(9), hw_set_grp_addr(9), hw_set_multicast(9), hw_set_promiscuous(9), sw_enable(9), sw_setup(9) β
timer + descriptor + memory besties: ksz_start_timer(9), ksz_stop_timer(9), ksz_alloc_soft_desc(9), ksz_alloc_desc(9), free_dma_buf(9), ksz_init_rx_buffers(9), ksz_alloc_mem(9), ksz_free_desc(9), ksz_free_buffers(9), ksz_free_mem(9), send_packet(9), transmit_cleanup(9), tx_done(9) π
the netdev era π and it is LONG: netdev_tx(9), netdev_tx_timeout(9), netdev_intr(9), netdev_close(9), netdev_open(9), netdev_query_statistics(9), netdev_set_mac_address(9), netdev_set_rx_mode(9), netdev_ioctl(9), mdio_read(9), mdio_write(9), netdev_get_link_ksettings(9), netdev_set_link_ksettings(9), netdev_nway_reset(9), netdev_get_link(9), netdev_get_drvinfo(9), netdev_get_regs_len(9), netdev_get_regs(9), netdev_get_wol(9), netdev_set_wol(9), netdev_get_msglevel(9), netdev_set_msglevel(9), netdev_get_eeprom_len(9), netdev_get_eeprom(9), netdev_set_eeprom(9), netdev_get_pauseparam(9), netdev_set_pauseparam(9), netdev_get_ringparam(9), netdev_get_strings(9), netdev_get_sset_count(9), netdev_get_ethtool_stats(9), netdev_set_features(9), dev_monitor(9), netdev_init(9) π
iykyk β that's a whole group chat worth of (9) references, and every single one of them made it in π§
fr fr bestie: the whole page is that onevoid eeprom_write (struct ksz_hw *hw , u8 reg , u16 data );prototype plus "writes a word to the AT93C46 EEPROM". no hidden drama, no surprise return value, no exit statuses β it returnsvoid, so there's literally nothing to check. π
and that's the page!! π brought to you by the fine people over in ./drivers/net/ethernet/micrel, dated October 2026 β go drink some water and read eeprom_read(9) next, 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