On Mon, Mar 19, 2018 at 10:23 PM, Alexander Duyck <alexander.du...@gmail.com> wrote: > On Mon, Mar 19, 2018 at 12:31 PM, Ran Shalit <ransha...@gmail.com> wrote: >> On Mon, Mar 19, 2018 at 6:27 PM, Alexander Duyck >> <alexander.du...@gmail.com> wrote: >>> On Mon, Mar 19, 2018 at 9:07 AM, Ran Shalit <ransha...@gmail.com> wrote: >>>> Hello, >>>> >>>> >>>> >>>> I am using igb driver: >>>> >>>> cat output/build/linux-4.10.17/.config | grep IGB >>>> >>>> CONFIG_IGB=y >>>> >>>> CONFIG_IGB_HWMON=y >>>> >>>> CONFIG_IGBVF=y >>>> >>>> >>>> >>>> But every boot is takes a lot of time till ethernet is ready. >>>> >>>> I try to disable auto negotiation, but nothing helps yet, the device >>>> resist, and keep resets phy. >>>> >>>> adapter->fc_autoneg = false; >>>> >>>> hw->mac.autoneg = false; >>>> >>>> hw->phy.autoneg_advertised = 0; >>>> >>>> >>>> I tried more flags, but nothing helps. >>>> The phy always disabled/reset at boot (led is off for 1 second and then >>>> on). >>>> >>>> Is there a way to disable auto-negotiation with igb driver ? >>>> I use buildroot with kernel 4.10.81. >>>> >>>> >>>> Thank you for any suggestion, >>>> >>>> ran >>> >>> Instead of trying to disable it in the driver why not just change your >>> system configuration to disable it? You should be able to configure >>> things in either Network Manager, or via the network init scripts so >>> that you instead just used a forced speed/duplex combination. If >>> nothing else you can go through and drop support for any other >>> advertised speed/duplex and that should improve the speed of autoneg >>> itself. >>> >> >> I think I tried it and it did not work, but I shall try again. >> Where should I put it ? in init.d startup scripts ? >> I think I tried, and yet , I have seen that in reset, the leds of the >> phy are always turned off for a ~1.5 second and then on again. >> This is actually what I am trying to overcome, this strange reset of >> phy every powerup. > > So it sounds like what you may want to disable would not be the phy > autoneg, but the phy reset itself. If that is what you are looking for > then you might try modifying igb_reset_phy, or at least when we invoke > it in igb_power_up_link. You could look at adding a private flag to > the igb driver to disable it for your use case if that is the issue. >
I tried many trials, but I always got the phy led turned off, and then turned on, no matter what I did. I would also add that my actual goal is to minimize the initialization time of the igb, because we need fast boot time. 1. I quite certainly tried to comment out igb_reset_phy() in the igb_power_up_link(), but I got the same result again. void igb_power_up_link(struct igb_adapter *adapter) { // igb_reset_phy(&adapter->hw); printk("ranran igb_power_up_link\n"); if (adapter->hw.phy.media_type == e1000_media_type_copper) igb_power_up_phy_copper(&adapter->hw); else igb_power_up_serdes_link_82575(&adapter->hw); igb_setup_link(&adapter->hw); } 2. I also tried to return from igb_power_up_link(), without doing anything, but then ethernet was not functioning at all. 3. I also tried to return from igb_phy_sw_reset(), igb_phy_hw_reset at the start of function. I wish there was simple (and functioning) way to do that in igb. I use recent kernel (4.10) , yet, using auto negotiation and no reset phy after powerup, seems to be quite complex task to achieve with this driver. There aren't flags or compilation flags which could have helped here. Thank you, ran >>> You could refer to something like this for more information: >>> https://www.shellhacks.com/change-speed-duplex-ethernet-card-linux/ >>> >>> Thanks. >>> >>> - Alex >> >> Thank you very much, >> ran > > Now I am not so certain if this will solve you issue. What you may > want to do instead is take a look at the function igb_power_up_link in > igb_main.c and possibly consider adding a flag check to allow you to > disable it on the systems you need to disable it on, or if this is for > just one driver you could comment the line out and see if that will > solve the issue. > > Thanks. > > - Alex ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired