4d583feecc
* add adapt to tcrp and increasing version * update 1.2.0 * update 1.2.1 * update 1.2.3 * Close the trigger of push Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> |
||
---|---|---|
.github/workflows | ||
igc | ||
.gitignore | ||
backport_overflow.h | ||
backport.h | ||
igc_base.c | ||
igc_base.h | ||
igc_defines.h | ||
igc_diag.c | ||
igc_diag.h | ||
igc_dump.c | ||
igc_ethtool.c | ||
igc_hw.h | ||
igc_i225.c | ||
igc_i225.h | ||
igc_mac.c | ||
igc_mac.h | ||
igc_main.c | ||
igc_nvm.c | ||
igc_nvm.h | ||
igc_phy.c | ||
igc_phy.h | ||
igc_ptp.c | ||
igc_regs.h | ||
igc_tsn.c | ||
igc_tsn.h | ||
igc.h | ||
LICENSE.md | ||
Makefile | ||
Module.symvers | ||
README.md |
Intel igc driver for Synology Kernel 4.4.180
Backport from Linux Kernel v5.12, commit:
9f4ad9e425
Compatible devices&NICs list
Not all i225/i226 NIC is working. My device is UGREEN DX4600 with i225v b3, the igc driver is working normally.
If this igc driver is compatible with your devices, you can reply in this issue.
Device Name | NIC version | Ports |
---|---|---|
UGREEN DX4600 | i225v b3 | 2 |
ROG MAXIMUS XIII HERO | i225v b3 | 2 |
Prebuild module
Download from https://github.com/fbelavenuto/arpl-modules
Eg: https://github.com/fbelavenuto/arpl-modules/blob/main/geminilake-4.4.180/igc.ko
Follow load module action: https://github.com/jim3ma/synology-igc#3-load-module
Build in docker
mkdir -p output
# avaliable platform:
# apollolake
# broadwell
# broadwellnk
# denverton
# geminilake
# v1000
# I think the platform is not important for building `igc`, change it as your own
PLATFORM=geminilake
docker run -u 1000 --rm -t -v "${PWD}":/input -v "${PWD}/output":/output fbelavenuto/syno-compiler compile-module ${PLATFORM}
The output/igc.ko
is the module.
And then lollow load module action: https://github.com/jim3ma/synology-igc#3-load-module
Build in Synology develop environment
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
- tc support
- igc: Enable internal i225 PPS -
64433e5bf4
History
1.2.3
Date 2022.11.16
This version support i226 with device id 8086:125C, firmware version: 2014:8877
- igc: Remove phy->type checking
- igc: Remove _I_PHY_ID checking
1.2.2
Date 2022.11.15
- Update defines for compile error
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.