LAN78xx NDIS 6.30 and 6.50 Drivers v3.5.2.0 for Windows on ARM ============================================================== This file provides information about v3.5.2.0 release of the Ndis 6.30 and Ndis 6.50 driver s for Windows Operating Systems for ARM for the LAN78xx device. This release is targeted for the following purpose: Production ( ) Engineering Testing (X) IMPORTANT: Be mindful of "Additional Engineering Release Requirements" if applicable. File manifest ------------- Readme.txt This file. Driver\free\lan7800-arm-n630f.sys Ndis 6.30 kernel driver (signed) Driver\free\net7800-arm-n630f.inf Setup file (for PnP capable environments) Driver\free\lan7800-arm-n630f.cat Catalogue file (signed) Driver\free\lan7800-arm-n650f.sys Ndis 6.50 kernel driver (signed) Driver\free\net7800-arm-n650f.inf Setup file (for PnP capable environments) Driver\free\lan7800-arm-n650f.cat Catalogue file (signed) Installation ------------ Installation in Plug and Play capable version of Windows 8.x or Windows 10 (such as WinRT tablets) is performed as follows: 1. Save this driver package to a folder of your choosing in the target machine (i.e. c:\LAN78XX) 1. Plug in the LAN78xx 2. Open Device Manager. You should see an entry for the LAN78xx device under the "Other Devices" in the device tree. It will be labelled either "Unknown device" if you are not using an EEPROM/OTP (or do not use a product string descriptor specified in your EEPROM/OTP), or labelled with the Product String descriptor you used in your EEPROM/OTP. 3. Right click on the device entry and select "Update Driver Software" 4. Click "Browse my computer for driver software" 5. Click the browse button and point to the folder where you have saved the driver software and click OK. You should now see the proper path in the "Search for driver software in this location" box 6. Select "Next". The "Installing Driver Software" message will be displayed as a progress bar cycles. 7. You will asked "Would you like to install this device software. Name: Microchip Technology Inc. Adapters. Publisher: "Microchip Technology Inc.". Click "Install" 8. After a few seconds you should see the message "Windows has successfully updated your driver Software - "LAN7800 USB 3.0 to Ethernet 10/100/1000 Adapter". Click "Close". 9. You should now see the "LAN7800 USB 3.0 to Ethernet 10/100/1000 Adapter" under "Network Devices" in device manager, as well as a new "Ethernet" device in "Network and Sharing Center" Note that installation procedures may vary accross platforms. In particular non plug and play platforms are likely not to support INF based installations as detailed above and instead require either manual or programatic driver file copying as well as addition of VID/PID, services and/or other assorted key entries into the registry which are platform specific and outside of the scope of these generic PnP installation instructions. Additional Engineering Release Requirements ------------------------------------------- For Windows 10, only drivers signed with Microsoft certificates can be installed in a standard Windows 10 installation. Microchip is currently only signing production drivers with Microsoft certificates, so an engineering release will not install properly in a standard Windows 10 installation unless additional steps are followed to enable what is called "Test Signing" in the system. The procedure is very simple, but we recommend it only be done in test machines since it relaxes the system protection against not only Microchip but any other third party signed driver. If you do not want to enable test signing, please use the latest production release instead of an engineering release. In order to enable testsinging in a system: 1. If "Secure boot" is enabled, disable it. This setting is available through your systems' BIOS settings and will require you to reboot your system to take effect. 2. Open an Administrative Command prompt (right click over the start buttom, select "Command Prompt (Admin)" and accept the User Account Control prompt by clicking 'Yes' 3. Type "bcdedit /set TESTSIGNING on" (without the quotes) and press ENTER. You should see the message "The operation completed successfully" 4. Reboot the system. 5. The system should now be TESTSIGNING enabled and an engineering release should install with no problems. In systems without a full GUI, you may need to enable testsigning in a different way (i.e. Remote Powershell, telnet as administrator, etc). Consult the specific instructions for your environment. Testing ------- Windows RT is a closed platform and no official certification can be performed unless a device has been approved by Microsoft for inclusion in a particular platform. Therefore this driver has NOT undergone generic certification. Moreover only the Ndis 6.30 driver been minimally tested for basic internet connectivity on a Dell XPS 10 Win RT tablet running Windows RT 8.0 and on the Windows 10 IoT Raspberry Pi 2 environment. However, this driver is compiled from the exact same source code used in the x86 and x64 drivers that are officially MSFT WHQL certified for Windows 7/8/8.1/10 as per: Driver Configurable Parameters ------------------------------ The following parameters are configurable thru the LAN7800 Advanced properties page if available. If the platform in use does not expose an advanced properties page these properties can be entered through the registry under the software key for the device instance (use the corresponding registry value key names shown in the INF file in that case): 1. Flow Control: Configure flow control advertised capabilities -Disabled -Tx Enabled (Generate only) -Rx Enabled (Respond only) -Rx & Tx Enabled (Generate and Respond) 2. Speed & Duplex: Selection of one of the following ennumerated values -1.0 Gbps Full Duplex: Forces 1000FD Master without autonegotiating -10 Mbps Half Duplex: Forces 10HD without autonegotiating -10 Mbps Full Duplex: Forces 10FD without autonegotiating -100 Mbps Half Duplex: Forces 100HD without autonegotiating -100 Mbps Full Duplex: Forces 100FD without autonegotiating -Auto Negotiation: Advertises support for all combos of 10/100/1000 and HD/FD (except 1000HD) (default) 3. Network Address (optional): Allows overiding the MAC address of the device 4. Priority & VLAN: Enable or Disable support for VLAN tagging. - Priority & VLAN Disabled - Priority & VLAN Enabled (default) 5. VLANID: If "Priority & VLAN" are enabled this value selects the VLANID to insert on transmits and to filter upon on receives. 6. USBBandwidthMode: Selects how the driver uses USB bandwidth - Maximum Throughput: Uses as much USB bandwidth as it needs to maximize the LAN7800's device networking performance. (default) - Sharing Friendly: While providing adequate networking performance, in this mode the driver is conservative with USB bandwidth usage for a better experience of other devices with which it shares USB bandwidth. - Automatic: Sets itself to Sharing for High and Super Speed, and to Maximum Throughput for full speed. 7. Wake on pattern match: Enable or disable wake on pattern match (WOL) (Ndis 6.20/Win7 or later) 8. Wake on magic packet: Enable or disable wake on magic packet (Ndis 6.20/Win7 or later) 9. NetDetach: Controls operation of the NetDetach feature (device is disconnected from the USB when Ethernet link is down, and reconnected to the USB when Ethernet link is up. (Except Ndis 6.30/Win8 or later) - Disabled: Always OFF. (default) - Enabled: Always ON. - Automatic: Enabled when system operating under battery power, disabled if system operating under AC power. 10. Jumbo Frame Size: Controls Jumbo Frame Size - min: 1514 Bytes (default) - max: 9230 Bytes 11. Device Sleep On Disconnect (*): Indicated whether putting the device in low power state when the link is down is supported. note that NDIS will not take advantage of this feature for USB devices. - Disabled - Enabled 12. Selective Suspend: Selective suspend capability (Ndis 6.30/Win8 or later) - Disabled: Enabled selective suspend (default) - Enabled: Disables selective suspend 13. Selective suspend Idle Timeout: NDIS considers the network adapter to be idle if it has been inactive for longer than selective suspend idle timeout. If idle device will be placed to suspend. This value specified in seconds (defalt 10). (Ndis 6.30/Win8 or later) 14. PM ARP Offload: Power Management Offload Capability - Disable: No PM ARP Offload - Enable: ARP protocol offload only while device is sleep (default) 15. PM NS Offload: Power Management Offload Capability - Disable: No PM NS Offload - Enable: NS protocol offload only while device is sleep (default) 16. Large Send Offload V1 (IPv4): Tx Large Send Offload Capability - Disable: Disable Large Send Offload support - Enable: Supports Large Send Offload version 1 (Only supports IPv4 and up to 64K byte LSO frame) (default) 17. Large Send Offload V2 (IPv4): Tx Large Send Offload Capability - Disable: Disable Large Send Offload support - Enable: Supports Large Send Offload version 2 (Only supports IPv4 and up to 1M byte LSO frame) (default) (Ndis 6.20/Win7 or later) 18. Large Send Offload V2 (IPv6): Tx Large Send Offload Capability - Disable: Disable Large Send Offload support - Enable: Supports Large Send Offload version 2 (supports IPv6 and up to 1M byte LSO frame) (default) (Ndis 6.20/Win7 or later) 19. IPv4 Checksum Offload: H/W Checksum Offload Capability Setting - Disable: Disable Tx/Rx IP Checksum Offload - Tx Only: Supports only IP Header Checksum Offload in Tx Path (Including IP Options) - Rx Only: Supports only IP Header Checksum Offload in Rx Path (Including IP Options) - Tx and Rx: Supports IP Header Checksum Offload in Tx/Rx Paths (Including IP Options) (default) 20. TCP Checksum Offload (IPv4/6): H/W Checksum Offload Capability Setting - Disable: Disable Tx/Rx TCP Checksum Offload - Tx Only: Supports only TCP Header Checksum Offload in Tx Path (Including TCP Options) - Rx Only: Supports only TCP Header Checksum Offload in Rx Path (Including TCP Options) - Tx and Rx: Supports TCP Header Checksum Offload in Tx/Rx Paths (Including TCP Options) (default) 21. UDP Checksum Offload (IPv4/6): H/W Checksum Offload Capability Setting - Disable: Disable Tx/Rx UDP Checksum Offload - Tx Only: Supports only UDP Header Checksum Offload in Tx Path - Rx Only: Supports only UDP Header Checksum Offload in Rx Path - Tx and Rx: Supports UDP Header Checksum Offload in Tx/Rx Paths (default) 22. Power Down Phy on Link Down: Controls whether the PHY is powered down when the Ethernet link is down. - Disabled: PHY remains active (default) - Enabled: PHY is placed in Low Power Mode. 23. EEE: Enables EEE operation - Enabled - Disabled 24. Speed Duplex Autonegotiated Advertised Capabilities: Allows selection of the Advertised Capabilities (speed and duplex) Only applicable when the Speed Duplex property is set to "Auto Negotiation". This field resolves into an enumerartion value between 0 and 31. It is interpreted as the following bifield flags: 00001 - Advertises 10HD 00010 - Advertises 10FD 00100 - Advertises 100HD 01000 - Advertises 100FD 10000 - Advertises 1000 FD By default the value set is 1F for all capabilities advertised 25. USB3 LTM (optional): Controls LTM Behavior - Disabled: LTM support in the device is disabled regardless of the LTM values in the Superspeed Capabilties descriptor. - Enabled: LTM support in the device is enabled. However if the LTM values in the Superspeed Capabilties descriptor do not advertise it, the host will never do a SET_FEATURE.LTM_ENABLE and therefore LTM messages will not be sent by the device. - Hardware Controlled: LTM values in the the Superspeed Capabilities descriptor defines whether the feature is supported. The parameter is optional and if not present driver defaults to hardware controlled 26. USB2 LPM (optional): Controls LPM Behavior - Disabled: LPM support in the device is disabled regardless of the LPM flag in the USB 2.0 Extension Capability descriptor. - Enabled: LPM support in the device is enabled. However if the LPM flag in the USB 2.0 Extension Capabilitiy descriptor does not advertise it the host will not send LPM transactions. - Hardware Controlled: The LPM flag in the USB 2.0 Extension Capabilities descriptor defines whether the feature is supported. The parameter is optional and if not present driver defaults to hardware controlled 27. AutoMdix: Control whether the feature is enabled or disabled - OFF & Straight: Disabled. Device cabling behaves like legacy Ethernet device with no support for automdix (TPO = output, TPI = input). - OFF & Crossed: Disabled. Device has cabling reversed with respect to an Ethernet legacy device with no support for automdix. (TPO = input, TPI = output) - ON: Enabled 28. Gigabit Master slave Mode: Control which master - slave modes to advertise support for - Force Master Mode Advertises only Master - Force Slave Mode Advertises only Slave - Auto Detect Advertises both Master and Slave (default) Release History --------------- ** v3.5.2.0 ** RK 2015-12-14 - Fixes for 78W-119. Issue could cause wake packets not being indicated on receive or early Tx replies to wake packets not transmitted. This mostly affected maintaining connectivity throughout connected standby in AOAC systems. - Robustness improvements ** v3.5.1.0 ** RK 2015-12-01 - Improve Ndis versioning support so that later Ndis driver only report use of the portion of the structure they use during OID set, and only return structures of the size they filled up during OID queries. This future proofs drivers. - Fix 78W-125: HLK test DF-HyperVisor Code Integrity Readiness fails on Win10: + Use NonPagedPoolNx instead of NonPagedPool. + Use MdlMappingNoExecute in the call to MmGetSystemAddressForMdlSafe - Fix bug where a pending OID query could have attempted to copy more data than the available space in the information buffer - Fix bug in offload OIDs setting where we could set internal state based on some parameters of the structure and yet fail the OID because other portions of the structure where invalid - Fix bug where we used the inccorect offset to advanced to a next pattern (if present) in a set pattern OID. Verify Next pattern fits within InformationBuffer before adding it. - Fix bug where we used the inccorect offset to advanced to a next pattern (if present) in a set PM protocol offload OID. Verify Next PM protocol offload fits within InformationBuffer before adding. - Fix bug where if there was a intermittent surprise related status returned but the device remains connected without the driver unloading, internal driver state would be as if device remained disconnected idling waiting for an unload that would not occur. - Correct some failure codes in OID handling to match the documentation recommendations - Change event log message on Reset failure to be informative rather than error if a surprise remove occured and prevent repetitions. - Several other stability, performance and internal diagnostic improvements. ** v3.5.0.0 ** RK 2015-11-04 - Initial External Release