Realtek RTL8168/8111C - Link is disconnected #432

Open
opened 2026-04-20 18:55:14 +00:00 by Golffies · 32 comments

Hello,

Here is a bug report regarding Realtek's gigabit Ethernet network adapter, the RTL8168/8111C.

PCI LIST:

VenID DevID Bus# Dev# Fnc Rev Class Subclass / Interface IRQ Company Description
10ec 8168 04 00 00 02 02 00 00 0e REALTEK SEMICONDUCTOR Corp.

Bug description:

The network card is detected, but remains “disconnected” from the local network indefinitely. No obvious actions (enabling or disabling the card in the LAN control panel, reconnecting the Ethernet cable) have any effect. Entering static network settings in network.ini also has no effect.

Context:

  • Kolibri OS boots from an IDE volume on a motherboard fitted with a P43/ICH10 chipset.
  • On the motherboard's I/O shield, the LEDs on the RJ45 socket remain off permanently.
  • A DHCP server is available on the subnet.
  • Under Linux, the same machine connects to the LAN without any problems.

BOARD LOG:

...
K : driver /sys/drivers/RTL8169.sys mapped to 81063000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: Detected chip: Realtek 8168c/8111c
K : Attach Interrupt 14 Handler 81063D30
L: /SYS/NETWORK/@ZEROCONF Param: 
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: init OK!
L: /SYS/@SS Param: ASSM
Zero-config service loaded
...
Hello, Here is a bug report regarding Realtek's gigabit Ethernet network adapter, the RTL8168/8111C. ### PCI LIST: | VenID | DevID | Bus# | Dev# | Fnc | Rev | Class | Subclass / Interface | IRQ | Company | Description | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 10ec | 8168 | 04 | 00 | 00 | 02 | 02 | 00 | 00 | 0e | REALTEK SEMICONDUCTOR Corp. | Network - Ethernet | ### Bug description: The network card is detected, but remains “disconnected” from the local network indefinitely. No obvious actions (enabling or disabling the card in the LAN control panel, reconnecting the Ethernet cable) have any effect. Entering static network settings in `network.ini` also has no effect. ### Context: - Kolibri OS boots from an IDE volume on a motherboard fitted with a P43/ICH10 chipset. - On the motherboard's I/O shield, the LEDs on the RJ45 socket remain off permanently. - A DHCP server is available on the subnet. - Under Linux, the same machine connects to the LAN without any problems. ### BOARD LOG: ``` ... K : driver /sys/drivers/RTL8169.sys mapped to 81063000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: Detected chip: Realtek 8168c/8111c K : Attach Interrupt 14 Handler 81063D30 L: /SYS/NETWORK/@ZEROCONF Param: RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: init OK! L: /SYS/@SS Param: ASSM Zero-config service loaded ... ```
Member

According to research, PHYStatus register might be buggy/delayed on this particular chip.
Linux drivers writes many magic numbers into the chip which I'd like to avoid.

Attached is an updated driver that will read the MII status when PHY says link is down, to debug the issue.

According to research, PHYStatus register might be buggy/delayed on this particular chip. Linux drivers writes many magic numbers into the chip which I'd like to avoid. Attached is an updated driver that will read the MII status when PHY says link is down, to debug the issue.
hidnplayr added the Category/Drivers
Kind
Bug
labels 2026-04-20 20:21:27 +00:00
Author

Thank you for the test driver.
Here is what the log currently shows:

K : driver /sys/drivers/RTL8169.sys mapped to A0F53000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: Detected chip: Realtek 8168c/8111c
K : Attach Interrupt 14 Handler A0F53D30
L: /SYS/NETWORK/@ZEROCONF Param: 
RTL8169: Link change detected
RTL8169: Link is down according PHYstatus, trying MII
RTL8169: Link is down
RTL8169: Link is down according PHYstatus, trying MII
RTL8169: Link is down
RTL8169: init OK!
L: /SYS/@SS Param: ASSM
Zero-config service loaded

Linux drivers writes many magic numbers into the chip which I'd like to avoid.

By that, do you mean the undocumented values set by the r8169.c Linux driver in the 8168’s proprietary registers exposed in the PCI BAR? Why are you reluctant to use them in your own driver? Please don’t take this as a criticism on my part; I'm just curious about the right way to go about it when you can't sign the required NDA with the manufacturer.

Thank you for the test driver. Here is what the log currently shows: ``` K : driver /sys/drivers/RTL8169.sys mapped to A0F53000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: Detected chip: Realtek 8168c/8111c K : Attach Interrupt 14 Handler A0F53D30 L: /SYS/NETWORK/@ZEROCONF Param: RTL8169: Link change detected RTL8169: Link is down according PHYstatus, trying MII RTL8169: Link is down RTL8169: Link is down according PHYstatus, trying MII RTL8169: Link is down RTL8169: init OK! L: /SYS/@SS Param: ASSM Zero-config service loaded ``` > Linux drivers writes many magic numbers into the chip which I'd like to avoid. By that, do you mean the undocumented values set by the r8169.c Linux driver in the 8168’s proprietary registers exposed in the PCI BAR? Why are you reluctant to use them in your own driver? Please don’t take this as a criticism on my part; I'm just curious about the right way to go about it when you can't sign the required NDA with the manufacturer.
Author

Hi,
just a bit of extra information.
The XID reported by dmesg for my Ethernet adapter is 0x3C4:

# dmesg | grep r8169
[    6.607717] r8169 0000:04:00.0 eth0: RTL8168c/8111c, 00:24:1d:[redacted], XID 3c4, IRQ 25
[    6.607724] r8169 0000:04:00.0 eth0: jumbo features [frames: 6122 bytes, tx checksumming: ko]
[    6.930078] r8169 0000:04:00.0 enp4s0: renamed from eth0
[   15.241391] RTL8211B Gigabit Ethernet r8169-0-400:00: attached PHY driver (mii_bus:phy_addr=r8169-0-400:00, irq=MAC)
[   15.310103] r8169 0000:04:00.0 enp4s0: Link is Down
[   17.274023] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx

In r8169_main.c, this would correspond to the identifier RTL_GIGA_MAC_VER_22

	{ 0x7c8, 0x3c0,	RTL_GIGA_MAC_VER_22, "RTL8168c/8111c" },

Could the problem be caused by the 8168’s power-saving feature, which might prevent it from detecting the modulation on the cable?

Hi, just a bit of extra information. The `XID` reported by `dmesg` for my Ethernet adapter is `0x3C4`: ``` # dmesg | grep r8169 [ 6.607717] r8169 0000:04:00.0 eth0: RTL8168c/8111c, 00:24:1d:[redacted], XID 3c4, IRQ 25 [ 6.607724] r8169 0000:04:00.0 eth0: jumbo features [frames: 6122 bytes, tx checksumming: ko] [ 6.930078] r8169 0000:04:00.0 enp4s0: renamed from eth0 [ 15.241391] RTL8211B Gigabit Ethernet r8169-0-400:00: attached PHY driver (mii_bus:phy_addr=r8169-0-400:00, irq=MAC) [ 15.310103] r8169 0000:04:00.0 enp4s0: Link is Down [ 17.274023] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx ``` In `r8169_main.c`, this would correspond to the identifier `RTL_GIGA_MAC_VER_22` ``` { 0x7c8, 0x3c0, RTL_GIGA_MAC_VER_22, "RTL8168c/8111c" }, ``` Could the problem be caused by the 8168’s power-saving feature, which might prevent it from detecting the modulation on the cable?
Member

Did you ever check if unplugging and re-plugging the cable causes link detection to try again?

In any case, attached you will find an updated driver with PHY configuration for your particular chip, ported from the linux driver.

Did you ever check if unplugging and re-plugging the cable causes link detection to try again? In any case, attached you will find an updated driver with PHY configuration for your particular chip, ported from the linux driver.
Author

Thank you for your prompt reply @hidnplayr. Here is the MD5 hash of the driver I have just tested:

$ md5sum '/media/user/disk/DRIVERS/RTL8169.SYS'
c500dc602e2de0a271f7d851ea96baab  /media/user/disk/DRIVERS/RTL8169.SYS

Unfortunately, the result isn't the success we'd hoped for, but that's just part and parcel of debugging. The symptoms remain the same as those described in my first bug report. I had already tried unplugging and re-plugging the Ethernet cable, and I’ve now tried again, but there’s still no change. The LEDs on the RJ45 connector remain off. BOARDLOG isn't giving us any more clues than it did the first time:

K : driver /sys/drivers/RTL8169.sys mapped to 81066000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: Detected chip: Realtek 8168c/8111c
K : Attach Interrupt 14 Handler 810670A0
L: /SYS/NETWORK/@ZEROCONF Param: 
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: init OK!
L: /SYS/@SS Param: ASSM
K : EHCI 80EEA0A4 status of port 2 is 00001801
K : releasing to companion
K : EHCI 80EEA0A4: port 3 has HS or FS device, resetting
Zero-config service loaded

Misc

In the LAN control panel, apart from the ‘Start device’ button, which triggers a response from the kernel (see screenshot), the other two buttons appear to be completely non-functional.

PHY proprietary initialisation parameters

In your shared source code (thank you for that), you imported from r8169_phy_config.c the parameters stored in the functions

  • rtl8168c_1_hw_phy_config
  • rtl8168c_2_hw_phy_config
  • rtl8168c_3_hw_phy_config:
static void rtl8168c_1_hw_phy_config(struct rtl8169_private *tp,
				     struct phy_device *phydev)
{
	static const struct phy_reg phy_reg_init[] = {
		{ 0x1f, 0x0001 },
		{ 0x12, 0x2300 },
		{ 0x1f, 0x0002 },
		{ 0x00, 0x88d4 },
		{ 0x01, 0x82b1 },
		{ 0x03, 0x7002 },
		{ 0x08, 0x9e30 },
		{ 0x09, 0x01f0 },
		{ 0x0a, 0x5500 },
		{ 0x0c, 0x00c8 },
		{ 0x1f, 0x0003 },
		{ 0x12, 0xc096 },
		{ 0x16, 0x000a },
		{ 0x1f, 0x0000 },
		{ 0x1f, 0x0000 },
		{ 0x09, 0x2000 },
		{ 0x09, 0x0000 }
	};

	rtl_writephy_batch(phydev, phy_reg_init);

	phy_set_bits(phydev, 0x14, BIT(5));
	phy_set_bits(phydev, 0x0d, BIT(5));
}

static void rtl8168c_2_hw_phy_config(struct rtl8169_private *tp,
				     struct phy_device *phydev)
{
	static const struct phy_reg phy_reg_init[] = {
		{ 0x1f, 0x0001 },
		{ 0x12, 0x2300 },
		{ 0x03, 0x802f },
		{ 0x02, 0x4f02 },
		{ 0x01, 0x0409 },
		{ 0x00, 0xf099 },
		{ 0x04, 0x9800 },
		{ 0x04, 0x9000 },
		{ 0x1d, 0x3d98 },
		{ 0x1f, 0x0002 },
		{ 0x0c, 0x7eb8 },
		{ 0x06, 0x0761 },
		{ 0x1f, 0x0003 },
		{ 0x16, 0x0f0a },
		{ 0x1f, 0x0000 }
	};

	rtl_writephy_batch(phydev, phy_reg_init);

	phy_set_bits(phydev, 0x16, BIT(0));
	phy_set_bits(phydev, 0x14, BIT(5));
	phy_set_bits(phydev, 0x0d, BIT(5));
}

static void rtl8168c_3_hw_phy_config(struct rtl8169_private *tp,
				     struct phy_device *phydev)
{
	static const struct phy_reg phy_reg_init[] = {
		{ 0x1f, 0x0001 },
		{ 0x12, 0x2300 },
		{ 0x1d, 0x3d98 },
		{ 0x1f, 0x0002 },
		{ 0x0c, 0x7eb8 },
		{ 0x06, 0x5461 },
		{ 0x1f, 0x0003 },
		{ 0x16, 0x0f0a },
		{ 0x1f, 0x0000 }
	};

	rtl_writephy_batch(phydev, phy_reg_init);

	phy_set_bits(phydev, 0x16, BIT(0));
	phy_set_bits(phydev, 0x14, BIT(5));
	phy_set_bits(phydev, 0x0d, BIT(5));
}

Which of these three sets of values does your FASM code actually send to my RTL8168c (stepping 3c4)?

Thank you for your prompt reply @hidnplayr. Here is the MD5 hash of the driver I have just tested: ``` $ md5sum '/media/user/disk/DRIVERS/RTL8169.SYS' c500dc602e2de0a271f7d851ea96baab /media/user/disk/DRIVERS/RTL8169.SYS ``` Unfortunately, the result isn't the success we'd hoped for, but that's just part and parcel of debugging. The symptoms remain the same as those described in my first bug report. I had already tried unplugging and re-plugging the Ethernet cable, and I’ve now tried again, but there’s still no change. The LEDs on the RJ45 connector remain off. `BOARDLOG` isn't giving us any more clues than it did the first time: ``` K : driver /sys/drivers/RTL8169.sys mapped to 81066000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: Detected chip: Realtek 8168c/8111c K : Attach Interrupt 14 Handler 810670A0 L: /SYS/NETWORK/@ZEROCONF Param: RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: init OK! L: /SYS/@SS Param: ASSM K : EHCI 80EEA0A4 status of port 2 is 00001801 K : releasing to companion K : EHCI 80EEA0A4: port 3 has HS or FS device, resetting Zero-config service loaded ``` ### Misc In the LAN control panel, apart from the ‘Start device’ button, which triggers a response from the kernel (see screenshot), the other two buttons appear to be completely non-functional. ### PHY proprietary initialisation parameters In your shared source code (thank you for that), you imported from `r8169_phy_config.c` the parameters stored in the functions - `rtl8168c_1_hw_phy_config` - `rtl8168c_2_hw_phy_config` - `rtl8168c_3_hw_phy_config`: ``` static void rtl8168c_1_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev) { static const struct phy_reg phy_reg_init[] = { { 0x1f, 0x0001 }, { 0x12, 0x2300 }, { 0x1f, 0x0002 }, { 0x00, 0x88d4 }, { 0x01, 0x82b1 }, { 0x03, 0x7002 }, { 0x08, 0x9e30 }, { 0x09, 0x01f0 }, { 0x0a, 0x5500 }, { 0x0c, 0x00c8 }, { 0x1f, 0x0003 }, { 0x12, 0xc096 }, { 0x16, 0x000a }, { 0x1f, 0x0000 }, { 0x1f, 0x0000 }, { 0x09, 0x2000 }, { 0x09, 0x0000 } }; rtl_writephy_batch(phydev, phy_reg_init); phy_set_bits(phydev, 0x14, BIT(5)); phy_set_bits(phydev, 0x0d, BIT(5)); } static void rtl8168c_2_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev) { static const struct phy_reg phy_reg_init[] = { { 0x1f, 0x0001 }, { 0x12, 0x2300 }, { 0x03, 0x802f }, { 0x02, 0x4f02 }, { 0x01, 0x0409 }, { 0x00, 0xf099 }, { 0x04, 0x9800 }, { 0x04, 0x9000 }, { 0x1d, 0x3d98 }, { 0x1f, 0x0002 }, { 0x0c, 0x7eb8 }, { 0x06, 0x0761 }, { 0x1f, 0x0003 }, { 0x16, 0x0f0a }, { 0x1f, 0x0000 } }; rtl_writephy_batch(phydev, phy_reg_init); phy_set_bits(phydev, 0x16, BIT(0)); phy_set_bits(phydev, 0x14, BIT(5)); phy_set_bits(phydev, 0x0d, BIT(5)); } static void rtl8168c_3_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev) { static const struct phy_reg phy_reg_init[] = { { 0x1f, 0x0001 }, { 0x12, 0x2300 }, { 0x1d, 0x3d98 }, { 0x1f, 0x0002 }, { 0x0c, 0x7eb8 }, { 0x06, 0x5461 }, { 0x1f, 0x0003 }, { 0x16, 0x0f0a }, { 0x1f, 0x0000 } }; rtl_writephy_batch(phydev, phy_reg_init); phy_set_bits(phydev, 0x16, BIT(0)); phy_set_bits(phydev, 0x14, BIT(5)); phy_set_bits(phydev, 0x0d, BIT(5)); } ``` Which of these three sets of values does your FASM code actually send to my RTL8168c (stepping 3c4)?
Author

Hi @hidnplayr,

To stick strictly to the initialisation parameters contained within the rtl8168c_3_hw_phy_config function of the Linux driver — which apply specifically to RTL8168C steppings 0x3c3 and 0x3C4 — I have made a slight modification to your code. The .asm and .diff files are attached.

I would like to assemble RTL8169.asm using FASM integrated into Kolibri. To do this, do I need to manually gather all the dependencies called by include into the root of a single working directory, or would you recommend a different approach?

Thank you!

Hi @hidnplayr, To stick strictly to the initialisation parameters contained within the `rtl8168c_3_hw_phy_config` function of the Linux driver — which apply specifically to RTL8168C steppings `0x3c3` and `0x3C4` — I have made a slight modification to your code. The .asm and .diff files are attached. I would like to assemble `RTL8169.asm` using FASM integrated into Kolibri. To do this, do I need to manually gather all the dependencies called by `include` into the root of a single working directory, or would you recommend a different approach? Thank you!
Member

The easiest is to assemble the driver on windows or linux and inject it into kolibri.img before booting kolibrios.
Otherwise, you will need to edit AUTORUN.DAT so driver is not loaded on boot, or save the new driver to kolibri.img and reboot kolibrios, as there is currently no way to unload the driver once loaded.

In case you still want to assemble from within kolibrios, you'll need to make space on the floppy image for all the needed files (remove some of the games/3d demos for instance), or put them on a harddrive or usb drive accessible from within KolibriOS.

I'm not sure about the stepping you refer to. Last presented driver by me was modified by Claude AI to incorporate the supposedly relevant changes for your card. (based on PCI ID and revision)
One possible explanation of the issue at hand, as suggested by different AI's, could be that auto-negotiation is taking longer on your card than on others, and does not complete before our link detection routine is run.
In your linux log, it seems it takes around 2s for link to be detected.

PS: we can increase debug output, by changing the DEBUG_LEVEL value before assembling the driver, to get more information.

The easiest is to assemble the driver on windows or linux and inject it into kolibri.img before booting kolibrios. Otherwise, you will need to edit AUTORUN.DAT so driver is not loaded on boot, or save the new driver to kolibri.img and reboot kolibrios, as there is currently no way to unload the driver once loaded. In case you still want to assemble from within kolibrios, you'll need to make space on the floppy image for all the needed files (remove some of the games/3d demos for instance), or put them on a harddrive or usb drive accessible from within KolibriOS. I'm not sure about the stepping you refer to. Last presented driver by me was modified by Claude AI to incorporate the supposedly relevant changes for your card. (based on PCI ID and revision) One possible explanation of the issue at hand, as suggested by different AI's, could be that auto-negotiation is taking longer on your card than on others, and does not complete before our link detection routine is run. In your linux log, it seems it takes around 2s for link to be detected. PS: we can increase debug output, by changing the DEBUG_LEVEL value before assembling the driver, to get more information.
Author

Hi @hidnplayr , thank you for your detailed reply.

we can increase debug output, by changing the DEBUG_LEVEL value before assembling the driver, to get more information.

Here are the driver's debug messages, with its verbosity level set to 1:

K : driver /sys/drivers/RTL8169.sys mapped to 81066000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: probe
RTL8169: init_board
RTL8169: Detected chip: Realtek 8168c/8111c
RTL8169: MAC = 00-24-1D-[redacted]
RTL8169: hw_PHY_config: priv.mcfg=0, priv.pcfg=0
RTL8169: mcfg=0, discard hw PHY config
RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h
RTL8169: Set PCI Latency=0x40
RTL8169: auto-negotiation complete
RTL8169: resetting
RTL8169: init_ring
RTL8169: hw_start
RTL8169: Attaching int handler to irq E
K : Attach Interrupt 14 Handler 810678B0
RTL8169: Waiting for chip to reset... RTL8169: done!
RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3
L: /SYS/NETWORK/@ZEROCONF Param: 
RTL8169: set_rx_mode
RTL8169: INT for 0x81037000
RTL8169: Status: 0020
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: init OK!
L: /SYS/@SS Param: ASSM
Zero-config service loaded

I'm not sure about the stepping you refer to. Last presented driver by me was modified by Claude AI to incorporate the supposedly relevant changes for your card. (based on PCI ID and revision)

I was referring to the revision number, as returned by the kernel – 0x3C4 (aka 0x7c8, 0x3c0, RTL_GIGA_MAC_VER_22, "RTL8168c/8111c" ) in the case of my 8168C adapter.

$ dmesg | grep 3c4
[    7.341895] r8169 0000:04:00.0 eth0: RTL8168c/8111c, 00:24:1d:[redacted], XID 3c4, IRQ 26

The LLM did a fair job. I was surprised that the resulting code (I’m referring to your version dated 23 April) modified the registers with values different from those in r8169_phy_config.c. It also didn’t include that bit shift in register 0x16 (whatever the impact might be):

phy_set_bits(phydev, 0x16, BIT(0));

But my latest attempt to adapt RTL8169.asm to match r8169_phy_config.c as closely as possible didn't yield any better results. Incidentally, the binaries produced by FASM on Linux and Kolibri do not generate the same MD5 hash. I am attaching the relevant files here.

One possible explanation of the issue at hand, as suggested by different AI's, could be that auto-negotiation is taking longer on your card than on others, and does not complete before our link detection routine is run.

Would it be possible to add a delay to the FASM driver to test this hypothesis?

Another idea: would you be willing to prepare a version of the driver with the magic numbers for other cards removed, in order to rule out any risk that an error in the detection tests might cause a section other than the one applicable to my card to be executed?

Thank you !

Hi @hidnplayr , thank you for your detailed reply. > we can increase debug output, by changing the DEBUG_LEVEL value before assembling the driver, to get more information. Here are the driver's debug messages, with its verbosity level set to 1: ``` K : driver /sys/drivers/RTL8169.sys mapped to 81066000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: probe RTL8169: init_board RTL8169: Detected chip: Realtek 8168c/8111c RTL8169: MAC = 00-24-1D-[redacted] RTL8169: hw_PHY_config: priv.mcfg=0, priv.pcfg=0 RTL8169: mcfg=0, discard hw PHY config RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h RTL8169: Set PCI Latency=0x40 RTL8169: auto-negotiation complete RTL8169: resetting RTL8169: init_ring RTL8169: hw_start RTL8169: Attaching int handler to irq E K : Attach Interrupt 14 Handler 810678B0 RTL8169: Waiting for chip to reset... RTL8169: done! RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3 L: /SYS/NETWORK/@ZEROCONF Param: RTL8169: set_rx_mode RTL8169: INT for 0x81037000 RTL8169: Status: 0020 RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: init OK! L: /SYS/@SS Param: ASSM Zero-config service loaded ``` > I'm not sure about the stepping you refer to. Last presented driver by me was modified by Claude AI to incorporate the supposedly relevant changes for your card. (based on PCI ID and revision) I was referring to the revision number, as returned by the kernel – `0x3C4` (aka `0x7c8, 0x3c0, RTL_GIGA_MAC_VER_22, "RTL8168c/8111c"` ) in the case of my 8168C adapter. ``` $ dmesg | grep 3c4 [ 7.341895] r8169 0000:04:00.0 eth0: RTL8168c/8111c, 00:24:1d:[redacted], XID 3c4, IRQ 26 ``` The LLM did a fair job. I was surprised that the resulting code (I’m referring to your version dated 23 April) modified the registers with values different from those in r8169_phy_config.c. It also didn’t include that bit shift in register 0x16 (whatever the impact might be): `phy_set_bits(phydev, 0x16, BIT(0));` But my latest attempt to adapt RTL8169.asm to match r8169_phy_config.c as closely as possible didn't yield any better results. Incidentally, the binaries produced by FASM on Linux and Kolibri do not generate the same MD5 hash. I am attaching the relevant files here. > One possible explanation of the issue at hand, as suggested by different AI's, could be that auto-negotiation is taking longer on your card than on others, and does not complete before our link detection routine is run. Would it be possible to add a delay to the FASM driver to test this hypothesis? Another idea: would you be willing to prepare a version of the driver with the magic numbers for other cards removed, in order to rule out any risk that an error in the detection tests might cause a section other than the one applicable to my card to be executed? Thank you !
Member

Aha! mcfg=0, it means non of our specific code is being run..

On line ~594, change
mov [ebx + device.mac_version], ecx
to
mov [ebx + device.mcfg], ecx

Aha! mcfg=0, it means non of our specific code is being run.. On line ~594, change mov [ebx + device.mac_version], ecx to mov [ebx + device.mcfg], ecx
Author

Hello,

I've made the changes you suggested, and the driver is now generating the debug messages we were expecting:

K : driver /sys/drivers/RTL8169.sys mapped to A0D2D000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: probe
RTL8169: init_board
RTL8169: Detected chip: Realtek 8168c/8111c
RTL8169: MAC = 00-24-1D-[redacted]
RTL8169: hw_PHY_config: priv.mcfg=22, priv.pcfg=0
L: /SYS/NETWORK/@ZEROCONF Param:
RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h
RTL8169: auto-negotiation complete
RTL8169: resetting
RTL8169: init_ring
RTL8169: hw_start
RTL8169: Attaching int handler to irq E
K : Attach Interrupt 14 Handler A0D2E8B0
RTL8169: Waiting for chip to reset... RTL8169: done!
RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3
Zero-config service loaded
L: /SYS/@SS Param: ASSM
K : EHCI 80EEA0A4 status of port 2 is 00001801
K : releasing to companion
K : EHCI 80EEA0A4: port 3 has HS or FS device, resetting
K : EHCI 80EEA0A4: status of port 2 changed to 00003002
RTL8169: set_rx_mode
RTL8169: INT for 0x81024000
RTL8169: Status: 0020
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: init OK!

I think I’ve also figured out the reason for the differing hash values between my builds on Linux and Kolibri: in fact, two consecutive builds on Linux produce two files with different hash values. I suspect FASM adds a timestamp to the executable binary?

So much for the good news...

Unfortunately, in this version (attached below), the driver is still unable to initialise the Realtek adapter so that it detects the signal on the cable. I would have loved to share some good news with you, but... it’s too soon.

Let me reiterate my previous suggestion: in a test version, would you be willing to remove all configuration code for other adapter models and run the configuration code specific to my adapter (lines 859–874) unconditionally? I’d be happy to test such a version and let you know. The idea is to completely rule out the risk of any other part of the MCFG code being executed.

The next step would be to check the Realtek RTL8168 driver to see if there is anything fundamentally different from the Linux RTL8169 ‘umbrella’ driver. We can always put Claude's skills to the test... :-)

See you soon.

