Search by Tags

Ethernet driver registry settings

 

Compare with Revision




Subscribe for this article updates

HW Version Ethernet Controller -> Registry Path

Product Name                Controller    REGBASEKEY
---------------------------------------------------------------
Colibri PXA270 Vx.x        <->   DM9000     -> [HKLM\Comm\DM90001]
Colibri PXA300 (XT) Vx.x   <->   AX88796(B) -> [HKLM\Comm\AX887961]
Colibri PXA310 Vx.x        <->   AX88796(B) -> [HKLM\Comm\AX887961]
Colibri PXA320 V1.x        <->   AX88796(B) -> [HKLM\Comm\AX887961]
Colibri PXA320 V2.x        <->   AX88796C   -> [HKLM\Comm\AX88796C1]
Protea External NIC        <->   AX88796(B) -> [HKLM\Comm\AX887962]
Apalis iMX6                <->   ENET       -> [HKLM\Comm\ENET1]
Colibri iMX6               <->   ENET       -> [HKLM\Comm\ENET1]
Colibri VF                 <->   ENET       -> [HKLM\Comm\ENET1]
Colibri VF                 <->   ENET (2nd) -> [HKLM\Comm\ENET2] (optional)
Colibri iMX7               <->   ENET       -> [HKLM\Comm\ENET1]

Supported by all Colibri PXA Ethernet drivers

Speed and Duplex Settings

The Colibri's Ethernet controller uses auto-negotiation for speed and duplex settings. Specific settings can be forced by entering the registry settings below. In order to be compatible among the various Colibri modules, we recommend to insert the following registry keys for all controllers.

[REGBASEKEY\Parms]                ;REGBASEKEY: see table on top of this page
"Speed"  =   dword:0x00000064     ;Default no key = 100MBit. 10=10MBit, 100=100MBit
"Duplex" =   dword:0x00000001     ;Default no key = auto-negotiated. 0 = HalfDuplex, 1 = FullDuplex

Supported by AX88796(B) Ethernet Controller

Ethernet Link Probe

Supported with Toradex PXA WinCE 5 and 6 BSP V3.3 upwards
Ethernet Link probing reduces the power consumption.
If the Ethernet cable is not inserted, the Ethernet controller shuts down the PHY for a certain amount of time and enables it again for a short period of time to get the new link status. To disable this feature, change 'LinkProbeInterval' to 0 in the registry file.

[HKLM\Comm\AX88796x\Parms]        ; x=1 or 2
"LinkProbeInterval" = dword:4     ; The PHY gets enabled every x s. Default is 4s. 0 disables this feature
"LinkProbeTimeout"  = dword:2000  ; The PHY remains enabled for x ms. Default is 2000ms.

Timings

We don't recommend to make any changes in the timing related settings.

[HKLM\Comm\AX88796x\Parms]        ; x=1 or 2
"DeAssertTimeNS" = dword:0000004B ;Deassert time in nS. Default 75
"AssertTimeNS" = dword:00000017   ;Assert time in nS. Default 23

Supported by AX88796C Ethernet Controller

Differentiate Multicast Filter

Supported with Toradex PXA WinCE 5 and 6 BSP V4.1 upwards
NDIS allows to set the following two filters: - NDIS_PACKET_TYPE_ALL_MULTICAST - NDIS_PACKET_TYPE_MULTICAST The Ax88796C Ethernet controller allows to differentiate between these two settings. The following registry setting defines whether to differentiate or not. By default the driver does not differentiate and accepts both types of multicast when either of the two NDIS settings gets set.

[HKLM\Comm\AX88796C1\Parms]
"DiffMultFilt" = dword:0x00000000     ;0=do not differentiate(default), 1=differentiate

Packet Filter

Supported with Toradex PXA WinCE 5 and 6 BSP V4.1 upwards
The following registry setting allows to adjust the filter settings before they get written to the Ethernet controller register. The register value is a 16 bit value. An exact description of this register and its bits is documented in the Asix AX88796C datasheet (register 0x16, RXCR).
The filter settings set through NDIS are translated by the driver into this 16 bit value. The 32 bit registry value is divided into two 16 bit parts. The bits set to 1 in the upper 16 bit (MSB bits) are used to clear the respective bits of the Ethernet controller register. The lower 16 bits (LSB bits) are used to set bits in the Ethernet controller register. This method allows to set and clear single bits without overwriting all bits defined through NDIS.

[HKLM\Comm\AX88796C1\Parms]
"PacketFilterEx" = dword:0x00000000     ; 0 = default = NDIS value isn't adjusted
                                        ;  set bit means accept packets
                                        ; 0x00000001: set   Promiscuous
                                        ; 0x00000002: set   All Multicast Packets
                                        ; 0x00000004: set   Error Packets
                                        ; 0x00000008: set   Broadcast Packets
                                        ; 0x00000010: set   Multicast Packets from Addresses defined in Multicast List
                                        ; 0x00000020: set   Unicast Packets from Addresses defined in Multicast List
                                        ; 0x00000040: set   Runt Packets
                                        ;  clear bit means ignore packets
                                        ; 0x00010000: clear Promiscuous
                                        ; 0x00020000: clear All Multicast Packets
                                        ; 0x00040000: clear Error Packets
                                        ; 0x00080000: clear Broadcast Packets
                                        ; 0x00100000: clear Multicast Packets from Addresses defined in Multicast List
                                        ; 0x00200000: clear Unicast Packets from Addresses defined in Multicast List
                                        ; 0x00400000: clear Runt Packets
                                        ;  all other bits are reserved and must be set to 0

Flow Control

Supported with Toradex PXA WinCE 5 and 6 BSP V4.2 upwards
The AX88796C Ethernet controller supports a flow control feature also known as Pause feature. It's possible to enable this feature through the registry. However, we saw network jams with enabled FlowControl feature, therefore it is disabled by default.

[HKLM\Comm\AX88796C1\Parms]
"FlowControl" = dword:0x00000000        ; 0=Flow Control disabled(default)
                                        ; 1=Flow Control Enabled

Supported by all Colibri iMX6, Apalis iMX6 and Colibri iMX7 modules

Speed and Duplex Settings

The module's Ethernet controller uses auto-negotiation for speed and duplex settings. Specific settings can be forced by entering the registry settings below. Duplex setting is considered only if you specify also SpeedMode.

[HKLM\ENET1\Parms]                ;REGBASEKEY: see table on top of this page
"SpeedMode"  =   dword:0x00000064     ;Default no key = atuonegotiation, 1000=1GB, 100=100MBit. 10=10MBit ( 1GB is only valid for Apalis iMX6 )
"DuplexMode" =   dword:0x00000001     ;Default no key = auto-negotiated. 0 = HalfDuplex, 1 = FullDuplex

Supported by all VF modules

Speed and Duplex Settings

The module's Ethernet controller uses auto-negotiation for speed and duplex settings. Specific settings can be forced by entering the registry settings below. Duplex setting is considered only if you specify also SpeedMode.

[HKLM\ENET1\Parms]                ;REGBASEKEY: see table on top of this page
"SpeedMode"  =   dword:0x00000001     ;Default no key = atuonegotiation, 1=100MBit. 0=10MBit
"DuplexMode" =   dword:0x00000001     ;Default no key = auto-negotiated. 0 = HalfDuplex, 1 = FullDuplex