[PATCH v1 00/42] Merge Intel IGC and E1000 drivers, and update E1000 base code

Burakov, Anatoly anatoly.burakov at intel.com
Tue Feb 4 16:35:41 CET 2025


On 03/02/2025 9:18, David Marchand wrote:
> Hello Anatoly,
> 
> On Fri, Jan 31, 2025 at 1:59 PM Anatoly Burakov
> <anatoly.burakov at intel.com> wrote:
>>
>> Intel IGC and E1000 drivers are distinct, but they are actually generated
>> from the same base code. This patchset will merge together all e1000-derived
>> drivers into one common base, with three different ethdev driver
>> frontends (EM, IGB, and IGC).
>>
>> After the merge is done, base code is also updated to latest snapshot.
>>
>> Adam Ludkiewicz (1):
>>    net/e1000/base: add WoL definitions
>>
>> Aleksandr Loktionov (1):
>>    net/e1000/base: fix mac addr hash bit_shift
>>
>> Amir Avivi (1):
>>    net/e1000/base: fix iterator type
>>
>> Anatoly Burakov (13):
>>    net/e1000/base: add initial support for i225
>>    net/e1000/base: add link bringup support for i225
>>    net/e1000/base: add LED blink support for i225
>>    net/e1000/base: add NVM/EEPROM support for i225
>>    net/e1000/base: add LTR support in i225
>>    net/e1000/base: add eee support for i225
>>    net/e1000/base: add misc definitions for i225
>>    net/e1000: merge igc with e1000
>>    net/e1000: add missing i225 devices
>>    net/e1000: add missing hardware support
>>    net/e1000/base: correct minor formatting issues
>>    net/e1000/base: correct mPHY access logic
>>    net/e1000/base: update readme
>>
>> Barbara Skobiej (2):
>>    net/e1000/base: fix reset for 82580
>>    net/e1000/base: fix data type in MAC hash
>>
>> Carolyn Wyborny (1):
>>    net/e1000/base: skip MANC check for 82575
>>
>> Dima Ruinskiy (4):
>>    net/e1000/base: make e1000_access_phy_wakeup_reg_bm non-static
>>    net/e1000/base: make debug prints more informative
>>    net/e1000/base: hardcode bus parameters for ICH8
>>    net/e1000/base: fix unchecked return
>>
>> Evgeny Efimov (1):
>>    net/e1000/base: add EEE common API function
>>
>> Jakub Buchocki (1):
>>    net/e1000/base: fix uninitialized variable usage
>>
>> Marcin Jurczak (1):
>>    net/e1000/base: remove non-inclusive language
>>
>> Nir Efrati (6):
>>    net/e1000/base: workaround for packet loss
>>    net/e1000/base: add definition for EXFWSM register
>>    net/e1000/base: use longer ULP exit timeout on more HW
>>    net/e1000/base: remove redundant access to RO register
>>    net/e1000/base: introduce PHY ID retry mechanism
>>    net/e1000/base: add PHY read/write retry mechanism
>>
>> Pawel Malinowski (1):
>>    net/e1000/base: fix semaphore timeout value
>>
>> Piotr Kubaj (1):
>>    net/e1000/base: rename NVM version variable
>>
>> Piotr Pietruszewski (1):
>>    net/e1000/base: improve code flow in ICH8LAN
>>
>> Przemyslaw Ciesielski (1):
>>    net/e1000/base: fix static analysis warnings
>>
>> Sasha Neftin (4):
>>    net/e1000/base: add queue select definitions
>>    net/e1000/base: add profile information field
>>    net/e1000/base: add LPI counters
>>    net/e1000/base: improve NVM checksum handling
>>
>> Vitaly Lifshits (2):
>>    net/e1000: add support for more I219 devices
>>    net/e1000/base: correct disable k1 logic
>>
>>   drivers/net/intel/e1000/base/README           |    8 +-
>>   .../net/intel/e1000/base/e1000_80003es2lan.c  |   10 +-
>>   drivers/net/intel/e1000/base/e1000_82571.c    |    4 +-
>>   drivers/net/intel/e1000/base/e1000_82575.c    |   21 +-
>>   drivers/net/intel/e1000/base/e1000_82575.h    |   29 -
>>   drivers/net/intel/e1000/base/e1000_api.c      |   76 +-
>>   drivers/net/intel/e1000/base/e1000_api.h      |    4 +-
>>   drivers/net/intel/e1000/base/e1000_base.c     |    3 +-
>>   drivers/net/intel/e1000/base/e1000_defines.h  |  259 +-
>>   drivers/net/intel/e1000/base/e1000_hw.h       |   86 +-
>>   drivers/net/intel/e1000/base/e1000_i210.c     |   14 +-
>>   drivers/net/intel/e1000/base/e1000_i210.h     |    4 +
>>   drivers/net/intel/e1000/base/e1000_i225.c     | 1384 ++++++
>>   drivers/net/intel/e1000/base/e1000_i225.h     |  117 +
>>   drivers/net/intel/e1000/base/e1000_ich8lan.c  |  224 +-
>>   drivers/net/intel/e1000/base/e1000_ich8lan.h  |    3 +-
>>   drivers/net/intel/e1000/base/e1000_mac.c      |   62 +-
>>   drivers/net/intel/e1000/base/e1000_mac.h      |    2 +-
>>   drivers/net/intel/e1000/base/e1000_nvm.c      |    7 +-
>>   drivers/net/intel/e1000/base/e1000_osdep.h    |   33 +-
>>   drivers/net/intel/e1000/base/e1000_phy.c      |  447 +-
>>   drivers/net/intel/e1000/base/e1000_phy.h      |   21 +
>>   drivers/net/intel/e1000/base/e1000_regs.h     |   48 +-
>>   drivers/net/intel/e1000/base/e1000_vf.c       |   14 +-
>>   drivers/net/intel/e1000/base/meson.build      |    1 +
>>   drivers/net/intel/e1000/em_ethdev.c           |   36 +-
>>   drivers/net/intel/e1000/igb_ethdev.c          |    1 +
>>   drivers/net/intel/{igc => e1000}/igc_ethdev.c |  914 ++--
>>   drivers/net/intel/{igc => e1000}/igc_ethdev.h |   32 +-
>>   drivers/net/intel/{igc => e1000}/igc_filter.c |   84 +-
>>   drivers/net/intel/{igc => e1000}/igc_filter.h |    0
>>   drivers/net/intel/{igc => e1000}/igc_flow.c   |    2 +-
>>   drivers/net/intel/{igc => e1000}/igc_flow.h   |    0
>>   drivers/net/intel/{igc => e1000}/igc_logs.c   |    2 +-
>>   drivers/net/intel/{igc => e1000}/igc_txrx.c   |  376 +-
>>   drivers/net/intel/{igc => e1000}/igc_txrx.h   |    6 +-
>>   drivers/net/intel/e1000/meson.build           |   11 +
>>   drivers/net/intel/igc/base/README             |   29 -
>>   drivers/net/intel/igc/base/igc_82571.h        |   36 -
>>   drivers/net/intel/igc/base/igc_82575.h        |  351 --
>>   drivers/net/intel/igc/base/igc_api.c          | 1853 -------
>>   drivers/net/intel/igc/base/igc_api.h          |  111 -
>>   drivers/net/intel/igc/base/igc_base.c         |  190 -
>>   drivers/net/intel/igc/base/igc_base.h         |  127 -
>>   drivers/net/intel/igc/base/igc_defines.h      | 1670 -------
>>   drivers/net/intel/igc/base/igc_hw.h           | 1059 ----
>>   drivers/net/intel/igc/base/igc_i225.c         | 1372 -----
>>   drivers/net/intel/igc/base/igc_i225.h         |  110 -
>>   drivers/net/intel/igc/base/igc_ich8lan.h      |  296 --
>>   drivers/net/intel/igc/base/igc_mac.c          | 2100 --------
>>   drivers/net/intel/igc/base/igc_mac.h          |   64 -
>>   drivers/net/intel/igc/base/igc_manage.c       |  547 --
>>   drivers/net/intel/igc/base/igc_manage.h       |   65 -
>>   drivers/net/intel/igc/base/igc_nvm.c          | 1324 -----
>>   drivers/net/intel/igc/base/igc_nvm.h          |   69 -
>>   drivers/net/intel/igc/base/igc_osdep.c        |   64 -
>>   drivers/net/intel/igc/base/igc_osdep.h        |  163 -
>>   drivers/net/intel/igc/base/igc_phy.c          | 4420 -----------------
>>   drivers/net/intel/igc/base/igc_phy.h          |  337 --
>>   drivers/net/intel/igc/base/igc_regs.h         |  732 ---
>>   drivers/net/intel/igc/base/meson.build        |   19 -
>>   drivers/net/intel/igc/igc_logs.h              |   43 -
>>   drivers/net/intel/igc/meson.build             |   21 -
>>   drivers/net/meson.build                       |    1 -
>>   64 files changed, 3300 insertions(+), 18218 deletions(-)
>>   create mode 100644 drivers/net/intel/e1000/base/e1000_i225.c
>>   create mode 100644 drivers/net/intel/e1000/base/e1000_i225.h
>>   rename drivers/net/intel/{igc => e1000}/igc_ethdev.c (73%)
>>   rename drivers/net/intel/{igc => e1000}/igc_ethdev.h (91%)
>>   rename drivers/net/intel/{igc => e1000}/igc_filter.c (81%)
>>   rename drivers/net/intel/{igc => e1000}/igc_filter.h (100%)
>>   rename drivers/net/intel/{igc => e1000}/igc_flow.c (99%)
>>   rename drivers/net/intel/{igc => e1000}/igc_flow.h (100%)
>>   rename drivers/net/intel/{igc => e1000}/igc_logs.c (90%)
>>   rename drivers/net/intel/{igc => e1000}/igc_txrx.c (87%)
>>   rename drivers/net/intel/{igc => e1000}/igc_txrx.h (97%)
>>   delete mode 100644 drivers/net/intel/igc/base/README
>>   delete mode 100644 drivers/net/intel/igc/base/igc_82571.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_82575.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_api.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_api.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_base.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_base.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_defines.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_hw.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_i225.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_i225.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_ich8lan.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_mac.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_mac.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_manage.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_manage.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_nvm.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_nvm.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_osdep.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_osdep.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_phy.c
>>   delete mode 100644 drivers/net/intel/igc/base/igc_phy.h
>>   delete mode 100644 drivers/net/intel/igc/base/igc_regs.h
>>   delete mode 100644 drivers/net/intel/igc/base/meson.build
>>   delete mode 100644 drivers/net/intel/igc/igc_logs.h
>>   delete mode 100644 drivers/net/intel/igc/meson.build
> 
> Consolidation is a good thing, there are two small issues with this
> series though:
> - the ABI check (as it tracks all .so) reports that librte_net_igc.so
> disappeared: this will need some waiving, like Bruce did in his
> series: https://patchwork.dpdk.org/project/dpdk/patch/20250130151222.944561-2-bruce.richardson@intel.com/
> - with this merge, "users" can't select net/igc compilation anymore
> and need to be aware that igc support now requires enabling net/e1000,
> please update the release notes to make this visible,
> 
> There is also a strange build failure for mingw (see github test report).
> 

MinGW issues were fixed, abigail changes and release notes will come in 
(now) V3.

-- 
Thanks,
Anatoly


More information about the dev mailing list