e1000_set_page_igp(9)
π e1000_set_page_igp β a little glow-up for your IGP-ish PHYs
okay so bestie, this one lives in the Kernel API Manual, section 9, and it's called e1000_set_page_igp. Yes the whole page is literally named after the function, we love a title that eats. π
β¨ NAME β¨
e1000_set_page_igp β Set page as on IGP-like PHY(s)
no cap, that's the whole pitch. it sets the page. on IGP-like PHYs. slay. π
πΈ SYNOPSIS πΈ
s32 e1000_set_page_igp (struct e1000_hw *hw , u16 page );
look at her. returns an s32, takes two args, done. main character energy fr fr. β¨
π¦ ARGUMENTS π¦
hwβ pointer to the HW structure. this is your hardware bestie, the one you're doing all this for π«Άpageβ the page you wanna set (shifted left when necessary). yep, shifted left when necessary β the function is not doing that bit for you, okay, read the room π
π DESCRIPTION π
okay so here's the tea π: this sets the PHY page you need for PHY register access. that's it, that's the job.
it assumes the semaphore is already acquired. so like, don't just roll up and call this without the semaphore, that's not the vibe, that's a bug. π
and heads up, and this is the important part so listen up bestie π: this function sets phy.addr to 1, which means the caller must set it appropriately (if necessary) after this function returns. the function is out here changing your address on you and not putting it back. iconic but also kind of rude. anyway, you've been warned π
ngl, the two things to remember: semaphore already acquired, andphy.addrgets set to1so you fix it afterwards if you need to. periodt. β¨
π₯ SEE ALSO π₯
the friend group. the whole group chat. every single one of them is here and yes we're tagging everybody π:
- Kernel file
./drivers/net/ethernet/intel/e1000e/phy.c e1000e_check_reset_block_generic(9),e1000e_get_phy_id(9),e1000e_phy_reset_dsp(9),e1000e_read_phy_reg_mdic(9),e1000e_write_phy_reg_mdic(9),e1000e_read_phy_reg_m88(9),e1000e_write_phy_reg_m88(9),__e1000e_read_phy_reg_igp(9),e1000e_read_phy_reg_igp(9),e1000e_read_phy_reg_igp_locked(9),__e1000e_write_phy_reg_igp(9),e1000e_write_phy_reg_igp(9),e1000e_write_phy_reg_igp_locked(9),__e1000_read_kmrn_reg(9),e1000e_read_kmrn_reg(9),e1000e_read_kmrn_reg_locked(9),__e1000_write_kmrn_reg(9),e1000e_write_kmrn_reg(9),e1000e_write_kmrn_reg_locked(9),e1000_set_master_slave_mode(9),e1000_copper_link_setup_82577(9),e1000e_copper_link_setup_m88(9),e1000e_copper_link_setup_igp(9),e1000_phy_setup_autoneg(9),e1000_copper_link_autoneg(9),e1000e_setup_copper_link(9),e1000e_phy_force_speed_duplex_igp(9),e1000e_phy_force_speed_duplex_m88(9),e1000_phy_force_speed_duplex_ife(9),e1000e_phy_force_speed_duplex_setup(9),e1000e_set_d3_lplu_state(9),e1000e_check_downshift(9),e1000_check_polarity_m88(9),e1000_check_polarity_igp(9),e1000_check_polarity_ife(9),e1000_wait_autoneg(9),e1000e_phy_has_link_generic(9),e1000e_get_cable_length_m88(9),e1000e_get_cable_length_igp_2(9),e1000e_get_phy_info_m88(9),e1000e_get_phy_info_igp(9),e1000_get_phy_info_ife(9),e1000e_phy_sw_reset(9),e1000e_phy_hw_reset_generic(9),e1000e_get_cfg_done_generic(9),e1000e_phy_init_script_igp3(9),e1000e_get_phy_type_from_id(9),e1000e_determine_phy_address(9),e1000_get_phy_addr_for_bm_page(9),e1000e_write_phy_reg_bm(9),e1000e_read_phy_reg_bm(9),e1000e_read_phy_reg_bm2(9),e1000e_write_phy_reg_bm2(9),e1000_enable_phy_wakeup_reg_access_bm(9),e1000_disable_phy_wakeup_reg_access_bm(9),e1000_access_phy_wakeup_reg_bm(9),e1000_power_up_phy_copper(9),e1000_power_down_phy_copper(9),__e1000_read_phy_reg_hv(9),e1000_read_phy_reg_hv(9),e1000_read_phy_reg_hv_locked(9),e1000_read_phy_reg_page_hv(9),__e1000_write_phy_reg_hv(9),e1000_write_phy_reg_hv(9),e1000_write_phy_reg_hv_locked(9),e1000_write_phy_reg_page_hv(9),e1000_get_phy_addr_for_hv_page(9),e1000_access_phy_debug_regs_hv(9),e1000_link_stall_workaround_hv(9),e1000_check_polarity_82577(9),e1000_phy_force_speed_duplex_82577(9),e1000_get_phy_info_82577(9),e1000_get_cable_length_82577(9)
okay that's everyone, nobody got left out, we ate that list UP π½οΈβ¨
and that's the page bestie! π§ source/version is the Kernel API Manual, date is October 2026, and the footer path was ./drivers/net/ethernet/intel/e... (yes it's truncated, no I can't fix it, that's just how the footer was born π). go set some pages, and remember to put phy.addr back π
π¦ 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