Hello, I've made the changes you suggested, and the driver is now generating the debug messages we were expecting: ``` K : driver /sys/drivers/RTL8169.sys mapped to A0D2D000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: probe RTL8169: init_board RTL8169: Detected chip: Realtek 8168c/8111c RTL8169: MAC = 00-24-1D-[redacted] RTL8169: hw_PHY_config: priv.mcfg=22, priv.pcfg=0 L: /SYS/NETWORK/@ZEROCONF Param: RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h RTL8169: auto-negotiation complete RTL8169: resetting RTL8169: init_ring RTL8169: hw_start RTL8169: Attaching int handler to irq E K : Attach Interrupt 14 Handler A0D2E8B0 RTL8169: Waiting for chip to reset... RTL8169: done! RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3 Zero-config service loaded L: /SYS/@SS Param: ASSM K : EHCI 80EEA0A4 status of port 2 is 00001801 K : releasing to companion K : EHCI 80EEA0A4: port 3 has HS or FS device, resetting K : EHCI 80EEA0A4: status of port 2 changed to 00003002 RTL8169: set_rx_mode RTL8169: INT for 0x81024000 RTL8169: Status: 0020 RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: init OK! ``` I think I’ve also figured out the reason for the differing hash values between my builds on Linux and Kolibri: in fact, two consecutive builds on Linux produce two files with different hash values. I suspect FASM adds a timestamp to the executable binary? So much for the good news... Unfortunately, in this version (attached below), the driver is still unable to initialise the Realtek adapter so that it detects the signal on the cable. I would have loved to share some good news with you, but... it’s too soon. Let me reiterate my previous suggestion: in a test version, would you be willing to remove all configuration code for other adapter models and run the configuration code specific to my adapter (lines 859–874) unconditionally? I’d be happy to test such a version and let you know. The idea is to completely rule out the risk of any other part of the MCFG code being executed. The next step would be to check the [Realtek RTL8168 driver](https://github.com/openwrt/rtl8168) to see if there is anything fundamentally different from the Linux RTL8169 ‘umbrella’ driver. We can always put Claude's skills to the test... :-) See you soon.
Member

Thanks for hanging on!
Without the actual hardware or experience with this specific revision, it's just guessing for me, so I hope you don't mind the ride..

Adding a long delay inside interrupt handler is a recipe for disaster in production code (as it blocks other interrupts during that period), so some kind of timer would need to be implemented instead.
I have seen it/have done it on some other hardware many moons ago, we can go down that route once all other roadblocks are cleared.
For debug, you could try using the udelay macro, which actually uses the sleep function that takes an argument in milliseconds.

Meanwhile, I have fed your new debug output to the machine, and it generated more changes based on latest linux source:
(Sorry, I ran out of credits before I fed it your previously corrected asm file.)

Here's a precise summary of what was added, all grounded directly in the source files you provided.

New register/constant definitions — REG_EPHYAR (0x80), REG_CSIAR/REG_CSIDR (0x68/0x64), REG_IntrMitigate (0xE2), REG_DBG_REG (0xD1), CFG1_Speed_down (bit 4 of Config1), CFG3_Beacon_en (bit 0 of Config3), DBG_FIX_NAK_1/2, and all EPHYAR field masks.

New macros — WRITE_EPHY_REG and PATCH_EPHY_REG (read-modify-write via EPHYAR), matching Linux's rtl_ephy_write/rtl_ephy_init.

Chip-specific hw_start block (inserted after CFG_9346_Lock, before set_rx_mode), sourced directly from rtl_hw_start_8168c_1, rtl_hw_start_8168c_2, and rtl_hw_start_8168c_4 in the uploaded r8169_main.c:

All VER_19–22: PciWrite8 to PCI config offset 0x070f with value 0x27 — sets ASPM L0s/L1 entrance latency (L0 7µs, L1 16µs). Without this the chip can incorrectly re-enter ASPM power states during link negotiation.
VER_19 only: DBG_REG = 0x06 | FIX_NAK_1 | FIX_NAK_2, then EPHY patches for registers 0x02, 0x03, 0x06.
VER_20/21 only: EPHY patches for registers 0x01 and 0x03.
All VER_19–22: Config1 |= Speed_down, Config3 &= ~Beacon_en.

The one Linux operation not implemented is pcie_capability_clear_word(LNKCTL, CLKREQ_EN) — disabling PCIe clock request — as it requires walking the PCI capability list which isn't available in this driver. It's a power-management refinement rather than a link-up prerequisite.

(Code in attach)

However, after taking a brief look myself, the end of probe function (waiting for auto negotiation to complete) looks fishy to me.

  1. There is no distinction between time-out and actual complete.
  2. Timeout might be too short.

Here's my updated proposal regarding this part:

        mov     ecx, 200         
        DEBUGF  1, "Waiting for auto-negotiation to complete\n"
    @@: 
        dec     ecx
        jz      @f
        
        udelay  10
        
        set_io  [ebx + device.io_addr], 0
        READ_GMII_REG PHY_STAT_REG
        test    eax, PHY_Auto_Neco_Comp
        jz      @b
        
        DEBUGF  1, "auto-negotiation completed\n"
        set_io  [ebx + device.io_addr], REG_PHYstatus
        in      al, dx
        jmp     @f
  .tbi_dis:
        udelay  1                    
    @@:
Thanks for hanging on! Without the actual hardware or experience with this specific revision, it's just guessing for me, so I hope you don't mind the ride.. Adding a long delay inside interrupt handler is a recipe for disaster in production code (as it blocks other interrupts during that period), so some kind of timer would need to be implemented instead. I have seen it/have done it on some other hardware many moons ago, we can go down that route once all other roadblocks are cleared. For debug, you could try using the udelay macro, which actually uses the sleep function that takes an argument in milliseconds. Meanwhile, I have fed your new debug output to the machine, and it generated more changes based on latest linux source: (Sorry, I ran out of credits before I fed it your previously corrected asm file.) > > Here's a precise summary of what was added, all grounded directly in the source files you provided. > > New register/constant definitions — REG_EPHYAR (0x80), REG_CSIAR/REG_CSIDR (0x68/0x64), REG_IntrMitigate (0xE2), REG_DBG_REG (0xD1), CFG1_Speed_down (bit 4 of Config1), CFG3_Beacon_en (bit 0 of Config3), DBG_FIX_NAK_1/2, and all EPHYAR field masks. > > New macros — WRITE_EPHY_REG and PATCH_EPHY_REG (read-modify-write via EPHYAR), matching Linux's rtl_ephy_write/rtl_ephy_init. > > Chip-specific hw_start block (inserted after CFG_9346_Lock, before set_rx_mode), sourced directly from rtl_hw_start_8168c_1, rtl_hw_start_8168c_2, and rtl_hw_start_8168c_4 in the uploaded r8169_main.c: > > All VER_19–22: PciWrite8 to PCI config offset 0x070f with value 0x27 — sets ASPM L0s/L1 entrance latency (L0 7µs, L1 16µs). Without this the chip can incorrectly re-enter ASPM power states during link negotiation. > VER_19 only: DBG_REG = 0x06 | FIX_NAK_1 | FIX_NAK_2, then EPHY patches for registers 0x02, 0x03, 0x06. > VER_20/21 only: EPHY patches for registers 0x01 and 0x03. > All VER_19–22: Config1 |= Speed_down, Config3 &= ~Beacon_en. > > The one Linux operation not implemented is pcie_capability_clear_word(LNKCTL, CLKREQ_EN) — disabling PCIe clock request — as it requires walking the PCI capability list which isn't available in this driver. It's a power-management refinement rather than a link-up prerequisite. (Code in attach) However, after taking a brief look myself, the end of probe function (waiting for auto negotiation to complete) looks fishy to me. 1. There is no distinction between time-out and actual complete. 2. Timeout might be too short. Here's my updated proposal regarding this part: ``` mov ecx, 200 DEBUGF 1, "Waiting for auto-negotiation to complete\n" @@: dec ecx jz @f udelay 10 set_io [ebx + device.io_addr], 0 READ_GMII_REG PHY_STAT_REG test eax, PHY_Auto_Neco_Comp jz @b DEBUGF 1, "auto-negotiation completed\n" set_io [ebx + device.io_addr], REG_PHYstatus in al, dx jmp @f .tbi_dis: udelay 1 @@: ```
Author

Hi !

Well, I have successively built and restarted with:

  • your latest version, with the udelay values you recommended applied;
  • a modified version of my own, in which the ver_22 initialisation sequence uses that of Realtek’s 8168 driver (file r8168_n.c), rather than that of the Linux 8169/8168 driver (file r8169_phy_config.c).

I have attached both versions here, with descriptive filenames.

Here is the kernel log, generated on the last boot:

K : driver /sys/drivers/RTL8169.sys mapped to A0F55000
RTL8169: Loading driver - v.2026-05-05
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: probe
RTL8169: init_board
RTL8169: Detected chip: Realtek 8168c/8111c
RTL8169: MAC = 00-24-1D-[redacted]
RTL8169: hw_PHY_config: priv.mcfg=22, priv.pcfg=0
RTL8169: mcfg_21_22: Page 0x0001 : basic settings
RTL8169: mcfg_21_22: Page 0x0002 : registers 0x00 et 0x01
L: /SYS/NETWORK/@ZEROCONF Param:
RTL8169: mcfg_21_22: Page 0x0002 : register 0x0c
RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (first entry)
RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (duplicate entry as per CFG_METHOD_6)
RTL8169: mcfg_21_22: Page 0x0000 : registers 0x16, 0x14, 0x0d
Zero-config service loaded
L: /SYS/@SS Param: ASSM
K : EHCI 80EEA0A4 status of port 2 is 00001801
K : releasing to companion
K : EHCI 80EEA0A4: port 3 has HS or FS device, resetting
K : EHCI 80EEA0A4: status of port 2 changed to 00003002
RTL8169: mcfg_21_22: Page 0x0001 : register 0x1d
L: /SYS/@VOLUME Param:
RTL8169: mcfg_21_22: Page 0x0001 : register 0x17
RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h
RTL8169: resetting
RTL8169: init_ring
RTL8169: hw_start
RTL8169: Attaching int handler to irq E
K : Attach Interrupt 14 Handler A0F56BE0
RTL8169: Waiting for chip to reset... RTL8169: done!
RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3
K : driver /sys/drivers/SOUND.sys mapped to A0D22000
Detecting hardware...
Loading HDAUDIO
K : driver /sys/drivers/HDAUDIO.sys mapped to A0F6E000
HDA test version 019a
detect hardware...
Intel ICH10
PCI command     00000006
PCI status      00000010
lower mmio base DFFF8004
upper mmio base 00000000
GCAP = 00004401
codec_mask = 00000004
create primary buffer ...done
K : Attach Interrupt 9 Handler A0F6EA74
codec probed OK
CAd = 2
K : final: hub 8082BE20 port 0 status 0301 change 01
K : final: hub 8082BE20 port 1 status 0301 change 01
K : EHCI 80EEA0A4 status of port 3 is 00001801
K : releasing to companion
K : EHCI 80EEA0A4: port 4 has HS or FS device, resetting
L: /SYS/SEARCHAP Param:
K : EHCI 80EEA0A4: status of port 3 changed to 00003002
K : final: hub 8082BE20 port 2 status 0301 change 01
K : final: hub 8082BE20 port 3 status 0301 change 01
RTL8169: set_rx_mode
RTL8169: INT for 0xA0D20000
RTL8169: Status: 0020
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: init OK!

As you will have gathered, unfortunately, I still do not have good news. 👨🏻‍🦯‍➡️

