Intel i225/i226 igc driver for Synology Kernel 4.4.180
Go to file
Jim Ma 76c8e63747 update README.md
Signed-off-by: Jim Ma <majinjing3@gmail.com>
2022-11-03 12:44:57 +00:00
.gitignore backport to 4.4.180 2022-10-26 03:24:59 +00:00
backport_overflow.h backport to 4.4.180 2022-10-26 03:24:59 +00:00
backport.h support ethtool ops 2022-10-26 17:11:07 +00:00
igc_base.c igc: Add new device ID I226_LMVP 2022-11-03 12:42:22 +00:00
igc_base.h initial update 2022-10-26 02:51:55 +00:00
igc_defines.h initial update 2022-10-26 02:51:55 +00:00
igc_diag.c initial update 2022-10-26 02:51:55 +00:00
igc_diag.h initial update 2022-10-26 02:51:55 +00:00
igc_dump.c initial update 2022-10-26 02:51:55 +00:00
igc_ethtool.c support ethtool ops 2022-10-26 17:11:07 +00:00
igc_hw.h igc: Add new device ID I226_LMVP 2022-11-03 12:42:22 +00:00
igc_i225.c igc: Fix typo in i225 LTR functions 2022-10-27 04:06:39 +00:00
igc_i225.h initial update 2022-10-26 02:51:55 +00:00
igc_mac.c initial update 2022-10-26 02:51:55 +00:00
igc_mac.h initial update 2022-10-26 02:51:55 +00:00
igc_main.c update README.md 2022-11-03 12:44:57 +00:00
igc_nvm.c initial update 2022-10-26 02:51:55 +00:00
igc_nvm.h initial update 2022-10-26 02:51:55 +00:00
igc_phy.c igc: Fix BUG: scheduling while atomic 2022-11-03 12:35:41 +00:00
igc_phy.h initial update 2022-10-26 02:51:55 +00:00
igc_ptp.c igc: Fix suspending when PTM is active 2022-11-03 12:39:35 +00:00
igc_regs.h igc: Reinstate IGC_REMOVED logic and implement it properly 2022-10-27 03:58:14 +00:00
igc_tsn.c backport to 4.4.180 2022-10-26 03:24:59 +00:00
igc_tsn.h initial update 2022-10-26 02:51:55 +00:00
igc.h igc: change default return of igc_read_phy_reg() 2022-10-27 03:49:39 +00:00
LICENSE.md add LICENSE.md 2022-10-26 06:08:04 +00:00
Makefile update Makefile 2022-10-27 12:13:19 +08:00
Module.symvers initial update 2022-10-26 02:51:55 +00:00
README.md update README.md 2022-11-03 12:44:57 +00:00

Intel igc driver for Synology Kernel 4.4.180

Backport from Linux Kernel v5.12, commit: 9f4ad9e425

Prebuild module

https://github.com/fbelavenuto/arpl-modules

Eg: https://github.com/fbelavenuto/arpl-modules/blob/main/geminilake-4.4.180/igc.ko

Build

1. Setup develop environment

Prepare Environment

Refer: https://help.synology.com/developer-guide/getting_started/prepare_environment.html

Assume platform=geminilake, version=7.1, working directory is /synology-toolkit

Now the build env is /synology-toolkit/build_env/ds.geminilake-7.1

Enter chrooot

sudo chroot /synology-toolkit/build_env/ds.geminilake-7.1

Clone source code

cd /usr/src/
git clone https://github.com/jim3ma/synology-igc.git

2. Build module

cd /usr/src/synology-igc/
make -C /usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.1/build M=$PWD modules

3. Load module

Copy igc.ko to target machine

Find i225/i226 pci device

03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)
insmod igc.ko debug=16 # enable debug log
echo igc > /sys/bus/pci/devices/0000:03:00.0/driver_override
echo 0000:03:00.0 > /sys/bus/pci/drivers_probe
ip link set up eth1 # in my machine, the nic name is eth1

TODO

  1. tc support
  2. igc: Enable internal i225 PPS - 64433e5bf4

History

1.2.1

Date 2022.11.03

  • igc: Fix BUG: scheduling while atomic
  • igc: Add new device ID I226_LMVP
  • igc: Fix suspending when PTM is active

1.2.0

Date 2022.10.27

Backport fixes from upstream

  • igc: Fix TX timestamp support for non-MSI-X platforms
  • igc: Fix typo in i225 LTR functions
  • igc: Update I226_K device ID
  • igc: Reinstate IGC_REMOVED logic and implement it properly
  • igc: Fix infinite loop in release_swfw_sync
  • igc: Increase timeout value for Speed 100/1000/2500
  • igc: Fix use-after-free error during reset
  • igc: change default return of igc_read_phy_reg()
  • igc: Fix an error handling path in 'igc_probe()'

1.1.0

Date 2022.10.27

  • Support ethtool operations

1.0.0

Date 2022.10.26

  • Backport from Linux Kernel v5.12, commit: 9f4ad9e425a1d3b6a34617b8ea226d56a119a717.