igb_phy_forc...duplex_setup(9)
π NAME π
igb_phy_force_speed_duplex_setup β Configure forced PHY speed/duplex
okay so welcome to the igb_phy_forc...duplex_setup(9) page in the Kernel API Manual β yes, the title is literally truncated like that, and no, we're not letting that stop us. This function is here to force PHY speed/duplex, and it's lowkey a whole little checklist. π
β¨ SYNOPSIS β¨
void igb_phy_force_speed_duplex_setup (struct e1000_hw *hw , u16
*phy_ctrl );
πΈ ARGUMENTS πΈ
hwβ pointer to the HW structure.phy_ctrlβ pointer to current value ofPHY_CONTROL.
π DESCRIPTION π
Forces speed and duplex on the PHY by doing the following, in this exact lineup:
- disable flow control
- force speed/duplex on the MAC
- disable auto speed detection
- disable auto-negotiation
- configure duplex
- configure speed
- configure the collision distance
- write configuration to
CTRLregister
Then the important bit: The caller must write to the PHY_CONTROL register for these settings to take affect. (That's the page's spelling, bestie β I'm not fixing it. π)
π SEE ALSO π
Kernel file: ./drivers/net/ethernet/intel/igb/e1000_phy.c
igb_check_reset_block(9)igb_get_phy_id(9)igb_phy_reset_dsp(9)igb_read_phy_reg_mdic(9)igb_write_phy_reg_mdic(9)igb_read_phy_reg_i2c(9)igb_write_phy_reg_i2c(9)igb_read_sfp_data_byte(9)igb_read_phy_reg_igp(9)igb_write_phy_reg_igp(9)igb_copper_link_setup_82580(9)igb_copper_link_setup_m88(9)igb_copper_link_setup_m88_gen2(9)igb_copper_link_setup_igp(9)igb_copper_link_autoneg(9)igb_phy_setup_autoneg(9)igb_setup_copper_link(9)igb_phy_force_speed_duplex_igp(9)igb_phy_force_speed_duplex_m88(9)igb_set_d3_lplu_state(9)igb_check_downshift(9)igb_check_polarity_m88(9)igb_check_polarity_igp(9)igb_wait_autoneg(9)igb_phy_has_link(9)igb_get_cable_length_m88(9)igb_get_cable_length_igp_2(9)igb_get_phy_info_m88(9)igb_get_phy_info_igp(9)igb_phy_sw_reset(9)igb_phy_hw_reset(9)igb_phy_init_script_igp3(9)igb_initialize_M88E1512_phy(9)igb_initialize_M88E1543_phy(9)igb_power_up_phy_copper(9)igb_power_down_phy_copper(9)igb_check_polarity_82580(9)igb_phy_force_speed_duplex_82580(9)igb_get_phy_info_82580(9)igb_get_cable_length_82580(9)igb_set_master_slave_mode(9)
okay that's the whole thing, bestie. Cute sign-off: this page's source/version is ./drivers/net/ethernet/intel/igb, dated October 2026, and it answers to igb_phy_forc...duplex_setup(9). π
β¨
π¦ 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