Hi ! Well, I have successively built and restarted with: - your latest version, with the udelay values you recommended applied; - a modified version of my own, in which the ver_22 initialisation sequence uses that of [Realtek’s 8168 driver](https://github.com/openwrt/rtl8168/tree/master) (file [r8168_n.c](https://github.com/openwrt/rtl8168/blob/master/r8168_n.c)), rather than that of the Linux 8169/8168 driver (file r8169_phy_config.c). I have attached both versions here, with descriptive filenames. Here is the kernel log, generated on the last boot: ``` K : driver /sys/drivers/RTL8169.sys mapped to A0F55000 RTL8169: Loading driver - v.2026-05-05 RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: probe RTL8169: init_board RTL8169: Detected chip: Realtek 8168c/8111c RTL8169: MAC = 00-24-1D-[redacted] RTL8169: hw_PHY_config: priv.mcfg=22, priv.pcfg=0 RTL8169: mcfg_21_22: Page 0x0001 : basic settings RTL8169: mcfg_21_22: Page 0x0002 : registers 0x00 et 0x01 L: /SYS/NETWORK/@ZEROCONF Param: RTL8169: mcfg_21_22: Page 0x0002 : register 0x0c RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (first entry) RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (duplicate entry as per CFG_METHOD_6) RTL8169: mcfg_21_22: Page 0x0000 : registers 0x16, 0x14, 0x0d Zero-config service loaded L: /SYS/@SS Param: ASSM K : EHCI 80EEA0A4 status of port 2 is 00001801 K : releasing to companion K : EHCI 80EEA0A4: port 3 has HS or FS device, resetting K : EHCI 80EEA0A4: status of port 2 changed to 00003002 RTL8169: mcfg_21_22: Page 0x0001 : register 0x1d L: /SYS/@VOLUME Param: RTL8169: mcfg_21_22: Page 0x0001 : register 0x17 RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h RTL8169: resetting RTL8169: init_ring RTL8169: hw_start RTL8169: Attaching int handler to irq E K : Attach Interrupt 14 Handler A0F56BE0 RTL8169: Waiting for chip to reset... RTL8169: done! RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3 K : driver /sys/drivers/SOUND.sys mapped to A0D22000 Detecting hardware... Loading HDAUDIO K : driver /sys/drivers/HDAUDIO.sys mapped to A0F6E000 HDA test version 019a detect hardware... Intel ICH10 PCI command 00000006 PCI status 00000010 lower mmio base DFFF8004 upper mmio base 00000000 GCAP = 00004401 codec_mask = 00000004 create primary buffer ...done K : Attach Interrupt 9 Handler A0F6EA74 codec probed OK CAd = 2 K : final: hub 8082BE20 port 0 status 0301 change 01 K : final: hub 8082BE20 port 1 status 0301 change 01 K : EHCI 80EEA0A4 status of port 3 is 00001801 K : releasing to companion K : EHCI 80EEA0A4: port 4 has HS or FS device, resetting L: /SYS/SEARCHAP Param: K : EHCI 80EEA0A4: status of port 3 changed to 00003002 K : final: hub 8082BE20 port 2 status 0301 change 01 K : final: hub 8082BE20 port 3 status 0301 change 01 RTL8169: set_rx_mode RTL8169: INT for 0xA0D20000 RTL8169: Status: 0020 RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: init OK! ``` As you will have gathered, unfortunately, I still do not have good news. 👨🏻‍🦯‍➡️
Member

Are there LED's on the adapter? do they come up?
Where is the other end of the Ethernet cable connected to? What is the link status there?

If the link does come up, is it before or after "RTL8169: Link change detected" event?

Are there LED's on the adapter? do they come up? Where is the other end of the Ethernet cable connected to? What is the link status there? If the link does come up, is it before or after "RTL8169: Link change detected" event?
Author

Hello,

relying on Claude.ai, I carried on with our work and assembled a new version (please see the attached RTL8169_0x3C4_v5.asm file), based on the following analysis of the FASM code. Here’s an excerpt from what the LLM has to say:

Code analysis — probable cause identified

After reading through the entire file, the most likely cause is clear. It lies in probe, on lines 681–719.

The problem: auto-negotiation is never restarted for the 8168C

The flow for a non-TBI adapter (which the 8168C is) is as follows:

call PHY_config   ; ← écrit les registres de réglage fin, OK
...
test al, PHYS_TBI_Enable
jz .tbi_dis       ; ← le 8168C emprunte ce branchement

; [le bloc TBI exécute : set capabilities + restart autoneg + attente]
; ← tout cela est SAUTÉ pour le 8168C

.tbi_dis:
  udelay 1        ; ← un simple délai, puis on continue
@@:               ; ← jamais de restart d'autonégociation

The block that writes PHY_AUTO_NEGO_REG, PHY_1000_CTRL_REG, then restarts auto-negotiation via PHY_CTRL_REG with PHY_Enable_Auto_Nego | PHY_Restart_Auto_Nego only runs in TBI mode. The 8168C never sees it.
PHY_config sets the PHY’s fine-tuning parameters, but without restarting auto-negotiation, the PHY remains silent on the cable.

Proposed fix

The .tbi_dis block must be replaced with an explicit auto-negotiation restart for non-TBI devices:

.tbi_dis:
        ; Appareils non-TBI : configurer les capacites et redemarrer l'autonegociation
        DEBUGF  1, "non-TBI: configuring autoneg capabilities\n"

        ; Capacites 10/100/1000 full et half duplex
        READ_GMII_REG PHY_AUTO_NEGO_REG
        and     eax, 0x0C1F         ; conserver bits4:0 intacts
        or      eax, PHY_Cap_10_Half or PHY_Cap_10_Full \
                  or PHY_Cap_100_Half or PHY_Cap_100_Full
        WRITE_GMII_REG PHY_AUTO_NEGO_REG, ax

        ; Capacite 1000 Mbps
        WRITE_GMII_REG PHY_1000_CTRL_REG, PHY_Cap_1000_Full or PHY_Cap_1000_Half

        ; Activer l'autonegociation et la redemarrer
        DEBUGF  1, "non-TBI: restarting autonegotiation\n"
        WRITE_GMII_REG PHY_CTRL_REG, PHY_Enable_Auto_Nego or PHY_Restart_Auto_Nego

        udelay  1
        mov     ecx, 200
    @@: dec     ecx
        jz      @f
        udelay  10
        set_io  [ebx + device.io_addr], 0
        READ_GMII_REG PHY_STAT_REG
        test    eax, PHY_Auto_Neco_Comp
        jz      @b
        DEBUGF  1, "non-TBI: autonegotiation complete\n"
    @@:

This block fully replaces lines 717–719 of the current file. The logic is identical to that of the TBI path (lines 687–715), with the exception that negotiation capabilities are not assumed — they are explicitly initialised before triggering the restart.

And here is what the logs say about its work
(and yes, all the LEDs remain stubbornly off):

 % grep ^RTL8169 BOARDLOG.TXT 
RTL8169: Loading driver - v.2026-05-05
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: probe
RTL8169: init_board
RTL8169: Detected chip: Realtek 8168c/8111c
RTL8169: MAC = 00-24-1D-[redacted]
RTL8169: hw_PHY_config: priv.mcfg=22, priv.pcfg=0
RTL8169: mcfg_21_22: Page 0x0001 : basic settings
RTL8169: mcfg_21_22: Page 0x0002 : registers 0x00 et 0x01
RTL8169: mcfg_21_22: Page 0x0002 : register 0x0c
RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (first entry)
RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (duplicate entry as per CFG_METHOD_6)
RTL8169: mcfg_21_22: Page 0x0000 : registers 0x16, 0x14, 0x0d
RTL8169: mcfg_21_22: Page 0x0001 : register 0x1d
RTL8169: mcfg_21_22: Page 0x0001 : register 0x17
RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h
RTL8169: non-TBI: configuring autoneg capabilities
RTL8169: non-TBI: restarting autonegotiation
RTL8169: resetting
RTL8169: init_ring
RTL8169: hw_start
RTL8169: Attaching int handler to irq E
RTL8169: Waiting for chip to reset... RTL8169: done!
RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3
RTL8169: set_rx_mode
RTL8169: INT for 0x81024000
RTL8169: Status: 0020
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: init OK!

The last debug message non-TBI: autonegotiation complete is missing from the log. Rather than proceeding with a new iteration with Claude, it makes more sense to ask what you think of his hypothesis. I’ve already questioned his analysis, but he stood by it with confidence (as all LLMs are so good at doing). Here is how I phrased my objection:

Regarding point 2, which has now become your main assumption in your latest reply,

on the one hand, the author of the KolibriOS driver should explain why he completely avoids explicitly restarting auto-negotiation for non-TBI devices, given that this step is known to be essential;

on the other hand, you propose replicating for non-TBI adapters the same sequence that triggers the renegotiation restart as that written for TBI adapters. But if these two sequences were known to be identical, then the driver author would not have bothered to include a logical switch to apply it to TBI devices and not to non-TBI devices.

We could also talk about it on Telegram.

As for the LEDs, none of them light up on the RJ45 connector soldered to the motherboard. I hooked up a mini-hub between the computer and the wall-mounted RJ45 outlet. Under Linux, all the LEDs light up and the traffic LED flashes. Under Kolibri, none of the LEDs light up, including none on the mini-hub.

Hello, relying on Claude.ai, I carried on with our work and assembled a new version (please see the attached `RTL8169_0x3C4_v5.asm` file), based on the following analysis of the FASM code. Here’s an excerpt from what the LLM has to say: > ## Code analysis — probable cause identified > > After reading through the entire file, the most likely cause is clear. It lies in probe, on lines 681–719. > > ### The problem: auto-negotiation is never restarted for the 8168C > > The flow for a non-TBI adapter (which the 8168C is) is as follows: > > ``` > call PHY_config ; ← écrit les registres de réglage fin, OK > ... > test al, PHYS_TBI_Enable > jz .tbi_dis ; ← le 8168C emprunte ce branchement > > ; [le bloc TBI exécute : set capabilities + restart autoneg + attente] > ; ← tout cela est SAUTÉ pour le 8168C > > .tbi_dis: > udelay 1 ; ← un simple délai, puis on continue > @@: ; ← jamais de restart d'autonégociation > ``` > > The block that writes `PHY_AUTO_NEGO_REG`, `PHY_1000_CTRL_REG`, then restarts auto-negotiation via `PHY_CTRL_REG` with `PHY_Enable_Auto_Nego | PHY_Restart_Auto_Nego` only runs in TBI mode. The 8168C never sees it. > `PHY_config` sets the PHY’s fine-tuning parameters, but without restarting auto-negotiation, the PHY remains silent on the cable. > > ### Proposed fix > > The `.tbi_dis` block must be replaced with an explicit auto-negotiation restart for non-TBI devices: > > ``` > .tbi_dis: > ; Appareils non-TBI : configurer les capacites et redemarrer l'autonegociation > DEBUGF 1, "non-TBI: configuring autoneg capabilities\n" > > ; Capacites 10/100/1000 full et half duplex > READ_GMII_REG PHY_AUTO_NEGO_REG > and eax, 0x0C1F ; conserver bits4:0 intacts > or eax, PHY_Cap_10_Half or PHY_Cap_10_Full \ > or PHY_Cap_100_Half or PHY_Cap_100_Full > WRITE_GMII_REG PHY_AUTO_NEGO_REG, ax > > ; Capacite 1000 Mbps > WRITE_GMII_REG PHY_1000_CTRL_REG, PHY_Cap_1000_Full or PHY_Cap_1000_Half > > ; Activer l'autonegociation et la redemarrer > DEBUGF 1, "non-TBI: restarting autonegotiation\n" > WRITE_GMII_REG PHY_CTRL_REG, PHY_Enable_Auto_Nego or PHY_Restart_Auto_Nego > > udelay 1 > mov ecx, 200 > @@: dec ecx > jz @f > udelay 10 > set_io [ebx + device.io_addr], 0 > READ_GMII_REG PHY_STAT_REG > test eax, PHY_Auto_Neco_Comp > jz @b > DEBUGF 1, "non-TBI: autonegotiation complete\n" > @@: > ``` > > This block fully replaces lines 717–719 of the current file. The logic is identical to that of the TBI path (lines 687–715), with the exception that negotiation capabilities are not assumed — they are explicitly initialised before triggering the restart. And here is what the logs say about its work (and yes, all the LEDs remain stubbornly off): ``` % grep ^RTL8169 BOARDLOG.TXT RTL8169: Loading driver - v.2026-05-05 RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: probe RTL8169: init_board RTL8169: Detected chip: Realtek 8168c/8111c RTL8169: MAC = 00-24-1D-[redacted] RTL8169: hw_PHY_config: priv.mcfg=22, priv.pcfg=0 RTL8169: mcfg_21_22: Page 0x0001 : basic settings RTL8169: mcfg_21_22: Page 0x0002 : registers 0x00 et 0x01 RTL8169: mcfg_21_22: Page 0x0002 : register 0x0c RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (first entry) RTL8169: mcfg_21_22: Page 0x0002 : register 0x06 (duplicate entry as per CFG_METHOD_6) RTL8169: mcfg_21_22: Page 0x0000 : registers 0x16, 0x14, 0x0d RTL8169: mcfg_21_22: Page 0x0001 : register 0x1d RTL8169: mcfg_21_22: Page 0x0001 : register 0x17 RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h RTL8169: non-TBI: configuring autoneg capabilities RTL8169: non-TBI: restarting autonegotiation RTL8169: resetting RTL8169: init_ring RTL8169: hw_start RTL8169: Attaching int handler to irq E RTL8169: Waiting for chip to reset... RTL8169: done! RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3 RTL8169: set_rx_mode RTL8169: INT for 0x81024000 RTL8169: Status: 0020 RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: init OK! ``` The last debug message `non-TBI: autonegotiation complete` is missing from the log. Rather than proceeding with a new iteration with Claude, it makes more sense to ask what you think of his hypothesis. I’ve already questioned his analysis, but he stood by it with confidence (as all LLMs are so good at doing). Here is how I phrased my objection: > Regarding point 2, which has now become your main assumption in your latest reply, > > on the one hand, the author of the KolibriOS driver should explain why he completely avoids explicitly restarting auto-negotiation for non-TBI devices, given that this step is known to be essential; > > on the other hand, you propose replicating for non-TBI adapters the same sequence that triggers the renegotiation restart as that written for TBI adapters. But if these two sequences were known to be identical, then the driver author would not have bothered to include a logical switch to apply it to TBI devices and not to non-TBI devices. We could also talk about it on Telegram. As for the LEDs, none of them light up on the RJ45 connector soldered to the motherboard. I hooked up a mini-hub between the computer and the wall-mounted RJ45 outlet. Under Linux, all the LEDs light up and the traffic LED flashes. Under Kolibri, none of the LEDs light up, including none on the mini-hub.
Member

I think we need more information !

If the link doesn't come up, first things I think about are:

  • Energy/power settings. I understood from previous posts this chip is integrated on a motherboard.
    Try disabling LAN related power settings in BIOS/UEFI.
    You can also try a warm reboot from eg Linux into KolibriOS.

  • Network adapters are typically split into a MAC (Media Access Controller) and PHY (Physical layer converter).
    Sometimes they are integrated into a single chip, and they know each-other very well and play along nicely.
    Sometimes they are two separate chips and the driver needs to convince the MAC a little to play nicely with the PHY...
    Can you perhaps make a picture of the concerning chip(s) on your motherboard?
    They will be close to the Ethernet port and have Realtek logo.

Meanwhile, I dug through some boxes and found a motherboard with RTL8111B chips that I haven't tested before.
I will test it soon and report back here.

I think we need more information ! If the link doesn't come up, first things I think about are: - Energy/power settings. I understood from previous posts this chip is integrated on a motherboard. Try disabling LAN related power settings in BIOS/UEFI. You can also try a warm reboot from eg Linux into KolibriOS. - Network adapters are typically split into a MAC (Media Access Controller) and PHY (Physical layer converter). Sometimes they are integrated into a single chip, and they know each-other very well and play along nicely. Sometimes they are two separate chips and the driver needs to convince the MAC a little to play nicely with the PHY... Can you perhaps make a picture of the concerning chip(s) on your motherboard? They will be close to the Ethernet port and have Realtek logo. Meanwhile, I dug through some boxes and found a motherboard with RTL8111B chips that I haven't tested before. I will test it soon and report back here.
Member

So.. the test results are in !

The motherboard I tested with has two identical RTL8111B chips onboard.
I also added one PCI-express and 3 regular PCI card RTL8169 and similar NICs.
One of the onboard ports was used to boot KolibriOS via PXE (using built-in ROM on motherboard).

This onboard port was working fine in KolibriOS: gigabit link detected, IP address assigned etc.
Second port was seen in KolibriOS and link was detected when cable plugged in.
It however negotiated only 100mbit instead of gigabit, and send/receive was not working (DHCP failed)
Only one of the other NICs was detected. (The motherboard has 6 PCI-slots, so there must be at least one PCI bridge, clearly it was disabled)

I disabled ACPI in the BIOS settings and tried again.
Now the second RTL8111B port was also working (sometimes), but link was still only seen as 100mbit.

Additional cards were now also visible:
I got a working gigabit link on RTL8168evl/RTL8111evl (the pci-express card)
The three PCI-cards all identify as RTL8169sb/RTL8110sb, link was detected as 100mbit only on all of them, but working.

So.. the test results are in ! The motherboard I tested with has two identical RTL8111B chips onboard. I also added one PCI-express and 3 regular PCI card RTL8169 and similar NICs. One of the onboard ports was used to boot KolibriOS via PXE (using built-in ROM on motherboard). This onboard port was working fine in KolibriOS: gigabit link detected, IP address assigned etc. Second port was seen in KolibriOS and link was detected when cable plugged in. It however negotiated only 100mbit instead of gigabit, and send/receive was not working (DHCP failed) Only one of the other NICs was detected. (The motherboard has 6 PCI-slots, so there must be at least one PCI bridge, clearly it was disabled) I disabled ACPI in the BIOS settings and tried again. Now the second RTL8111B port was also working (sometimes), but link was still only seen as 100mbit. Additional cards were now also visible: I got a working gigabit link on RTL8168evl/RTL8111evl (the pci-express card) The three PCI-cards all identify as RTL8169sb/RTL8110sb, link was detected as 100mbit only on all of them, but working.
Member

I corrected information in the previous post, after testing again.

I corrected information in the previous post, after testing again.
Member

The LLMs were right regarding this point:
"The problem: auto-negotiation is never restarted for the 8168C", but their proposed solution was incomplete.
(They didn't go through the effort to understand reason for 'set_io' macro and how to use it properly.)

After fixing the issue manually, Gigabit is now working on both onboard ports of my test setup.

The LLMs were right regarding this point: "The problem: auto-negotiation is never restarted for the 8168C", but their proposed solution was incomplete. (They didn't go through the effort to understand reason for 'set_io' macro and how to use it properly.) After fixing the issue manually, Gigabit is now working on both onboard ports of my test setup.
Author

Hello!

Attached are photos:

  • of the BIOS settings, in which the Ethernet adapter’s power-saving features had already been disabled; there is no room for manoeuvre here;
  • of the RTL8111C QFP-64 package, taken from two different angles to help make out the full silkscreen (97R85A1 G931..., the last character remaining indecipherable).

Furthermore, this BIOS offers no accessible settings regarding ACPI. It is sometimes possible to open certain BIOS settings of in “extended mode”, where additional choices suddenly become available to the user; I will check if this is the case for this one.

Regarding warm booting from Linux into Kolibri, I will look into how to hot-swap the Linux kernel to memdisk --initrd=kolibri.img. These commands, tried without certainty:

kexec -l /mnt/KOLIBRIOS/SYSLINUX/MEMDISK --initrd=/mnt/KOLIBRIOS/SYSLINUX/KOLIBRI.IMG
systemctl kexec

caused the machine to reboot via the BIOS POST phase, which is precisely what they were supposed to avoid. So I’ll have to ask a Linux guru...

Lastly, the datasheet we were discussing this morning on Telegram is completely silent on the point that interests us: the proprietary registers and their initialisation values. Were you referring to that same datasheet, or to a different one?

Cheers!

Hello! Attached are photos: - of the BIOS settings, in which the Ethernet adapter’s power-saving features had already been disabled; there is no room for manoeuvre here; - of the RTL8111C QFP-64 package, taken from two different angles to help make out the full silkscreen (97R85A1 G931..., the last character remaining indecipherable). Furthermore, this BIOS offers no accessible settings regarding ACPI. It is sometimes possible to open certain BIOS settings of in “extended mode”, where additional choices suddenly become available to the user; I will check if this is the case for this one. Regarding warm booting from Linux into Kolibri, I will look into how to hot-swap the Linux kernel to memdisk --initrd=kolibri.img. These commands, tried without certainty: ``` kexec -l /mnt/KOLIBRIOS/SYSLINUX/MEMDISK --initrd=/mnt/KOLIBRIOS/SYSLINUX/KOLIBRI.IMG systemctl kexec ``` caused the machine to reboot via the BIOS POST phase, which is precisely what they were supposed to avoid. So I’ll have to ask a Linux guru... Lastly, the datasheet we were discussing this morning on Telegram is completely silent on the point that interests us: the proprietary registers and their initialisation values. Were you referring [to that same datasheet](https://theretroweb.com/chip/documentation/rtl8111c-r1-5-666b5593b25b2100411437.pdf), or to a different one? Cheers!
Author

Our answers overlap. Your latest finding seems very promising...

Our answers overlap. Your latest finding seems very promising...
Member

Attached is the code with gigabit + aneg init patched.
More issues remain, but it's a start.

Attached is the code with gigabit + aneg init patched. More issues remain, but it's a start.
Member

ACPI setting on my board

ACPI setting on my board
Member

The 'warm reboot' test might also be replaced with enabling 'onboard LAN boot ROM', and have 'boot from LAN' option in the boot order list, before the one that actually boots KolibriOS.

The 'warm reboot' test might also be replaced with enabling 'onboard LAN boot ROM', and have 'boot from LAN' option in the boot order list, before the one that actually boots KolibriOS.
Owner

Is this issue fully resolved by #440 and can be closed?

Is this issue fully resolved by #440 and can be closed?
Member

@Burer, I'm awaiting feedback from the OP, as the original issue was related to RTL8111C, which I was unable to test.

@Burer, I'm awaiting feedback from the OP, as the original issue was related to RTL8111C, which I was unable to test.
Owner

Hello, it is not possible to turn off ACPI in my BIOS. Only let the system decide (S1&S3).
The card is identified well, but has "disconnected" status.

Hello, it is not possible to turn off ACPI in my BIOS. Only let the system decide (S1&S3). The card is identified well, but has "disconnected" status.
Member

@Golffies: @Leency had an interesting development where his RTL8169SC card started to work only after a hot reboot from windows. We'll investigate by dumping registers after hot windows vs cold reboot, perhaps its something you can also investigate.

@Golffies: @Leency had an interesting development where his RTL8169SC card started to work only after a hot reboot from windows. We'll investigate by dumping registers after hot windows vs cold reboot, perhaps its something you can also investigate.
Member

@Golffies : Please try the driver from attachment if you have the time. It will perform a dump of registers at certain strategic points, but also has fixed PHY revision logic.

@Golffies : Please try the driver from attachment if you have the time. It will perform a dump of registers at certain strategic points, but also has fixed PHY revision logic.
Author

Hi guys,

Hello, it is not possible to turn off ACPI in my BIOS. Only let the system decide (S1&S3).

The BIOS on my motherboard is also from Award. It doesn't have the ability to disable ACPI either.

Hi guys, > Hello, it is not possible to turn off ACPI in my BIOS. Only let the system decide (S1&S3). The BIOS on my motherboard is also from Award. It doesn't have the ability to disable ACPI either.
Author

@hidnplayr

Here is the dump generated by your latest version of the RTL8169.SYS driver.

Please try the driver from attachment if you have the time. It will perform a dump of registers at certain strategic points, but also has fixed PHY revision logic.

K : driver /sys/drivers/RTL8169.sys mapped to A0D2D000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0xFFFFFFFF
RTL8169: Reg 0x0000000C = 0xFFFFFFFF
RTL8169: Reg 0x00000010 = 0x1C911000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x00C42100
RTL8169: Reg 0x00000024 = 0x00000000
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x04000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x0000070E
RTL8169: Reg 0x00000048 = 0xC3DCECA3
RTL8169: Reg 0x0000004C = 0xC3DCED74
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x00017949
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x00016C65
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xC3DCFA0B
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001000
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000
RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000
RTL8169: GMII 0xF = 0x00003000
RTL8169: probe
RTL8169: init_board
RTL8169: Checking if the device is awake
RTL8169: Waking up the device
RTL8169: Device is awake

RTL8169: Detected chip: Realtek 8168c/8111c
RTL8169: TxConfig = 0x3F4000C0
RTL8169: MAC = 00-24-1D-[redacted]
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0xFFFFFFFF
RTL8169: Reg 0x0000000C = 0xFFFFFFFF
RTL8169: Reg 0x00000010 = 0x1C911000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x00C42100
RTL8169: Reg 0x00000024 = 0x00000000
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x00000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x0000070E
RTL8169: Reg 0x00000048 = 0xC50B3AE3
RTL8169: Reg 0x0000004C = 0xC50B3BB4
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x800F3000
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x00016C65
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xC50B480F
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000

RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001000
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000
RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000
RTL8169: GMII 0xF = 0x00003000
RTL8169: PHY config
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0xFFFFFFFF
RTL8169: Reg 0x0000000C = 0xFFFFFFFF
RTL8169: Reg 0x00000010 = 0x1C911000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x00C42100
RTL8169: Reg 0x00000024 = 0x00000000
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x00000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x0000070E
RTL8169: Reg 0x00000048 = 0xC53F9612
RTL8169: Reg 0x0000004C = 0xC53F96E6
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x800F3000
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x00016C65
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xC53FA32F
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001000
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000

RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000

RTL8169: GMII 0xF = 0x00003000
RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h
RTL8169: Enabling 1000mbit modes

RTL8169: Waiting for auto-negotiation to complete
RTL8169: auto-negotiation complete
RTL8169: resetting
RTL8169: Reg 0x00000000 = 0xFFFFFFFF
RTL8169: Reg 0x00000004 = 0xFFFFFFFF
RTL8169: Reg 0x00000008 = 0xFFFFFFFF
RTL8169: Reg 0x0000000C = 0xFFFFFFFF
RTL8169: Reg 0x00000010 = 0xFFFFFFFF
RTL8169: Reg 0x00000014 = 0xFFFFFFFF
RTL8169: Reg 0x00000018 = 0xFFFFFFFF
RTL8169: Reg 0x0000001C = 0xFFFFFFFF
RTL8169: Reg 0x00000020 = 0xFFFFFFFF
RTL8169: Reg 0x00000024 = 0xFFFFFFFF
RTL8169: Reg 0x00000028 = 0xFFFFFFFF
RTL8169: Reg 0x0000002C = 0xFFFFFFFF
RTL8169: Reg 0x00000030 = 0xFFFFFFFF
RTL8169: Reg 0x00000034 = 0xFFFFFFFF
RTL8169: Reg 0x00000038 = 0xFFFFFFFF
RTL8169: Reg 0x0000003C = 0xFFFFFFFF
RTL8169: Reg 0x00000040 = 0xFFFFFFFF
RTL8169: Reg 0x00000044 = 0xFFFFFFFF
RTL8169: Reg 0x00000048 = 0xFFFFFFFF
RTL8169: Reg 0x0000004C = 0xFFFFFFFF
RTL8169: Reg 0x00000050 = 0xFFFFFFFF
RTL8169: Reg 0x00000054 = 0xFFFFFFFF
RTL8169: Reg 0x00000058 = 0xFFFFFFFF
RTL8169: Reg 0x0000005C = 0xFFFFFFFF
RTL8169: Reg 0x00000060 = 0xFFFFFFFF
RTL8169: Reg 0x00000064 = 0xFFFFFFFF
RTL8169: Reg 0x00000068 = 0xFFFFFFFF
RTL8169: Reg 0x0000006C = 0xFFFFFFFF
RTL8169: Reg 0x00000070 = 0xFFFFFFFF
RTL8169: Reg 0x00000074 = 0xFFFFFFFF
RTL8169: Reg 0x00000078 = 0xFFFFFFFF
RTL8169: Reg 0x0000007C = 0xFFFFFFFF
RTL8169: Reg 0x00000080 = 0xFFFFFFFF
RTL8169: Reg 0x00000084 = 0xFFFFFFFF
RTL8169: Reg 0x00000088 = 0xFFFFFFFF
RTL8169: Reg 0x0000008C = 0xFFFFFFFF
RTL8169: Reg 0x00000090 = 0xFFFFFFFF
RTL8169: Reg 0x00000094 = 0xFFFFFFFF
RTL8169: Reg 0x00000098 = 0xFFFFFFFF
RTL8169: Reg 0x0000009C = 0xFFFFFFFF
RTL8169: Reg 0x000000A0 = 0xFFFFFFFF
RTL8169: Reg 0x000000A4 = 0xFFFFFFFF
RTL8169: Reg 0x000000A8 = 0xFFFFFFFF
RTL8169: Reg 0x000000AC = 0xFFFFFFFF
RTL8169: Reg 0x000000B0 = 0xFFFFFFFF
RTL8169: Reg 0x000000B4 = 0xFFFFFFFF
RTL8169: Reg 0x000000B8 = 0xFFFFFFFF
RTL8169: Reg 0x000000BC = 0xFFFFFFFF
RTL8169: Reg 0x000000C0 = 0xFFFFFFFF
RTL8169: Reg 0x000000C4 = 0xFFFFFFFF
RTL8169: Reg 0x000000C8 = 0xFFFFFFFF
RTL8169: Reg 0x000000CC = 0xFFFFFFFF
RTL8169: Reg 0x000000D0 = 0xFFFFFFFF
RTL8169: Reg 0x000000D4 = 0xFFFFFFFF
RTL8169: Reg 0x000000D8 = 0xFFFFFFFF
RTL8169: Reg 0x000000DC = 0xFFFFFFFF
RTL8169: Reg 0x000000E0 = 0xFFFFFFFF
RTL8169: Reg 0x000000E4 = 0xFFFFFFFF
RTL8169: Reg 0x000000E8 = 0xFFFFFFFF
RTL8169: Reg 0x000000EC = 0xFFFFFFFF
RTL8169: Reg 0x000000F0 = 0xFFFFFFFF
RTL8169: Reg 0x000000F4 = 0xFFFFFFFF
RTL8169: Reg 0x000000F8 = 0xFFFFFFFF
RTL8169: Reg 0x000000FC = 0xFFFFFFFF
RTL8169: GMII 0x0 = 0x0000FFFF
RTL8169: GMII 0x1 = 0x0000FFFF
RTL8169: GMII 0x4 = 0x0000FFFF
RTL8169: GMII 0x5 = 0x0000FFFF
RTL8169: GMII 0x9 = 0x0000FFFF
RTL8169: GMII 0xA = 0x0000FFFF
RTL8169: GMII 0xF = 0x0000FFFF
RTL8169: init_ring
RTL8169: hw_start
RTL8169: Attaching int handler to irq E

RTL8169: Waiting for chip to reset... RTL8169: done!
RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3
RTL8169: set_rx_mode
RTL8169: Link is up, phystatus=0xFF
RTL8169: Reg 0x00000000 = 0xFFFFFFFF
RTL8169: Reg 0x00000004 = 0xFFFFFFFF
RTL8169: Reg 0x00000008 = 0xFFFFFFFF
RTL8169: Reg 0x0000000C = 0xFFFFFFFF
RTL8169: Reg 0x00000010 = 0xFFFFFFFF
RTL8169: Reg 0x00000014 = 0xFFFFFFFF
RTL8169: Reg 0x00000018 = 0xFFFFFFFF
RTL8169: Reg 0x0000001C = 0xFFFFFFFF
RTL8169: Reg 0x00000020 = 0xFFFFFFFF
RTL8169: Reg 0x00000024 = 0xFFFFFFFF
RTL8169: Reg 0x00000028 = 0xFFFFFFFF
RTL8169: Reg 0x0000002C = 0xFFFFFFFF
RTL8169: Reg 0x00000030 = 0xFFFFFFFF
RTL8169: Reg 0x00000034 = 0xFFFFFFFF
RTL8169: Reg 0x00000038 = 0xFFFFFFFF
RTL8169: Reg 0x0000003C = 0xFFFFFFFF
RTL8169: Reg 0x00000040 = 0xFFFFFFFF
RTL8169: Reg 0x00000044 = 0xFFFFFFFF
RTL8169: Reg 0x00000048 = 0xFFFFFFFF
RTL8169: Reg 0x0000004C = 0xFFFFFFFF
RTL8169: Reg 0x00000050 = 0xFFFFFFFF
RTL8169: Reg 0x00000054 = 0xFFFFFFFF
RTL8169: Reg 0x00000058 = 0xFFFFFFFF
RTL8169: Reg 0x0000005C = 0xFFFFFFFF
RTL8169: Reg 0x00000060 = 0xFFFFFFFF
RTL8169: Reg 0x00000064 = 0xFFFFFFFF
RTL8169: Reg 0x00000068 = 0xFFFFFFFF
RTL8169: Reg 0x0000006C = 0xFFFFFFFF
RTL8169: Reg 0x00000070 = 0xFFFFFFFF
RTL8169: Reg 0x00000074 = 0xFFFFFFFF
RTL8169: Reg 0x00000078 = 0xFFFFFFFF
RTL8169: Reg 0x0000007C = 0xFFFFFFFF
RTL8169: Reg 0x00000080 = 0xFFFFFFFF
RTL8169: Reg 0x00000084 = 0xFFFFFFFF
RTL8169: Reg 0x00000088 = 0xFFFFFFFF
RTL8169: Reg 0x0000008C = 0xFFFFFFFF
RTL8169: Reg 0x00000090 = 0xFFFFFFFF
RTL8169: Reg 0x00000094 = 0xFFFFFFFF
RTL8169: Reg 0x00000098 = 0xFFFFFFFF
RTL8169: Reg 0x0000009C = 0xFFFFFFFF
RTL8169: Reg 0x000000A0 = 0xFFFFFFFF
RTL8169: Reg 0x000000A4 = 0xFFFFFFFF
RTL8169: Reg 0x000000A8 = 0xFFFFFFFF
RTL8169: Reg 0x000000AC = 0xFFFFFFFF
RTL8169: Reg 0x000000B0 = 0xFFFFFFFF
RTL8169: Reg 0x000000B4 = 0xFFFFFFFF
RTL8169: Reg 0x000000B8 = 0xFFFFFFFF
RTL8169: Reg 0x000000BC = 0xFFFFFFFF
RTL8169: Reg 0x000000C0 = 0xFFFFFFFF
RTL8169: Reg 0x000000C4 = 0xFFFFFFFF
RTL8169: Reg 0x000000C8 = 0xFFFFFFFF
RTL8169: Reg 0x000000CC = 0xFFFFFFFF
RTL8169: Reg 0x000000D0 = 0xFFFFFFFF
RTL8169: Reg 0x000000D4 = 0xFFFFFFFF
RTL8169: Reg 0x000000D8 = 0xFFFFFFFF
RTL8169: Reg 0x000000DC = 0xFFFFFFFF
RTL8169: Reg 0x000000E0 = 0xFFFFFFFF
RTL8169: Reg 0x000000E4 = 0xFFFFFFFF
RTL8169: Reg 0x000000E8 = 0xFFFFFFFF
RTL8169: Reg 0x000000EC = 0xFFFFFFFF
RTL8169: Reg 0x000000F0 = 0xFFFFFFFF
RTL8169: Reg 0x000000F4 = 0xFFFFFFFF
RTL8169: Reg 0x000000F8 = 0xFFFFFFFF
RTL8169: Reg 0x000000FC = 0xFFFFFFFF
RTL8169: GMII 0x0 = 0x0000FFFF
RTL8169: GMII 0x1 = 0x0000FFFF
RTL8169: GMII 0x4 = 0x0000FFFF
RTL8169: GMII 0x5 = 0x0000FFFF
RTL8169: GMII 0x9 = 0x0000FFFF
RTL8169: GMII 0xA = 0x0000FFFF
RTL8169: GMII 0xF = 0x0000FFFF
RTL8169: init OK!
RTL8169: Transmitting packet, buffer:80F0E000, size:60
RTL8169: To: FF-FF-FF-FF-FF-FF From: 00-24-1D-[redacted] Type:0608
RTL8169: Using TX desc: 81024100

On the motherboard, the Ethernet adapter LEDs remain off, and no packets are being received or transmitted. However, the static configuration for the LAN subnet now appears in the “Network status” control panel. Interestingly, once this test driver is loaded, the Ethernet adapter no longer appears in the PCI enumeration at all.

PCI Version  = 3.00; Last PCI Bus =   
User MMIO channel = 0F.F:F 
Number of PCI units =05h 

VenID DevID Bus# Dev# Fnc Rev  Class  Subclass/ IRQ                 Company                      Description
                                      Interface
----- ----- ---- ---- --- ---  -----  --------- --- ------------------------------------------ --------------------------------
8086  2e20   00   00   00   03   06   00   00   00   Intel Corp.                                Bridge - CPU/PCI 
8086  2e21   00   01   00   03   06   04   00   0b   Intel Corp.                                Bridge - PCI/PCI 
8086  3a37   00   1a   00   00   0c   03   00   0b   Intel Corp.                                Serial Bus - USB Universal HC 
8086  3a38   00   1a   01   00   0c   03   00   0a   Intel Corp.                                Serial Bus - USB Universal HC 
8086  3a39   00   1a   02   00   0c   03   00   03   Intel Corp.                                Serial Bus - USB Universal HC 
8086  3a3c   00   1a   07   00   0c   03   20   03   Intel Corp.                                Serial Bus - USB2 Enhanced HC 
8086  3a3e   00   1b   00   00   04   03   00   09   Intel Corp.                                Multimedia - High Definition Audio 
8086  3a40   00   1c   00   00   06   04   00   0b   Intel Corp.                                Bridge - PCI/PCI 
8086  3a48   00   1c   04   00   06   04   00   0b   Intel Corp.                                Bridge - PCI/PCI 
8086  3a4a   00   1c   05   00   06   04   00   0e   Intel Corp.                                Bridge - PCI/PCI 
8086  3a34   00   1d   00   00   0c   03   00   0b   Intel Corp.                                Serial Bus - USB Universal HC 
8086  3a35   00   1d   01   00   0c   03   00   0a   Intel Corp.                                Serial Bus - USB Universal HC 
8086  3a36   00   1d   02   00   0c   03   00   03   Intel Corp.                                Serial Bus - USB Universal HC 
8086  3a3a   00   1d   07   00   0c   03   20   0b   Intel Corp.                                Serial Bus - USB2 Enhanced HC 
8086  244e   00   1e   00   90   06   04   01   --   Intel Corp.                                Bridge - Subtract.Decode PCI/PCI 
8086  3a18   00   1f   00   00   06   01   00   00   Intel Corp.                                Bridge - PCI/ISA 
8086  3a22   00   1f   02   00   01   06   01   0a   Intel Corp.                                Storage - Serial ATA - AHCI 1.0 
8086  3a30   00   1f   03   00   0c   05   00   03   Intel Corp.                                Serial Bus - SMBus 
1002  665f   01   00   00   81   03   00   00   0b   ATI TECHNOLOGIES Inc.                      Display - VGA-compatible c. 
1002  aac0   01   00   01   00   04   03   00   0e   ATI TECHNOLOGIES Inc.                      Multimedia - High Definition Audio 
197b  2368   03   00   00   00   01   01   85   0b   JMicron Technology Corp.                   Storage - IDE 

I'm here to help you continue testing. Would you like me to mail you this motherboard (I have a spare)?

@hidnplayr Here is the dump generated by your latest version of the RTL8169.SYS driver. > Please try the driver from attachment if you have the time. It will perform a dump of registers at certain strategic points, but also has fixed PHY revision logic. ``` K : driver /sys/drivers/RTL8169.sys mapped to A0D2D000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0xFFFFFFFF RTL8169: Reg 0x0000000C = 0xFFFFFFFF RTL8169: Reg 0x00000010 = 0x1C911000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x00C42100 RTL8169: Reg 0x00000024 = 0x00000000 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x04000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x0000070E RTL8169: Reg 0x00000048 = 0xC3DCECA3 RTL8169: Reg 0x0000004C = 0xC3DCED74 RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x00017949 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x00016C65 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xC3DCFA0B RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001000 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: probe RTL8169: init_board RTL8169: Checking if the device is awake RTL8169: Waking up the device RTL8169: Device is awake RTL8169: Detected chip: Realtek 8168c/8111c RTL8169: TxConfig = 0x3F4000C0 RTL8169: MAC = 00-24-1D-[redacted] RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0xFFFFFFFF RTL8169: Reg 0x0000000C = 0xFFFFFFFF RTL8169: Reg 0x00000010 = 0x1C911000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x00C42100 RTL8169: Reg 0x00000024 = 0x00000000 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x00000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x0000070E RTL8169: Reg 0x00000048 = 0xC50B3AE3 RTL8169: Reg 0x0000004C = 0xC50B3BB4 RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x800F3000 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x00016C65 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xC50B480F RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001000 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: PHY config RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0xFFFFFFFF RTL8169: Reg 0x0000000C = 0xFFFFFFFF RTL8169: Reg 0x00000010 = 0x1C911000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x00C42100 RTL8169: Reg 0x00000024 = 0x00000000 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x00000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x0000070E RTL8169: Reg 0x00000048 = 0xC53F9612 RTL8169: Reg 0x0000004C = 0xC53F96E6 RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x800F3000 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x00016C65 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xC53FA32F RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001000 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: Set MAC Reg C+CR Offset 0x82h = 0x01h RTL8169: Enabling 1000mbit modes RTL8169: Waiting for auto-negotiation to complete RTL8169: auto-negotiation complete RTL8169: resetting RTL8169: Reg 0x00000000 = 0xFFFFFFFF RTL8169: Reg 0x00000004 = 0xFFFFFFFF RTL8169: Reg 0x00000008 = 0xFFFFFFFF RTL8169: Reg 0x0000000C = 0xFFFFFFFF RTL8169: Reg 0x00000010 = 0xFFFFFFFF RTL8169: Reg 0x00000014 = 0xFFFFFFFF RTL8169: Reg 0x00000018 = 0xFFFFFFFF RTL8169: Reg 0x0000001C = 0xFFFFFFFF RTL8169: Reg 0x00000020 = 0xFFFFFFFF RTL8169: Reg 0x00000024 = 0xFFFFFFFF RTL8169: Reg 0x00000028 = 0xFFFFFFFF RTL8169: Reg 0x0000002C = 0xFFFFFFFF RTL8169: Reg 0x00000030 = 0xFFFFFFFF RTL8169: Reg 0x00000034 = 0xFFFFFFFF RTL8169: Reg 0x00000038 = 0xFFFFFFFF RTL8169: Reg 0x0000003C = 0xFFFFFFFF RTL8169: Reg 0x00000040 = 0xFFFFFFFF RTL8169: Reg 0x00000044 = 0xFFFFFFFF RTL8169: Reg 0x00000048 = 0xFFFFFFFF RTL8169: Reg 0x0000004C = 0xFFFFFFFF RTL8169: Reg 0x00000050 = 0xFFFFFFFF RTL8169: Reg 0x00000054 = 0xFFFFFFFF RTL8169: Reg 0x00000058 = 0xFFFFFFFF RTL8169: Reg 0x0000005C = 0xFFFFFFFF RTL8169: Reg 0x00000060 = 0xFFFFFFFF RTL8169: Reg 0x00000064 = 0xFFFFFFFF RTL8169: Reg 0x00000068 = 0xFFFFFFFF RTL8169: Reg 0x0000006C = 0xFFFFFFFF RTL8169: Reg 0x00000070 = 0xFFFFFFFF RTL8169: Reg 0x00000074 = 0xFFFFFFFF RTL8169: Reg 0x00000078 = 0xFFFFFFFF RTL8169: Reg 0x0000007C = 0xFFFFFFFF RTL8169: Reg 0x00000080 = 0xFFFFFFFF RTL8169: Reg 0x00000084 = 0xFFFFFFFF RTL8169: Reg 0x00000088 = 0xFFFFFFFF RTL8169: Reg 0x0000008C = 0xFFFFFFFF RTL8169: Reg 0x00000090 = 0xFFFFFFFF RTL8169: Reg 0x00000094 = 0xFFFFFFFF RTL8169: Reg 0x00000098 = 0xFFFFFFFF RTL8169: Reg 0x0000009C = 0xFFFFFFFF RTL8169: Reg 0x000000A0 = 0xFFFFFFFF RTL8169: Reg 0x000000A4 = 0xFFFFFFFF RTL8169: Reg 0x000000A8 = 0xFFFFFFFF RTL8169: Reg 0x000000AC = 0xFFFFFFFF RTL8169: Reg 0x000000B0 = 0xFFFFFFFF RTL8169: Reg 0x000000B4 = 0xFFFFFFFF RTL8169: Reg 0x000000B8 = 0xFFFFFFFF RTL8169: Reg 0x000000BC = 0xFFFFFFFF RTL8169: Reg 0x000000C0 = 0xFFFFFFFF RTL8169: Reg 0x000000C4 = 0xFFFFFFFF RTL8169: Reg 0x000000C8 = 0xFFFFFFFF RTL8169: Reg 0x000000CC = 0xFFFFFFFF RTL8169: Reg 0x000000D0 = 0xFFFFFFFF RTL8169: Reg 0x000000D4 = 0xFFFFFFFF RTL8169: Reg 0x000000D8 = 0xFFFFFFFF RTL8169: Reg 0x000000DC = 0xFFFFFFFF RTL8169: Reg 0x000000E0 = 0xFFFFFFFF RTL8169: Reg 0x000000E4 = 0xFFFFFFFF RTL8169: Reg 0x000000E8 = 0xFFFFFFFF RTL8169: Reg 0x000000EC = 0xFFFFFFFF RTL8169: Reg 0x000000F0 = 0xFFFFFFFF RTL8169: Reg 0x000000F4 = 0xFFFFFFFF RTL8169: Reg 0x000000F8 = 0xFFFFFFFF RTL8169: Reg 0x000000FC = 0xFFFFFFFF RTL8169: GMII 0x0 = 0x0000FFFF RTL8169: GMII 0x1 = 0x0000FFFF RTL8169: GMII 0x4 = 0x0000FFFF RTL8169: GMII 0x5 = 0x0000FFFF RTL8169: GMII 0x9 = 0x0000FFFF RTL8169: GMII 0xA = 0x0000FFFF RTL8169: GMII 0xF = 0x0000FFFF RTL8169: init_ring RTL8169: hw_start RTL8169: Attaching int handler to irq E RTL8169: Waiting for chip to reset... RTL8169: done! RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3 RTL8169: set_rx_mode RTL8169: Link is up, phystatus=0xFF RTL8169: Reg 0x00000000 = 0xFFFFFFFF RTL8169: Reg 0x00000004 = 0xFFFFFFFF RTL8169: Reg 0x00000008 = 0xFFFFFFFF RTL8169: Reg 0x0000000C = 0xFFFFFFFF RTL8169: Reg 0x00000010 = 0xFFFFFFFF RTL8169: Reg 0x00000014 = 0xFFFFFFFF RTL8169: Reg 0x00000018 = 0xFFFFFFFF RTL8169: Reg 0x0000001C = 0xFFFFFFFF RTL8169: Reg 0x00000020 = 0xFFFFFFFF RTL8169: Reg 0x00000024 = 0xFFFFFFFF RTL8169: Reg 0x00000028 = 0xFFFFFFFF RTL8169: Reg 0x0000002C = 0xFFFFFFFF RTL8169: Reg 0x00000030 = 0xFFFFFFFF RTL8169: Reg 0x00000034 = 0xFFFFFFFF RTL8169: Reg 0x00000038 = 0xFFFFFFFF RTL8169: Reg 0x0000003C = 0xFFFFFFFF RTL8169: Reg 0x00000040 = 0xFFFFFFFF RTL8169: Reg 0x00000044 = 0xFFFFFFFF RTL8169: Reg 0x00000048 = 0xFFFFFFFF RTL8169: Reg 0x0000004C = 0xFFFFFFFF RTL8169: Reg 0x00000050 = 0xFFFFFFFF RTL8169: Reg 0x00000054 = 0xFFFFFFFF RTL8169: Reg 0x00000058 = 0xFFFFFFFF RTL8169: Reg 0x0000005C = 0xFFFFFFFF RTL8169: Reg 0x00000060 = 0xFFFFFFFF RTL8169: Reg 0x00000064 = 0xFFFFFFFF RTL8169: Reg 0x00000068 = 0xFFFFFFFF RTL8169: Reg 0x0000006C = 0xFFFFFFFF RTL8169: Reg 0x00000070 = 0xFFFFFFFF RTL8169: Reg 0x00000074 = 0xFFFFFFFF RTL8169: Reg 0x00000078 = 0xFFFFFFFF RTL8169: Reg 0x0000007C = 0xFFFFFFFF RTL8169: Reg 0x00000080 = 0xFFFFFFFF RTL8169: Reg 0x00000084 = 0xFFFFFFFF RTL8169: Reg 0x00000088 = 0xFFFFFFFF RTL8169: Reg 0x0000008C = 0xFFFFFFFF RTL8169: Reg 0x00000090 = 0xFFFFFFFF RTL8169: Reg 0x00000094 = 0xFFFFFFFF RTL8169: Reg 0x00000098 = 0xFFFFFFFF RTL8169: Reg 0x0000009C = 0xFFFFFFFF RTL8169: Reg 0x000000A0 = 0xFFFFFFFF RTL8169: Reg 0x000000A4 = 0xFFFFFFFF RTL8169: Reg 0x000000A8 = 0xFFFFFFFF RTL8169: Reg 0x000000AC = 0xFFFFFFFF RTL8169: Reg 0x000000B0 = 0xFFFFFFFF RTL8169: Reg 0x000000B4 = 0xFFFFFFFF RTL8169: Reg 0x000000B8 = 0xFFFFFFFF RTL8169: Reg 0x000000BC = 0xFFFFFFFF RTL8169: Reg 0x000000C0 = 0xFFFFFFFF RTL8169: Reg 0x000000C4 = 0xFFFFFFFF RTL8169: Reg 0x000000C8 = 0xFFFFFFFF RTL8169: Reg 0x000000CC = 0xFFFFFFFF RTL8169: Reg 0x000000D0 = 0xFFFFFFFF RTL8169: Reg 0x000000D4 = 0xFFFFFFFF RTL8169: Reg 0x000000D8 = 0xFFFFFFFF RTL8169: Reg 0x000000DC = 0xFFFFFFFF RTL8169: Reg 0x000000E0 = 0xFFFFFFFF RTL8169: Reg 0x000000E4 = 0xFFFFFFFF RTL8169: Reg 0x000000E8 = 0xFFFFFFFF RTL8169: Reg 0x000000EC = 0xFFFFFFFF RTL8169: Reg 0x000000F0 = 0xFFFFFFFF RTL8169: Reg 0x000000F4 = 0xFFFFFFFF RTL8169: Reg 0x000000F8 = 0xFFFFFFFF RTL8169: Reg 0x000000FC = 0xFFFFFFFF RTL8169: GMII 0x0 = 0x0000FFFF RTL8169: GMII 0x1 = 0x0000FFFF RTL8169: GMII 0x4 = 0x0000FFFF RTL8169: GMII 0x5 = 0x0000FFFF RTL8169: GMII 0x9 = 0x0000FFFF RTL8169: GMII 0xA = 0x0000FFFF RTL8169: GMII 0xF = 0x0000FFFF RTL8169: init OK! RTL8169: Transmitting packet, buffer:80F0E000, size:60 RTL8169: To: FF-FF-FF-FF-FF-FF From: 00-24-1D-[redacted] Type:0608 RTL8169: Using TX desc: 81024100 ``` On the motherboard, the Ethernet adapter LEDs remain off, and no packets are being received or transmitted. However, the static configuration for the LAN subnet now appears in the “Network status” control panel. Interestingly, once this test driver is loaded, the Ethernet adapter no longer appears in the PCI enumeration at all. ``` PCI Version = 3.00; Last PCI Bus = User MMIO channel = 0F.F:F Number of PCI units =05h VenID DevID Bus# Dev# Fnc Rev Class Subclass/ IRQ Company Description Interface ----- ----- ---- ---- --- --- ----- --------- --- ------------------------------------------ -------------------------------- 8086 2e20 00 00 00 03 06 00 00 00 Intel Corp. Bridge - CPU/PCI 8086 2e21 00 01 00 03 06 04 00 0b Intel Corp. Bridge - PCI/PCI 8086 3a37 00 1a 00 00 0c 03 00 0b Intel Corp. Serial Bus - USB Universal HC 8086 3a38 00 1a 01 00 0c 03 00 0a Intel Corp. Serial Bus - USB Universal HC 8086 3a39 00 1a 02 00 0c 03 00 03 Intel Corp. Serial Bus - USB Universal HC 8086 3a3c 00 1a 07 00 0c 03 20 03 Intel Corp. Serial Bus - USB2 Enhanced HC 8086 3a3e 00 1b 00 00 04 03 00 09 Intel Corp. Multimedia - High Definition Audio 8086 3a40 00 1c 00 00 06 04 00 0b Intel Corp. Bridge - PCI/PCI 8086 3a48 00 1c 04 00 06 04 00 0b Intel Corp. Bridge - PCI/PCI 8086 3a4a 00 1c 05 00 06 04 00 0e Intel Corp. Bridge - PCI/PCI 8086 3a34 00 1d 00 00 0c 03 00 0b Intel Corp. Serial Bus - USB Universal HC 8086 3a35 00 1d 01 00 0c 03 00 0a Intel Corp. Serial Bus - USB Universal HC 8086 3a36 00 1d 02 00 0c 03 00 03 Intel Corp. Serial Bus - USB Universal HC 8086 3a3a 00 1d 07 00 0c 03 20 0b Intel Corp. Serial Bus - USB2 Enhanced HC 8086 244e 00 1e 00 90 06 04 01 -- Intel Corp. Bridge - Subtract.Decode PCI/PCI 8086 3a18 00 1f 00 00 06 01 00 00 Intel Corp. Bridge - PCI/ISA 8086 3a22 00 1f 02 00 01 06 01 0a Intel Corp. Storage - Serial ATA - AHCI 1.0 8086 3a30 00 1f 03 00 0c 05 00 03 Intel Corp. Serial Bus - SMBus 1002 665f 01 00 00 81 03 00 00 0b ATI TECHNOLOGIES Inc. Display - VGA-compatible c. 1002 aac0 01 00 01 00 04 03 00 0e ATI TECHNOLOGIES Inc. Multimedia - High Definition Audio 197b 2368 03 00 00 00 01 01 85 0b JMicron Technology Corp. Storage - IDE ``` I'm here to help you continue testing. Would you like me to mail you this motherboard (I have a spare)?
Member

Very interesting, the driver managed to make the card refuse to talk to the PCI(e) bus any further!
I hope the card wants to talk to us again after a (cold) reboot, so we can try again!

I adjusted the debug output a little, also the setting of power state is more finely implemented, and I skipped the writing to undocumented MAC register 0x82, as it seems its needed for very old chips only, and was likely what upset your chip.

Very interesting, the driver managed to make the card refuse to talk to the PCI(e) bus any further! I hope the card wants to talk to us again after a (cold) reboot, so we can try again! I adjusted the debug output a little, also the setting of power state is more finely implemented, and I skipped the writing to undocumented MAC register 0x82, as it seems its needed for very old chips only, and was likely what upset your chip.
Author

Hello,

This 8111C is giving us a hard time. This latest version of the 8169 driver keeps the Ethernet adapter in its usual state: LEDs off, no Ethernet signal detected. Here is the log generated:

K : driver /sys/drivers/RTL8169.sys mapped to A0F53000
RTL8169: Loading driver
RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0x00000040
RTL8169: Reg 0x0000000C = 0x01000080
RTL8169: Reg 0x00000010 = 0x1B9F8000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x18543000
RTL8169: Reg 0x00000024 = 0x00000001
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x04000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x00000708
RTL8169: Reg 0x00000048 = 0xC3D31171
RTL8169: Reg 0x0000004C = 0xC3D31244
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x00090300
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x000174C9
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xC3D31EB4
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001800
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000
RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000
RTL8169: GMII 0xF = 0x00003000
RTL8169: probe
RTL8169: init_board
RTL8169: Checking if the device is awake
RTL8169: PMCSR=0x80040008
RTL8169: Soft resetting chip
RTL8169: Detected chip: Realtek 8168c/8111c
RTL8169: TxConfig = 0x3F4000C0
RTL8169: MAC = 00-24-1D-[redacted]
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0x00000040
RTL8169: Reg 0x0000000C = 0x01000080
RTL8169: Reg 0x00000010 = 0x1B9F8000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x18543000
RTL8169: Reg 0x00000024 = 0x00000001
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x00000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x00000708
RTL8169: Reg 0x00000048 = 0xC5017765
RTL8169: Reg 0x0000004C = 0xC501783A
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x800F3000
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x000174C9
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xC5018494
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001800
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000
RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000
RTL8169: GMII 0xF = 0x00003000
RTL8169: PHY config
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0x00000040
RTL8169: Reg 0x0000000C = 0x01000080
RTL8169: Reg 0x00000010 = 0x1B9F8000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x18543000
RTL8169: Reg 0x00000024 = 0x00000001
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x00000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x00000708
RTL8169: Reg 0x00000048 = 0xC535DA77
RTL8169: Reg 0x0000004C = 0xC535DB4A
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x800F3000
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x000174C9
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xC535E7A4
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001800
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000
RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000
RTL8169: GMII 0xF = 0x00003000
RTL8169: Enabling 1000mbit modes
RTL8169: Waiting for auto-negotiation to complete
RTL8169: auto-negotiation complete
RTL8169: resetting
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0x00000040
RTL8169: Reg 0x0000000C = 0x01000080
RTL8169: Reg 0x00000010 = 0x1B9F8000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x18543000
RTL8169: Reg 0x00000024 = 0x00000001
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x00000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x00200000
RTL8169: Reg 0x00000040 = 0x3F4000C0
RTL8169: Reg 0x00000044 = 0x00000708
RTL8169: Reg 0x00000048 = 0xF2DC3237
RTL8169: Reg 0x0000004C = 0xF2DC330B
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00000000
RTL8169: Reg 0x00000060 = 0x80017949
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x000174C9
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xF2DC3F75
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0xF0000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002000
RTL8169: Reg 0x000000E4 = 0x00030000
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00001000
RTL8169: GMII 0x1 = 0x00007949
RTL8169: GMII 0x4 = 0x00000DE1
RTL8169: GMII 0x5 = 0x00000000
RTL8169: GMII 0x9 = 0x00000300
RTL8169: GMII 0xA = 0x00000000
RTL8169: GMII 0xF = 0x00003000
RTL8169: init_ring
RTL8169: hw_start
RTL8169: Attaching int handler to irq E
RTL8169: Waiting for chip to reset... RTL8169: done!
RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3
RTL8169: set_rx_mode
RTL8169: INT for 0xA0D1D000
RTL8169: Status: 0020
RTL8169: Link change detected
RTL8169: Link is down
RTL8169: Link is down
RTL8169: Reg 0x00000000 = 0xC81D2400
RTL8169: Reg 0x00000004 = 0x00004211
RTL8169: Reg 0x00000008 = 0xFFFFFFFF
RTL8169: Reg 0x0000000C = 0xFFFFFFFF
RTL8169: Reg 0x00000010 = 0x1B9F8000
RTL8169: Reg 0x00000014 = 0x00000001
RTL8169: Reg 0x00000018 = 0x00000000
RTL8169: Reg 0x0000001C = 0x00000000
RTL8169: Reg 0x00000020 = 0x00C61100
RTL8169: Reg 0x00000024 = 0x00000000
RTL8169: Reg 0x00000028 = 0x00000000
RTL8169: Reg 0x0000002C = 0x00810000
RTL8169: Reg 0x00000030 = 0x00000000
RTL8169: Reg 0x00000034 = 0x0C000000
RTL8169: Reg 0x00000038 = 0x00000000
RTL8169: Reg 0x0000003C = 0x0000007F
RTL8169: Reg 0x00000040 = 0x3F4007C0
RTL8169: Reg 0x00000044 = 0x0000E70E
RTL8169: Reg 0x00000048 = 0xF2FCD55B
RTL8169: Reg 0x0000004C = 0x00001913
RTL8169: Reg 0x00000050 = 0x1C0F0400
RTL8169: Reg 0x00000054 = 0x01000042
RTL8169: Reg 0x00000058 = 0x00000000
RTL8169: Reg 0x0000005C = 0x00DD0000
RTL8169: Reg 0x00000060 = 0x800F3000
RTL8169: Reg 0x00000064 = 0x12345678
RTL8169: Reg 0x00000068 = 0x0000F168
RTL8169: Reg 0x0000006C = 0xF0800100
RTL8169: Reg 0x00000070 = 0x00008000
RTL8169: Reg 0x00000074 = 0x00000000
RTL8169: Reg 0x00000078 = 0x00000000
RTL8169: Reg 0x0000007C = 0x00000000
RTL8169: Reg 0x00000080 = 0x000174C9
RTL8169: Reg 0x00000084 = 0x00000000
RTL8169: Reg 0x00000088 = 0xF2FCE264
RTL8169: Reg 0x0000008C = 0x00000000
RTL8169: Reg 0x00000090 = 0x00000000
RTL8169: Reg 0x00000094 = 0x00000000
RTL8169: Reg 0x00000098 = 0x00000000
RTL8169: Reg 0x0000009C = 0x00020080
RTL8169: Reg 0x000000A0 = 0x00000000
RTL8169: Reg 0x000000A4 = 0x00000000
RTL8169: Reg 0x000000A8 = 0x00000000
RTL8169: Reg 0x000000AC = 0x00000000
RTL8169: Reg 0x000000B0 = 0x00000000
RTL8169: Reg 0x000000B4 = 0x00000000
RTL8169: Reg 0x000000B8 = 0x00000000
RTL8169: Reg 0x000000BC = 0x00000000
RTL8169: Reg 0x000000C0 = 0x00000000
RTL8169: Reg 0x000000C4 = 0x00000000
RTL8169: Reg 0x000000C8 = 0x00000000
RTL8169: Reg 0x000000CC = 0x00000000
RTL8169: Reg 0x000000D0 = 0x00000000
RTL8169: Reg 0x000000D4 = 0x00000000
RTL8169: Reg 0x000000D8 = 0x08000000
RTL8169: Reg 0x000000DC = 0x00000000
RTL8169: Reg 0x000000E0 = 0x00002016
RTL8169: Reg 0x000000E4 = 0x00C61600
RTL8169: Reg 0x000000E8 = 0x00000000
RTL8169: Reg 0x000000EC = 0x0000003F
RTL8169: Reg 0x000000F0 = 0x0000003F
RTL8169: Reg 0x000000F4 = 0x00000000
RTL8169: Reg 0x000000F8 = 0x00000000
RTL8169: Reg 0x000000FC = 0x00000000
RTL8169: GMII 0x0 = 0x00000000
RTL8169: GMII 0x1 = 0x00003000
RTL8169: GMII 0x4 = 0x00003000
RTL8169: GMII 0x5 = 0x00003000
RTL8169: GMII 0x9 = 0x00003000
RTL8169: GMII 0xA = 0x00003000
RRTL8169: GMII 0xF = 0x00003000
RTL8169: init OK!
Hello, This 8111C is giving us a hard time. This latest version of the 8169 driver keeps the Ethernet adapter in its usual state: LEDs off, no Ethernet signal detected. Here is the log generated: ``` K : driver /sys/drivers/RTL8169.sys mapped to A0F53000 RTL8169: Loading driver RTL8169: Hooking into device, dev:0, bus:4, irq:E, addr:0000CE00 RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0x00000040 RTL8169: Reg 0x0000000C = 0x01000080 RTL8169: Reg 0x00000010 = 0x1B9F8000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x18543000 RTL8169: Reg 0x00000024 = 0x00000001 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x04000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x00000708 RTL8169: Reg 0x00000048 = 0xC3D31171 RTL8169: Reg 0x0000004C = 0xC3D31244 RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x00090300 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x000174C9 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xC3D31EB4 RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001800 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: probe RTL8169: init_board RTL8169: Checking if the device is awake RTL8169: PMCSR=0x80040008 RTL8169: Soft resetting chip RTL8169: Detected chip: Realtek 8168c/8111c RTL8169: TxConfig = 0x3F4000C0 RTL8169: MAC = 00-24-1D-[redacted] RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0x00000040 RTL8169: Reg 0x0000000C = 0x01000080 RTL8169: Reg 0x00000010 = 0x1B9F8000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x18543000 RTL8169: Reg 0x00000024 = 0x00000001 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x00000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x00000708 RTL8169: Reg 0x00000048 = 0xC5017765 RTL8169: Reg 0x0000004C = 0xC501783A RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x800F3000 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x000174C9 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xC5018494 RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001800 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: PHY config RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0x00000040 RTL8169: Reg 0x0000000C = 0x01000080 RTL8169: Reg 0x00000010 = 0x1B9F8000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x18543000 RTL8169: Reg 0x00000024 = 0x00000001 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x00000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x00000708 RTL8169: Reg 0x00000048 = 0xC535DA77 RTL8169: Reg 0x0000004C = 0xC535DB4A RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x800F3000 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x000174C9 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xC535E7A4 RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001800 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: Enabling 1000mbit modes RTL8169: Waiting for auto-negotiation to complete RTL8169: auto-negotiation complete RTL8169: resetting RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0x00000040 RTL8169: Reg 0x0000000C = 0x01000080 RTL8169: Reg 0x00000010 = 0x1B9F8000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x18543000 RTL8169: Reg 0x00000024 = 0x00000001 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x00000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x00200000 RTL8169: Reg 0x00000040 = 0x3F4000C0 RTL8169: Reg 0x00000044 = 0x00000708 RTL8169: Reg 0x00000048 = 0xF2DC3237 RTL8169: Reg 0x0000004C = 0xF2DC330B RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00000000 RTL8169: Reg 0x00000060 = 0x80017949 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x000174C9 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xF2DC3F75 RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0xF0000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002000 RTL8169: Reg 0x000000E4 = 0x00030000 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00001000 RTL8169: GMII 0x1 = 0x00007949 RTL8169: GMII 0x4 = 0x00000DE1 RTL8169: GMII 0x5 = 0x00000000 RTL8169: GMII 0x9 = 0x00000300 RTL8169: GMII 0xA = 0x00000000 RTL8169: GMII 0xF = 0x00003000 RTL8169: init_ring RTL8169: hw_start RTL8169: Attaching int handler to irq E RTL8169: Waiting for chip to reset... RTL8169: done! RTL8169: Set MAC Reg C+CR Offset 0xE0: bit-3 RTL8169: set_rx_mode RTL8169: INT for 0xA0D1D000 RTL8169: Status: 0020 RTL8169: Link change detected RTL8169: Link is down RTL8169: Link is down RTL8169: Reg 0x00000000 = 0xC81D2400 RTL8169: Reg 0x00000004 = 0x00004211 RTL8169: Reg 0x00000008 = 0xFFFFFFFF RTL8169: Reg 0x0000000C = 0xFFFFFFFF RTL8169: Reg 0x00000010 = 0x1B9F8000 RTL8169: Reg 0x00000014 = 0x00000001 RTL8169: Reg 0x00000018 = 0x00000000 RTL8169: Reg 0x0000001C = 0x00000000 RTL8169: Reg 0x00000020 = 0x00C61100 RTL8169: Reg 0x00000024 = 0x00000000 RTL8169: Reg 0x00000028 = 0x00000000 RTL8169: Reg 0x0000002C = 0x00810000 RTL8169: Reg 0x00000030 = 0x00000000 RTL8169: Reg 0x00000034 = 0x0C000000 RTL8169: Reg 0x00000038 = 0x00000000 RTL8169: Reg 0x0000003C = 0x0000007F RTL8169: Reg 0x00000040 = 0x3F4007C0 RTL8169: Reg 0x00000044 = 0x0000E70E RTL8169: Reg 0x00000048 = 0xF2FCD55B RTL8169: Reg 0x0000004C = 0x00001913 RTL8169: Reg 0x00000050 = 0x1C0F0400 RTL8169: Reg 0x00000054 = 0x01000042 RTL8169: Reg 0x00000058 = 0x00000000 RTL8169: Reg 0x0000005C = 0x00DD0000 RTL8169: Reg 0x00000060 = 0x800F3000 RTL8169: Reg 0x00000064 = 0x12345678 RTL8169: Reg 0x00000068 = 0x0000F168 RTL8169: Reg 0x0000006C = 0xF0800100 RTL8169: Reg 0x00000070 = 0x00008000 RTL8169: Reg 0x00000074 = 0x00000000 RTL8169: Reg 0x00000078 = 0x00000000 RTL8169: Reg 0x0000007C = 0x00000000 RTL8169: Reg 0x00000080 = 0x000174C9 RTL8169: Reg 0x00000084 = 0x00000000 RTL8169: Reg 0x00000088 = 0xF2FCE264 RTL8169: Reg 0x0000008C = 0x00000000 RTL8169: Reg 0x00000090 = 0x00000000 RTL8169: Reg 0x00000094 = 0x00000000 RTL8169: Reg 0x00000098 = 0x00000000 RTL8169: Reg 0x0000009C = 0x00020080 RTL8169: Reg 0x000000A0 = 0x00000000 RTL8169: Reg 0x000000A4 = 0x00000000 RTL8169: Reg 0x000000A8 = 0x00000000 RTL8169: Reg 0x000000AC = 0x00000000 RTL8169: Reg 0x000000B0 = 0x00000000 RTL8169: Reg 0x000000B4 = 0x00000000 RTL8169: Reg 0x000000B8 = 0x00000000 RTL8169: Reg 0x000000BC = 0x00000000 RTL8169: Reg 0x000000C0 = 0x00000000 RTL8169: Reg 0x000000C4 = 0x00000000 RTL8169: Reg 0x000000C8 = 0x00000000 RTL8169: Reg 0x000000CC = 0x00000000 RTL8169: Reg 0x000000D0 = 0x00000000 RTL8169: Reg 0x000000D4 = 0x00000000 RTL8169: Reg 0x000000D8 = 0x08000000 RTL8169: Reg 0x000000DC = 0x00000000 RTL8169: Reg 0x000000E0 = 0x00002016 RTL8169: Reg 0x000000E4 = 0x00C61600 RTL8169: Reg 0x000000E8 = 0x00000000 RTL8169: Reg 0x000000EC = 0x0000003F RTL8169: Reg 0x000000F0 = 0x0000003F RTL8169: Reg 0x000000F4 = 0x00000000 RTL8169: Reg 0x000000F8 = 0x00000000 RTL8169: Reg 0x000000FC = 0x00000000 RTL8169: GMII 0x0 = 0x00000000 RTL8169: GMII 0x1 = 0x00003000 RTL8169: GMII 0x4 = 0x00003000 RTL8169: GMII 0x5 = 0x00003000 RTL8169: GMII 0x9 = 0x00003000 RTL8169: GMII 0xA = 0x00003000 RRTL8169: GMII 0xF = 0x00003000 RTL8169: init OK! ```
Sign in to join this conversation.
4 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KolibriOS/kolibrios#432