[PATCH v1 00/42] Merge Intel IGC and E1000 drivers, and update E1000 base code
David Marchand
david.marchand at redhat.com
Wed Feb 5 11:05:26 CET 2025
On Tue, Feb 4, 2025 at 4:36 PM Burakov, Anatoly
<anatoly.burakov at intel.com> wrote:
>
> 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.
There are quite many warnings on this series.
The main problem is that v2 has some meson style issues:
$ ./devtools/check-meson.py
Error: Incorrect indent at drivers/net/intel/e1000/meson.build:20
Error: Incorrect indent at drivers/net/intel/e1000/meson.build:21
Error: Incorrect indent at drivers/net/intel/e1000/meson.build:22
Error: Incorrect indent at drivers/net/intel/e1000/meson.build:23
Error: Incorrect indent at drivers/net/intel/e1000/meson.build:24
And this is what blocked testing at UNH.
Please fix for v3.
There are also authorship/Sob issues, those can be seen with
./devtools/checkpatches.sh and ./devtools/check-git-log.sh.
--
David Marchand
More information about the dev
mailing list