On 22/05/2025 10:21, Mateusz Kusiak wrote:
Hello,
I was wondering I could get some help understanding the igc/i225 combo.
The issue I'm having is during boot-time, the i225 fails to establish
link multiple times and it takes a long time (2.5s) for successful link
up. I know this because I enabled debug logs in igc driver. I retested
this on newest 6.14.7 kernel and a few switches/routers and the result
seems to be the same. Is this behavior expected?
Log:
[ 4.544381] igc 0000:01:00.0: PCIe PTM not supported by PCIe bus/
controller
[ 4.578713] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Timeout is expired after a phy reset
[ 4.579619] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Masking off all interrupts
[ 4.599721] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Issuing a global reset to MAC
[ 4.599961] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
PHC added
[ 4.607852] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Masking off all interrupts
[ 4.627957] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Issuing a global reset to MAC
[ 4.627962] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Programming MAC Address into RAR[0]
[ 4.627967] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Clearing RAR[1-15]
[ 4.628015] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Zeroing the MTA
[ 4.628041] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Zeroing the UTA
[ 4.628059] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
After fix-ups FlowControl is now = 3
[ 4.628061] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Reconfiguring auto-neg advertisement params
[ 4.628597] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
autoneg_advertised af
[ 4.628598] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Advertise 10mb Half duplex
[ 4.628599] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Advertise 10mb Full duplex
[ 4.628600] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Advertise 100mb Half duplex
[ 4.628600] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Advertise 100mb Full duplex
[ 4.628601] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Advertise 1000mb Full duplex
[ 4.628602] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Advertise 2500mb Full duplex
[ 4.628679] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Auto-Neg Advertising de1
[ 4.629139] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Restarting Auto-Neg
[ 4.630941] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Unable to establish link!!!
[ 4.630942] igc 0000:01:00.0 (unnamed net_device) (uninitialized):
Initializing the Flow Control address, type and timer regs
[ 4.633280] igc 0000:01:00.0: 4.000 Gb/s available PCIe bandwidth
(5.0 GT/s PCIe x1 link)
[ 4.642420] igc 0000:01:00.0 eth0: MAC: <REDACTED>
[ 4.871840] igc 0000:01:00.0 eth0: changing MTU from 1500 to 9000
[ 4.871856] igc 0000:01:00.0 eth0: Masking off all interrupts
[ 4.891959] igc 0000:01:00.0 eth0: Issuing a global reset to MAC
[ 4.891964] igc 0000:01:00.0 eth0: Programming MAC Address into RAR[0]
[ 4.891968] igc 0000:01:00.0 eth0: Clearing RAR[1-15]
[ 4.892016] igc 0000:01:00.0 eth0: Zeroing the MTA
[ 4.892042] igc 0000:01:00.0 eth0: Zeroing the UTA
[ 4.892060] igc 0000:01:00.0 eth0: After fix-ups FlowControl is now = 3
[ 4.892063] igc 0000:01:00.0 eth0: Reconfiguring auto-neg
advertisement params
[ 4.892599] igc 0000:01:00.0 eth0: autoneg_advertised af
[ 4.892600] igc 0000:01:00.0 eth0: Advertise 10mb Half duplex
[ 4.892600] igc 0000:01:00.0 eth0: Advertise 10mb Full duplex
[ 4.892601] igc 0000:01:00.0 eth0: Advertise 100mb Half duplex
[ 4.892602] igc 0000:01:00.0 eth0: Advertise 100mb Full duplex
[ 4.892602] igc 0000:01:00.0 eth0: Advertise 1000mb Full duplex
[ 4.892603] igc 0000:01:00.0 eth0: Advertise 2500mb Full duplex
[ 4.892680] igc 0000:01:00.0 eth0: Auto-Neg Advertising de1
[ 4.893139] igc 0000:01:00.0 eth0: Restarting Auto-Neg
[ 4.894945] igc 0000:01:00.0 eth0: Unable to establish link!!!
[ 4.894946] igc 0000:01:00.0 eth0: Initializing the Flow Control
address, type and timer regs
[ 4.923528] igc 0000:01:00.0 eth0: Timeout is expired after a phy reset
[ 4.923853] igc 0000:01:00.0 eth0: After fix-ups FlowControl is now = 3
[ 4.923857] igc 0000:01:00.0 eth0: Reconfiguring auto-neg
advertisement params
[ 4.924395] igc 0000:01:00.0 eth0: autoneg_advertised af
[ 4.924397] igc 0000:01:00.0 eth0: Advertise 10mb Half duplex
[ 4.924398] igc 0000:01:00.0 eth0: Advertise 10mb Full duplex
[ 4.924400] igc 0000:01:00.0 eth0: Advertise 100mb Half duplex
[ 4.924402] igc 0000:01:00.0 eth0: Advertise 100mb Full duplex
[ 4.924404] igc 0000:01:00.0 eth0: Advertise 1000mb Full duplex
[ 4.924405] igc 0000:01:00.0 eth0: Advertise 2500mb Full duplex
[ 4.924485] igc 0000:01:00.0 eth0: Auto-Neg Advertising de1
[ 4.924946] igc 0000:01:00.0 eth0: Restarting Auto-Neg
[ 4.926752] igc 0000:01:00.0 eth0: Unable to establish link!!!
[ 4.926754] igc 0000:01:00.0 eth0: Initializing the Flow Control
address, type and timer regs
[ 4.926828] igc 0000:01:00.0 eth0: Set default MAC address filter:
address <REDACTED>
[ 4.926830] igc 0000:01:00.0 eth0: MAC address filter set in HW: index 0
[ 7.036586] igc 0000:01:00.0 eth0: Flow Control = FULL.
[ 7.036590] igc 0000:01:00.0 eth0: 100 Mbs,
[ 7.036591] igc 0000:01:00.0 eth0: Full Duplex
[ 7.036593] igc 0000:01:00.0 eth0: hw->fc.current_mode = 3
[ 7.036596] igc 0000:01:00.0 eth0: 100 Mbs,
[ 7.036597] igc 0000:01:00.0 eth0: Full Duplex
[ 7.036604] igc 0000:01:00.0 eth0: 100 Mbs,
[ 7.036605] igc 0000:01:00.0 eth0: Full Duplex
[ 7.036607] igc 0000:01:00.0 eth0: NIC Link is Up 100 Mbps Full
Duplex, Flow Control: RX/TX
Thanks,
Mateusz
Hi Mateusz,
2.5 seconds to establish link seems to be well within the IEEE
specification (4-5 seconds in nominal operation). So, yes, I would say
it is expected.