========================================================================= LAN95XX DOS Utility Suite Ver. 2.06 ========================================================================= 1. Overview =========== The LAN95XX DOS Utility Suite is a set of two EXEs, 95XXEEP.EXE and 95XXTEST.EXE, that run in DOS and provide support for programming the EEPROM and testing basic LAN9500/LAN9500A/LAN9512/LAN9513/LAN9514 functionality in a production / manufacturing environment. 2. System Requirements ====================== OS, Processor Mode and Memory ----------------------------- a. The Utilities only run under DOS (it cannot run in a Windows Command prompt). Versions tested were: - Windows 98 [Version 4.10.2222] (Windows 98SE boot to command prompt) - MS-DOS Version 6.22 b. The Utilities will assume the system is running in the x86 processor's real mode at the time it is invoked. The utilities will switch to protected mode, stay in that mode during its execution, and will switch back to real mode just before they exit. c. Due to #b above, No Expanded Memory Managers (i.e. EMM386.exe) can be running when using the Utilities. Note that Extended Memory Managers (i.e. HIMEM.SYS) are fine and can be used. d. The Utilities are stand alone EXEs which are completely unloaded from memory on exit. After the utilities exit the LAN95xx device will not be able to provide any kind of service whatsoever (i.e.: networking access) to the DOS operating system. USB --- e. The Utilities will only work with EHCI Host Controllers. f. LAN95xx device could be located on any port in any EHCI host controller, or on any port behind ONE (and only one) HIGH SPEED hub connected to any port on any EHCI host controller. The LAN9512/13/14 device should be connected directly to EHCI port as it is a hub device. g. The Utilities will scan the PCI and USB buses starting from their lowest ordinals until they find a LAN95xx device. At that point they will stop the scanning and use that LAN95xx device. This means that only one (and the first found) LAN95xx device is supported. h. It is assumed that during its execution the Utility can take complete control of the USB EHCI Host Controller (and high speed hub if is behind one) to which LAN95xx is connected. In particular the Utility may reset the host controller/hub early during its initialization and again right before exiting and it will NOT save or restore any context. When utility is running no other high speed devices will work as utility takes control of EHCI. Networking Partner ------------------ i. To test the device using 95XXTEST.EXE on real network a network partner is REQUIRED. While some of the functionality can be supported with a simple link network partner (i.e. switch), for support of ALL the test features of 95XXTEST.EXE, including data passing tests, the end network partner should be another machine with ping echo capabilities. j. The test partner system (or intermediate switch) must be capable of (and configured to) autonegotiate advertising all four 10/100 half/full duplex combinations. k. End-to-end link between LAN95xx and test partner should be on a closed network with no other connected hosts. l. The 95xxTEST.EXE also supports external loopback mode which requires a loopback plug. This test with external loopback cable is also acceptable to fully validate the hardware. 3. Device support ================= This utility supports the LAN9500, LAN9500A and LAN9512/13/14 USB to Ethernet device. 4. Files Manifest ================= 95XXEEP.EXE: utility to program and verify EEPROM in the device 95XXTEST.EXE: utility to perform basic functionality tests 9500eep.bin: sample binary EEPROM image for LAN9500 device 9500eep.ini: sample text initialization file for LAN9500 device 9500Aeep.bin: sample binary EEPROM image for LAN9500A device 9500Aeep.ini: sample text initialization file for LAN9500A device 9514eep.bin: sample binary EEPROM image for LAN9513/14 device 9514eep.ini: sample text initilaization file for LAN9513/14 device 9512eep.bin: sample binary EEPROM image for LAN9512 device 9512eep.ini: sample text initilaization file for LAN9512 device 9500eep.bat: sample batchfile for testing and programming multiple devices. readme: this document 5. Using the DOS Utility in your Manufacturing Process ====================================================== Contents -------- In order to program a device you must have either a binary (a) or text file (b) containing the data to be written to the EEPROM. a. The binary file is an exact image of the EEPROM contents. A default image is supplied with the release. As explained in the Usage section below, certain of its fields can be overwritten from the command line, specifically the MAC address, Serial Number, and the increment values for each. b. The text file is a standard Windows INI file. It contains the names and values of each field to be programmed. While this file can be opened and read with any text editor, we strongly recommend editing it ONLY with the LAN95XX Windows Utility. This is to guarantee the integrity of the file format, and that all of its fields contain valid data. Disregarding this caution can lead to corruption of multiple EEPROMs and have very serious consequences. Process ------- The recommended approach to programming multiple devices is Plug - Test - Program - Test (with eeprom reload option) - Repeat. a. Plug a new device into an available High-Speed USB port. b. Run the 95XXTEST.EXE program. This test is to make sure the device is good before burning eeprom. This will avoid the use of mac address and serial number for the bad device. For the ping test ("-d ping" option), as the EEPROM is empty at this point use the -M command line switch to provide a unique MAC address, along with the source and destination IP addresses, and specific link mode if desired. c. After a successful test, run the 95XXEEP.EXE program. Use either the -i or -b option depending on whether you use an ini file or binary image as your data source. This file must have been initialized with values specified by a supervisor. d. Test the device by running 95XXTEST.EXE with -r option to make sure the device is working after the eeprom programming. e. Unplug the just-programmed device and plug in the next new device. Some manufacturers may feel fine with either of the below reduced test options: (sample time is for LAN9500 device) 1. Ping test + Program + Ping test (with -r option) takes about 15 sec/device 2. External loopback test + Program + External loopback test (with -r option) takes about 10 sec/device 3. Program + Ping test (with -r option) takes about 9 sec/device 4. Program + External loopback test (with -r option) takes about 6 sec/device Automation ---------- This sequence of tasks can be executed within a DOS batch script. You will be prompted to unplug the current device and plug in the next one prior to repeating the test-program sequence. The script will abort if any error is encountered in either the test or programming phase. A sample batchfile named 9500eep.bat is included in the release package. Barcode scanners ---------------- These can be supported using our standard command switches and the simple file concatenation constructs provided by DOS. For example, suppose you want to run this command: "95XXEEP -b filename.bin -w -M -S " If the MAC address (i.e.: 00:11:22:33:44:55) is scanned into a file named mac.txt, and the serial number (i.e.: 012345678) is scanned into a file named serial.txt, the desired command to run can be produced in the following way: a. Create ASCII file cmdpfix.txt containing these characters (space after 'M', but no CR/LF): "95XXEEP -b filename.bin -w -M " b. Create ASCII file s.txt containing these characters (space after 'S', but no CR/LF): " -S " c. Execute DOS command: "copy /A cmdpfix.txt+mac.txt+s.txt+serial.txt command.bat" d. The following command.bat file will be created: "95XXEEP -b filename. bin -w -M 00:11:22:33:44:55 -S 012345678" 6. DOS Utility Command Line Parameters Details ============================================== 95XXEEP (-b -i )(-w -r -v) [-M -S -m -s ] [-N] [-V ] [-P ] [-L] [-q] [-h] [-e] -b Uses the binary file as "base" for the EEPROM contents. This option is mutually exclusive with the "-i" option, but either -b or -i must be present when any operations other than displaying the current EEPROM content of the device (-r) are selected, in which case it is optional. The Mac address and/or serial in the binary can be overwritten using the -m, -s and -M, -S options. -i Uses the options file as the "base" for the EEPROM Contents. This option is mutually exclusive with the "-b" option, but either -b or -i must be present when any operations other than displaying the current EEPROM content in the device (-r) are selected. The Mac address and/or serial in the ini can be overwritten using the -m, -s and -M, -S options. -w Write the EEPROM Contents specified in the file + overwrites to the device and verify them. The input file specified with the -b or -i option will be updated after the verification is complete according to the (mac and serial) increment values, or values supplied with .M or -S. Either -w, -r or -v must be specified -r Read the current EEPROM Contents in the device and write to the 9500.bin/9514.bin/9512.bin binary file (depending on the device), or to the file specified with -b. Either -w, -r or -v must be specified. -v Read the current EEPROM Contents in the device and verify against the EEPROM Contents specified in the file + overwrites Either -w, -r or -v must be specified -M Overrides the mac address included in the -b or -i options with the mac_address provided. mac_address format is ab:cd:ef:gh:ij:kl with a thru l hexdigits (i.e. 00:80:0F:95:04:00). -m This option overrides the increment for the mac address from the ini_filename if the -i option is used, or the default of 0 (no increment) if the -b option is used. The maximum increment step is 255. -S Overrides the serial number address included in the -b or -i with the serial_num provided. Serial_num format is abcdefghi with a thru i hexdigits (i.e.:000950404). -s This option overrides the increment for the serial number from the ini_filename if the -i option is used, or the default of 0 (no increment) if the -b option is used. The maximum increment step is 255. -V Specify Vendor ID to identify LAN95xx device. Used together with -P. If not specified, chip ID register will be used to identify LAN95xx device. -P Specify product ID to identify LAN95xx device. Used together with -V. If not specified, chip ID register will be used to identify LAN95xx device. -N Update ini or bin file with next mac address and serial number. Next mac address and serial number will be computed with mac_increment and serial_increment. -L Enable loop to program multiple devices. If not specified, application will exit after programming one device. -e Display PASS or FAIL message in big letters before exiting the program. -q Quiet. This option will disable some messages. -h Displays help menu. ---------------------------------------------------------------------------- 95XXTEST [-l ] [-d ] [-i -I -V -P -M ] [-q] [-h] [-e] [-r] [-g -s -T -t ] -l The utility will attempt to autonegotiate using one of the following restricted negotiation capabilities "10hd", "10fd", "100hd" or "100fd". If the "-d ping" option is present, the -l will be performed first. If the "-d iloopback" or "-d eloopback" option is present, the -l option will be ignored. -d The utility will perform data passing tests. Valid data_mode values are "ping", "iloopback" or "eloopback" If the option selected is "ping", the utility will send a few ping packets and expect to receive them back from the partner. If the option selected is "iloopback", the utility will test with internal loopback mode. And no partner is needed. If the option selected is "eloopback" the utility sends few packets and expects to receive the same packets from the external loopback. External loopback plug is required to use this option. -i This option sets the IP address of the LAN95xx device. It is required when the "-d ping" option is present. It must be a valid unicast address on the same subnet as the test partner. -I This option sets the destination IP address and must match the IP address of the test partner. It is required when the "-d ping" option is present. -V Specify Vendor ID to identify LAN95xx device. Used together with -P. If not specified, chip ID register will be used to identify LAN95xx device. -P Specify product ID to identify LAN95xx device. Used together with -V. If not specified, chip ID register will be used to identify LAN95xx device. -M Set this mac address in the LAN95xx mac register instead of getting from EEPROM. -r Reload Ethernet EEPROM contents before the test. -e Display PASS or FAIL message in big letters before exiting the program. -g GPIO pin number -s GPIO state, 1 (on) or 0 (off) Note: When starting the utility, as part of the searching the device the device will be reset. After the reset the GPIO configuration registers will be set to default values. -T GPIO Type, 0 - open drain (default), 1 - push-pull -t GPIO pin assertion time in seconds (0 - default) If 0, the state will not be altered after exit of the utility. If greater than 0, the state will be toggled after specified time. -q Quiet operation. -h Displays help menu. Return Values ------------- The 95XXEEP.EXE and 95XXTEST.EXE may return below exit codes. 0 Command successful 1 Command failed 2 Not supported 3 No device present 4 Memory allocation failed 5 Parameter error (invalid argument or ini entries) 6 No USB host controller present 7 Link down 8 Unable to access eeprom 9 Invalid eeprom size 10 Not same (ex: when verifying eeprom) 7. Ini file configurations: ========================== You MUST select the right ini file for the device to program the device. Ex: for LAN9500 device use the 9500eep.ini file. The default set of ini files will be supplied with this package. Common ini file parameters for (LAN9500/LAN9500A/LAN9512/LAN9513/LAN9514): -------------------------------------------------------------------------- MAC Address [MacAddress]: This is the 6-byte universally unique Mac address the board will use. Bytes are separated by a colon. CurrentMacAddress - Defines the first MAC address (it will be incremented after Manual/Auto burn for the next device) MaximumMacAddress - Defines the last MAC address to be used before rolling over to 0. MacAddressIncrement - Will be added to Current MAC Address after successful EEPROM burn cycle (max is 255). Serial Number [SerialNumber]: This is the (unique for this model of device) USB serial number. It is a 9-digit hexadecimal number. CurrentSerialNumber - Defines the first Serial Number (it will be incremented after Manual/Auto burn for the next device) MaximumSerialNumber - Defines the last serial number to be used before rolling over. SerialNumberIncrement - Will be added to Current serial number after successful EEPROM burn cycle (max is 255). Strings [String]: The user can save 4 customized strings (Manufacturer, Product, Configuration and Interface) with different lengths in the EEPROM. Each string can be individually disabled or enabled. ID [ID]: VendorID - This is your company's USB Vendor Id. It is a 4-digit hexadecimal number ProductID - This is your device's USB Product Id. It is a 4-digit hexadecimal number BcdDevice - This is the release number you assign to the device. It is a 4-digit binary-coded decimal (BCD) number. For example revision 1.23 would be represented as bcdDevice=0123 FS/HS Interrupt Endpoint bInterval [PollingInterval]: Interval for polling the interrupt endpoint as defined in the bInterval field of the endpoint descriptor by the USB 2.0 specification. Illegal values will not be allowed; an error message will be displayed if one has been entered. (Valid ranges are 1-255 for Full Speed, 1-16 for High Speed). Power & Remote Wake [Power]: These parameters affect values of the USB configuration descriptor. Improper setups which violate the USB 2.0 specification will not be allowed. An error message will be displayed if an illegal value has been entered. RemoteWakeupEnable - To enable/disable remote USB wakeup capability (Enable when it is set to 1) BusPower - Select between BusPower/SelfPower device (Bus Power when it is set 1, 0 - for self power) MaxPower - Maximum Power Consumption in mA (between 2mA and 500mA for BusPower; between 0mA and 100mA for SelfPower) ini parameters only applicable to LAN9512/13/14: ------------------------------------------------ HUB ID: HubVendorID - This is your company's USB hub Vendor Id. It is a 4-digit hexadecimal number HubProductID - This is your device's USB hub Product Id. It is a 4-digit hexadecimal number HubDeviceID - This is the release number you assign to the device. It is a 4-digit binary-coded decimal (BCD) number. For example revision 1.23 would be represented as bcdDevice=0123 Hub Configurations [HUBConfigDataByte]: HubSelfPower - If set to 1, hub is self powered. if set 0, hub is bus powered (BusPower parameter should be consistent with HubSelfPower). HighSpeedDisable - If set to 1, High-Speed disabled (full speed only). 0 for High-Speed. MultipleTTEnable - Enables one transaction translator per port operation. 0 - Single TT for all ports 1 - One TT per port ie:multiple TT supported EOPDisable - Disables EOP generation of EOF1 when in Full-Speed mode. 0 - An EOP is generated at EOF1 point if no traffic is detected. 1 - EOP generation at EOF1 is disabled (Note: this is the normal usb operation). OverCurrentSense - Selects current sensing on port-by-port basis, all ports ganged or individual ports. 0 - Ganged sensing (all ports together) 1 - Individual port-by-port 2 - Overcurrent sensing not supported (valid only when HubSelfPower=0) PortPowerSwitching - Port switching. 0 - ganged switching (all ports together) 1 - individual port by port switching OverCurrentTimerDelay - Overcurrent timer delay. Valid values: 50/100/200/400 nanoseconds CompoundDevice - Hub is part of compound device. 1 - yes, 0 - No PortRemappingEnable - Enables port remapping. If set to 1, the entries in [PortRemap] section will be valid. 0 - standard mode 1 - port remap mode Non Removable Devices [NonRemovableDevices]: Indicates which port(s) include non-removable devices. When set to 1 the port is non-Removable. If set to 0 the port is removable. Port Disable for Self Powered Operation [PortDisableSelfPowered]: During Self-Powered operation, these fields indicate whether the corresponding port is to be permanently disabled (not available to be enabled or enumerated by the host controller). Valid values (per port): 0 - port is available, 1 - port is disabled. Note: 1. For LAN9512, port 4 and port 5 needs to be set to 1. 2. For LAN9513, port 5 should be set to 1. Port Disable for Bus-Powered Operation [PortDisableBusPowered]: During Bus-Powered operation, these fields indicate whether the corresponding port is to be permanently disabled (not available to be enabled or enumerated by the host controller). Valid values (per port): 0 - port is available, 1 - port is disabled. Note: 1. For LAN9512, port 4 and port 5 needs to be set to 1. 2. For LAN9513, port 5 sshould be set to 1. Hub power configurations [HUBPower]: MaxPowerSelfPowered - Value in 2mA increments that hub consumes from an upstream port when operating as a self powered hub. This value includes the hub silicon along with the combined power consumption (from VBUS) of all associated circuitry on the board. This value also includes the power consumption of a permanently attached peripheral if the hub is configured as a compound device, and the embedded peripheral reports 0mA in its descriptors. Valid value range: 2 - 100 (Even numbers only). MaxPowerBusPowered - Value in 2mA increments that hub consumes from an upstream port when operating as a bus powered hub. This value includes the hub silicon along with the combined power consumption (from VBUS) of all associated circuitry on the board. This value also includes the power consumption of a permanently attached peripheral if the hub is configured as a compound device, and the embedded peripheral reports 0mA in its descriptors. Valid value range: 2 - 500 (Even numbers only). MaxCurrentSelfPowered - Value in 2mA increments that hub consumes from an upstream port when operating as a self powered hub. This value includes the hub silicon along with the combined power consumption (from VBUS) of all associated circuitry on the board. This value does NOT include the power consumption of a permanently attached peripheral if the hub is configured as a compound device. Valid value range: 2 - 100 (Even numbers only). MaxCurrentBusPowered - Value in 2mA increments that hub consumes from an upstream port when operating as a bus powered hub. This value includes the hub silicon along with the combined power consumption (from VBUS) of all associated circuitry on the board. This value does NOT include the power consumption of a permanently attached peripheral if the hub is configured as a compound device. Valid value range: 2 - 500 (Even numbers only). PowerOnTime - The length of time that it takes (in 2ms intervals) from the time the host initiated power-on sequence begins on a port until power is good on that port. System software uses this value to determine how long to wait before accessing a powered-on port. Valid value range: 2 - 500 (Even numbers only). Upstream USB Electrical Signaling Drive Strength Boost [BoostUp]: Individual port boost bit can be set. Valid values: 0 - Normal electrical drive strength 4 - Elevated electrical drive strength (+4% boost) 8 - Elevated electrical drive strength (+8% boost) 12 - Elevated electrical drive strength (+12% boost) Port Swap [PortSwap]: Swaps the Upstream and Downstream USBDPn and USBDMn pins for ease of board routing to devices and connectors. Valid Values (per port): 0 - USB D+ functionality is associated with the USBDPn pin and D-functionality is associated with the USBDMn pin. 1 - USB D+ functionality is associated with the USBDMn pin and D-functionality is associated with the USBDPn pin. Port Remap [PortRemap]: When a hub is enumerated by a USB Host Controller, the hub is only permitted to report how many ports it has. The hub is not permitted to select a numerical range or assignment. The Host Controller will number the downstream ports of the hub starting with the number 1, up to the number of ports that the hub reported having. The host's port number is referred to as 'Logical Port Number'. and the physical port on the hub is the 'Physical Port Number'. When remapping mode is enabled the hub's downstream port numbers can be remapped to different logical port numbers (assigned by the host). Note: 1. This is one to one mapping. There should not be duplicate entries between these fields. These fields are valid only when PortRemappingEnable=1. 2. When PortxDisableSelf or Port0DisableBus is set to 1 (port is disabled), corresponding logical port needs to be set to 0. 3. For LAN9512, port 4 and port 5 logical port needs to be set to 0. 4. For LAN9513, port 5 logical port needs to be set to 0. 5. The OEM must ensure that Contiguous Logical Port Numbers are used, starting from #1 up to the maximum number of enabled ports. This ensures that the hub’s ports are numbered in accordance with the way a Host will communicate with the ports. Status and command[StatusCommand]: Reset - Resets the internal memory to default values. 0 - Normal Operation/Idle state 1 - Force a reset of the registers to their default values UsbAttachWriteProtect - Usb attach and write protect 0 = Device is in configuration state 1 = Hub will signal a USB attach event to an upstream device, and the internal memory (address range 00h - FEh is .write-protected. to prevent unintentional data corruption). ini parameters only applicable to LAN9500A: ------------------------------------------ Configuration Flags [ConfigFlags]: PHYBoost - Provides the ability to boost the electrical drive strength of the HS output current to the upstream port. 0 = Normal electrical drive strength 1 = Elevated electrical drive strength (+4% boost) 2 = Elevated electrical drive strength (+8% boost) 3 = Elevated electrical drive strength (+12% boost) LEDSelect - Determines the functionality of external LED pins. 0 = Speed Indicator, Link and Activity Indicator, Full Duplex Link Indicator 1 = Speed Indicator, Link Indicator, Activity Indicator GPIO Wake [ConfigFlags]: Enable the GPIOs to function as wake events for the CPM when asserted. For GPIOWK0 through GPIOWK10: 0 = The GPIO can not wake up the CPM. 1 = The GPIO can trigger a wake up event. IMPORTANT NOTES: 1. In External PHY mode, only GPIOWK8-10 are available for wake events. 2. In Internal PHY mode, GPIOWK8-10 are reserved for LEDs if they are set active. 3. In PME Mode, two GPIOWK pins are reserved for PME signaling. These are GPIOWK0-1 (internal PHY mode), or GPIOWK8-9 (external PHY mode). GPIO PME Flags [GPIOPME]: GPIOPMEEnable - Setting this bit enables the assertion of the GPIO0 or GPIO8 pin, as a result of a Wakeup (GPIO) pin, Magic Packet, or PHY Link Up. 0 = The device does not support GPIO PME signaling. 1 = The device supports GPIO PME signaling. Notes: When GPIOPMEEnable is 0, the remaining GPIO PME parameters are ignored. GPIOPMEConfiguration - Selects whether the GPIO PME is signaled on the GPIO pin as a level or a pulse. 0 = GPIO PME is signaled via a level. 1 = GPIO PME is signaled via a pulse. GPIOPMELength - When the GPIO PME Configuration bit of this flag byte indicates that the GPIO PME is signaled by a pulse on the GPIO pin, this bit determines the duration of the pulse. 0 = GPIO PME pulse length is 1.5 mS. 1 = GPIO PME pulse length is 150 mS GPIOPMEPolarity - Specifies the level of the signal or the polarity of the pulse used for GPIO PME signaling. 0 = GPIO PME signaling polarity is low. 1 = GPIO PME signaling polarity is high. GPIOBufferType - This bit selects the output buffer type for GPIO0/GPIO8. 0 = Open drain driver / open source 1 = Push-Pull driver GPIOPMEWOLSelect - Three types of wakeup events are supported; Magic Packet, PHY Link Up, and Wakeup Pin(s) assertion. Wakeup Pin(s) are selected via the GPIO Wake 0-10 (GPIOWKn) field of the General Purpose IO Wake Enable and Polarity Register (GPIO_WAKE). This bit selects whether Magic Packet or Link Up wakeup events are supported. 0 = Magic packet wakeup supported. 1 = PHY linkup wakeup supported. (not supported in External PHY mode) GPIO10DetectionSelect - Selects the detection mode for GPIO10 when operating in PME mode. In PME mode, GPIO10 is usable in both Internal and External PHY mode as a wakeup pin. This parameter defines whether the wakeup should occur on an active high or active low signal. 0 = Active-low detection for GPIO10 1 = Active-high detection for GPIO10 8. Release history =================== 2.06 (11/16/2010) - Added LAN9513 support. 2.05 (04/12/2010) - Search the device based on HC, HC port and Hub port numbers. New options -C, -O & -H Ex: #95xxtest -d iloopback -C 0 -O 4 -H 0 #95xxeep -r -C 0 -O 4 -H 0 2.04 (02/09/2010) - Added retries for eeprom write failure due to timeouts - Now utility can find LAN9514/LAN9512 behind one hub 2.03 (07/07/2009) - Supports LAN9500A 2.02 (06/01/2009) - Changed the application name to 95XXEEP.EXE and 95XXTEST.EXE. 2.1 (05/26/2009) - Bug fixes 1. gpio command line options error checking 2. When port is disabled, set the port remap of that port to 0 3. Check the consistency between power settings of 9514/9512 2.0 (05/19/2009) - Supports LAN9514/LAN9512. 1.03 (05/15/2009) - This is Debug version to customer - Added ini file support for LAN9514/LAN9512. - Added ini file support for LAN9500A/LAN9505A. - External Loopback test support - GPIO signaling support v1.02 (04/09/2009) - Internally supported binary image burning for 9514. v1.01 (03/25/2009) - Fix bug that option -M didn't work in 9500test.exe. v1.00 (03/20/2009) - Fix bugs. 1. Ini file corrupted when invalid serial number is replaced. 2. Reject multicast Mac address. - Support BcdDevice field in the ini file. v0.09 (03/17/2009) - Verify that current mac address is smaller than maximum mac address regardless of option -L v0.08 (03/016/2009) - Add new options. 9500eep.exe: -P, -V, -N, -L 9500test.exe: -P, -V, -M - Make necessary changes on ini file parser to synchronize with windows utility. v0.07 (03/06/2009) - Support -i option. - Windows LAN9500 utility is used to create ini file. - Fix bug. When link partner doesn't support link mode requested by -l option, test will fail. v0.06 (02/27/2009) - Optimize the scheme to send test packets, make it work with HUB. - Show warning message if partner doesn't support all link modes. v0.05 (02/24/2009) - Fix bug: system will lock up when two Hubs are connected to host controller. v0.04 (02/19/2009) - Implement enhancement for 9500eep.exe. - For the option "-s" and "-m", increment step could be up to 255. v0.03 (02/18/2009) - Add test utility 9500test.exe. - Perform link and data passing test. - Perform internal loopback and external ping test. v0.02 (02/13/2009) - Bug fix. Some eeprom bin files are read out incorrectly. v0.01 (02/06/2009) - Implement options: -b, -w, -r, -v, -M, -m, -S, -s, -q, -h. - Autoscan LAN9500 device which is connected to any USB port W/O one Hub. - Program LAN9500 EEPROM W/O MAC or serial number increment. 9. SQA Testing ============== -Tested LAN9500, LAN9500A, LAN9512/13/14 devices. -Tested all 95XXEEP.EXE and 95XXTEST.EXE command parameters. -Tested automation feature using supplied 9500eep.bat file. -Tested mac_address, mac_increment, serial_num, serial_increment, vendor ID, and product ID command line parameters for proper error and range handling. -Verified ini file changes are properly reflected in binary file and EEPROM -Tested with internal loopback, external loopback, and Network partner. -Tested all speed and duplex combinations. -Performed compatibility testing using files created with Windows Utility. 10. Known Issues ================ None at this time.