Hi,
I am trying to make the igc driver (/usr/src/sys/dev/igc) to also support Killer Ethernet E3100G (which is an Intel I225-V chip which is supported by the driver).
This is the status:
1. The device seems to be detected with wrong vendor and device name.
dmesg says:
I am pretty pretty sure this is wrong, the device runs as E3100G in Windows with the corresponding driver, and also the vendor page says the laptop has a E3100G.
2. I am trying to figure out, how to change the coding in /usr/src/sys/dev/igc/igc_hw.h
and maybe /usr/src/sys/dev/igc/if_igc.c
Im am currently building a test kernel, with simply having added:
and see what happens. (Intentionally using the wrong device description from dmesg)
Anyhow I am not exactly a kernel hacker, so any input is appreciated.
I am trying to make the igc driver (/usr/src/sys/dev/igc) to also support Killer Ethernet E3100G (which is an Intel I225-V chip which is supported by the driver).
This is the status:
1. The device seems to be detected with wrong vendor and device name.
dmesg says:
Code:
none6@pci0:108:0:0: class=0x020000 rev=0x06 hdr=0x00 vendor=0x10ec device=0x3000 subvendor=0x1558 subdevice=0x7715
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'Killer E3000 2.5GbE Controller'
class = network
subclass = ethernet
2. I am trying to figure out, how to change the coding in /usr/src/sys/dev/igc/igc_hw.h
Code:
#define IGC_DEV_ID_I225_LM 0x15F2
#define IGC_DEV_ID_I225_V 0x15F3
#define IGC_DEV_ID_I225_K 0x3100
#define IGC_DEV_ID_I225_I 0x15F8
#define IGC_DEV_ID_I220_V 0x15F7
#define IGC_DEV_ID_I225_K2 0x3101
#define IGC_DEV_ID_I225_LMVP 0x5502
#define IGC_DEV_ID_I226_K 0x5504
#define IGC_DEV_ID_I225_IT 0x0D9F
#define IGC_DEV_ID_I226_LM 0x125B
#define IGC_DEV_ID_I226_V 0x125C
#define IGC_DEV_ID_I226_IT 0x125D
#define IGC_DEV_ID_I221_V 0x125E
#define IGC_DEV_ID_I226_BLANK_NVM 0x125F
#define IGC_DEV_ID_I225_BLANK_NVM 0x15FD
and maybe /usr/src/sys/dev/igc/if_igc.c
Code:
/*********************************************************************
* PCI Device ID Table
*
* Used by probe to select devices to load on
* Last entry must be all 0s
*
* { Vendor ID, Device ID, String }
*********************************************************************/
static pci_vendor_info_t igc_vendor_info_array[] =
{
/* Intel(R) PRO/1000 Network Connection - igc */
PVID(0x8086, IGC_DEV_ID_I225_LM, "Intel(R) Ethernet Controller I225-LM"),
PVID(0x8086, IGC_DEV_ID_I225_V, "Intel(R) Ethernet Controller I225-V"),
PVID(0x8086, IGC_DEV_ID_I225_K, "Intel(R) Ethernet Controller I225-K"),
PVID(0x8086, IGC_DEV_ID_I225_I, "Intel(R) Ethernet Controller I225-I"),
PVID(0x8086, IGC_DEV_ID_I220_V, "Intel(R) Ethernet Controller I220-V"),
PVID(0x8086, IGC_DEV_ID_I225_K2, "Intel(R) Ethernet Controller I225-K(2)"),
PVID(0x8086, IGC_DEV_ID_I225_LMVP, "Intel(R) Ethernet Controller I225-LMvP(2)"),
PVID(0x8086, IGC_DEV_ID_I226_K, "Intel(R) Ethernet Controller I226-K"),
PVID(0x8086, IGC_DEV_ID_I225_IT, "Intel(R) Ethernet Controller I225-IT(2)"),
PVID(0x8086, IGC_DEV_ID_I226_LM, "Intel(R) Ethernet Controller I226-LM"),
PVID(0x8086, IGC_DEV_ID_I226_V, "Intel(R) Ethernet Controller I226-V"),
PVID(0x8086, IGC_DEV_ID_I226_IT, "Intel(R) Ethernet Controller I226-IT"),
PVID(0x8086, IGC_DEV_ID_I221_V, "Intel(R) Ethernet Controller I221-V"),
PVID(0x8086, IGC_DEV_ID_I226_BLANK_NVM, "Intel(R) Ethernet Controller I226(blankNVM)"),
PVID(0x8086, IGC_DEV_ID_I225_BLANK_NVM, "Intel(R) Ethernet Controller I225(blankNVM)"),
/* required last entry */
PVID_END
};
Im am currently building a test kernel, with simply having added:
Code:
#define IGC_DEV_ID_E3100_G 0x3000
Code:
PVID(0x10ec, IGC_DEV_ID_E3100_G, "Killer E3000 2.5GbE Controller")
Anyhow I am not exactly a kernel hacker, so any input is appreciated.
Last edited by a moderator: