[+******************************************************************+]
[ DAVICOM Semiconductor Inc. ]
[ DM9 Series PCI Ethernet Adapter ]
[ SROM Format Programming Guide ]
[ ]
[ (C) Copyright 1997-2000 DAVICOM Semiconductor Inc. ]
[ All Rights Reserved. ]
[-******************************************************************-]
Files Description :
===================
\PGSROM\PGSROM.EXE DM9102(A) SROM Programming Program
\PGSROM\SROM401.DAT DM9102(A) SROM Format v4.01 Data File
\PGSROM\SROM.DAT DM9102(A) SROM Format v3.00 Data File
\PGSROM\ADDR.MAX DM9102(A) Maximum Node ID File
\PGSROM\ADDR.LOG DM9102(A) Programmed Node ID Log File
\PGSROM\SROM.LOG DM9102(A) Programmed SROM Data Log File
\PGSROM\DUMP.DAT DM9102(A) Dump/Load SROM Data File
\PGSROM\PGSROM.TXT This File.
PGSROM Command Line Parameters :
================================
Syntax : PGSROM [/n] [/sx] [/b] [/m] [/i] [/d] [/l] [/txxxxxxxxxxxx]
[/vxxx] [/pxx] [/h]
/n : Program SROM without WARNING Message
/sx : Select the xth adapter to program the EEPROM (s1..s4)
/b : Re-input Starting Node ID and re-create SROM data file
/m : Re-input SROM v4.01/v3.00 Maximum Node ID to ADDR.MAX file
/i : NO Check Increament Node ID by 1 from ADDR.LOG file
/d : Dump the SROM data to DUMP.DAT file
/l : Load the SROM data from DUMP.DAT file
/txxxxxxxxxxxx : Check Trust Card Node ID (xxxxxxxxxxxx)
(The Trust Node ID must be 12 characters of 0..F)
/vxxx : Program the SROM data of the SROM format vx.xx (v300 or v401)
/pxx : Select the adapter type to program the EEPROM (p1..p6, ps1..ps2)
p1 : 10/100M Ethernet Adapter (DM9102 or DM9102A)
p2 : HomeRun/10/100M Ethernet Adapter (DM9102A+DM9801)
p3 : LongRun/10/100M Ethernet Adapter (DM9102A+DM9802)
p4 : 1M HomeRun Adapter (DM9801)
p5 : 1M LongRun Adapter (DM9802)
p6 : 10M Ethernet Adapter (DM9009) (ONLY for SROM Format v4.01)
ps1 : Standard External MII PHY Adapter (Specific 01h)
ps2 : 10M Half Based Switching Adapter (Specific 02h)
/h : Display Help Message
(NOTICE: Between Two Parameters MUST be the SPACE character !!)
Return code :
0 : Normal Quit Code
1 : Abort Quit Code
2 : No Card Error Code
3 : Broadcast Node ID Error Code (FF FF FF FF FF FF)
4 : Beyond Max. Node ID Error Code
5 : Write SROM Error Code
6 : Null Node ID Error Code (00 00 00 00 00 00)
7 : Trust Node ID Error Code
8 : Can't read EEPROM Error Code
9 : Can't open DUMP.DAT File Error Code
P.S.: The following command of the Batch File can be used
to get the Return Code : (MUST check ERRORLEVEL from
the Maximum Number to the Minimum Number, if the Return
Code Number >= RETURN_CODE_NUMBER, goto COMMAND label.)
IF ERRORLEVEL RETURN_CODE_NUMBER GOTO COMMAND
DM9102(A) SROM Format v4.01 Data Description (SROM401.DAT) :
============================================================
(Modify the value of the following fields to change SROM data,
Remove semicolon (;) at the header of line to select function,
Added semicolon (;) at the header of line to deselect function)
;*********************************************************
; DM9102(A) SROM Format v4.01 Data File (SROM401.DAT)
; for 10/100M Ethernet Adapter (DM9102 or DM9102A)
;*********************************************************
;**************************************************************
; Modify the value of the following fields to change SROM data
;**************************************************************
;PCI/Sub Vendor/Device ID and Node Address
;=========================================
SubVendorID = 02 91 ;Sub_Vendor ID = 0291h
SubDeviceID = 82 12 ;Sub_Device ID = 8212h
PCIVendorID = 12 82 ;PCI Vendor ID = 1282h
PCIDeviceID = 91 02 ;PCI Device ID = 9102h
NodeAddress = 00 00 00 00 00 03
;Specific Adapter Type (00..FF)
;(00 means this is not a specific adapter)
;=========================================
SpecAdpType = 00
;MAC Revision ID (Only used for specific purpose)
;================================================
MACRevID = 00 ;No specific MAC Revision ID (00..FF)
;External PHY Address
;====================
ExtPHYAddr = 01 ;External PHY Address (01..1F)
;Free Threshold Size of Rx FIFO Near Overflow
;for Tx Flow Control (with 32 bytes unit)
;============================================
RxOFThreshold = 00 ;Rx FIFO Free Threshold Size (00..3F)
;Home Networking Noise Level
;===========================
NoiseLevel = 09 ;Home Networking Noise Level (00..FF)
;****************************************************************
; Remove semicolon (;) at the header of line to select function
; Added semicolon (;) at the header of line to deselect function
;****************************************************************
;Auto Load Control
;(If enable Auto-load function, must H/W reset PC to take effect)
;================================================================
;AutoLoadID ;Enable Auto-load PCI Vendor/Device ID
AutoLoadPM ;Enable Auto-load Power Management
;(Select one from the following four options)
;============================================
WOLActPulseHigh ;Used WOL# Pulse High Active Mode (1010h)
;WOLActPulseLow ;Used WOL# Pulse Low Active Mode (1011h)
;WOLActLevelHigh ;Used WOL# Level High Active Mode (1110h)
;WOLActLevelLow ;Used WOL# Level Low Active Mode (1111h)
;New Capability Enable (NCE)
;===========================
PMCapability ;Enable Power Management Function
;Power Management Function (PMC)
;(Be meaningful when enable AutoLoadPM)
;======================================
;PMEClock ;Generate PME# need PCI Clock
PMEAuxPower ;PME# need Auxiliary Power
;PMESpecInit ;PME# need specific initialization
PMED0 ;Enable to support D0 power state
PMED1 ;Enable to support D1 power state
PMED2 ;Enable to support D2 power state
PMED3Hot ;Enable to support D3(hot) power state
PMED3Cold ;Enable to support D3(cold) power state
;Power Management Function (PMF)
;(Be meaningful when enable AutoLoadPM)
;======================================
PMEMagicPkt ;Enable check magic packet
PMELinkChg ;Enable check link status change
;PMEPinOut ;Disable PME# pin signal output
;WOLPinOut ;Disable WOL# pin signal output
;(Select one from the following two options)
;===========================================
PMEActPulseLow ;Used PME# Pulse Low Active Mode
;PMEActLevelLow ;Used PME# Level Low Active Mode
;RPL BootROM Boot Mode
;(Select one from the following four options)
;============================================
;NoRPLROM ;Disable RPL BootROM
;RPLINT18 ;RPL boot from INT 18h
RPLINT19 ;RPL boot from INT 19h
;RPLBECV ;RPL boot from BECV sector
;PXE BootROM Boot Mode
;(Select one from the following five options)
;============================================
;NoPXEROM ;Disable PXE BootROM
;PXEINT18 ;PXE boot from INT 18h
PXEINT19 ;PXE boot from INT 19h
;PXEBECV ;PXE boot from BECV sector
;PXERPL ;PXE boot from RPL BootROM
;Adapter Media Capability
;========================
Ether10HalfCap ;Support Ethernet 10M Half-Duplex mode
Ether10FullCap ;Support Ethernet 10M Full-Duplex mode
Ether100HalfCap ;Support Ethernet 100M Half-Duplex mode
Ether100FullCap ;Support Ethernet 100M Full-Duplex mode
;HomeRun1MCap ;Support HomeRun 1M mode
;LongRun1MCap ;Support LongRun 1M mode
;Adapter Selected Media Mode
;===========================
Autodetect ;Auto-detect MII PHY media mode
;(Select one from the following six options when disable Autodetect)
;===================================================================
;ForceEther10Half ;Forced Ethernet 10M Half-Duplex mode
;ForceEther10Full ;Forced Ethernet 10M Full-Duplex mode
;ForceEther100Half ;Forced Ethernet 100M Half-Duplex mode
;ForceEther100Full ;Forced Ethernet 100M Full-Duplex mode
;ForceHomeRun1M ;Forced HomeRun 1M mode
;ForceLongRun1M ;Forced LongRun 1M mode
;Rx/Tx Flow Control
;==================
;RxFlowCtrl ;Enable Rx Flow Control
NoTxFlowCtrl ;Disable Tx Flow Control
;TxFCRxDU ;Enable Tx Flow Control only for Rx Desc.
; Unavailable
;TxFCRxOF ;Enable Tx Flow Control only for Rx FIFO
; Near Overflow
;TxFCRxDUAndOF ;Enable Tx Flow Control for both Rx Desc.
; Unavailable and Rx FIFO Near Overflow
;TxFCRxDUOrOF ;Enable Tx Flow Control for either Rx Desc.
; Unavailable or Rx FIFO Near Overflow
;Virtual LAN
;===========
;VLAN ;Enable Virtual LAN
DM9102(A) SROM Format v3.00 Data Description (SROM.DAT) :
=========================================================
(Mark '*' field means that you must modify it, when you run PGSROM.EXE
at first time and no SROM.DAT file)
SubVendorID = 02 91 ==> Sub-System Vendor ID (0291h)
SubDeviceID = 82 12 ==> Sub-System Device ID (8212h)
NCE_AutoLoad = 00 00 ==> NCE and Auto_Load_Control
PCIVendorID = 12 82 ==> PCI Vendor ID (1282h)
PCIDeviceID = 91 02 ==> PCI Device ID (9102h)
PMCSR_PMC = 00 00 ==> PMCSR and PMC
NodeAddress = 00 00 00 00 00 01 ==> *Ethernet ID (000000000001)
SelectedType = 00 08 ==> Selected Connected Type (0800h)
GprControl = 80 ==> General Purpose Control (80h)
BlockCount = 06 ==> Block Count (6 Blocks)
Block0 = 8E 01 01 ==> Block0 Length, Type, PHY Address
GPR init = 00 ==> GPR Length
PHY reset = 02 80 00 ==> Reset Sequence Length, Data
PHY info = 00 78 E0 01 00 50 00 18 ==> Block0 Other Data
Block1 = 85 80 00 20 00 40 ==> Block1 Data
Block2 = 85 00 00 00 87 00 ==> Block2 Data
Block3 = 85 00 01 00 87 00 ==> Block3 Data
Block4 = 85 00 04 00 87 00 ==> Block4 Data
Block5 = 85 00 05 00 87 00 ==> Block5 Data
<<< NOTICE !!! >>>
1. This program supports multi-cards SROM programming that
will re-program the EEPROM of ALL PCI Ethernet adapters
on your machine and DON'T check the PCI Vendor ID/Device ID
of the adapters, so please check by yourself that ONLY
THE DM9102 ADAPTERS THAT YOU WANT TO PROGRAM THE EEPROM DATA
on your machine, if you have installed other adapters,
please Quit this program and Power OFF your machine to remove
these adapters. Otherwise, the EEPROM data of these adapters
will be overwrited by this program.
2. For DM9102A chip, the PGSROM.EXE will auto-load the new EEPROM
content after the EEPROM programmed completely, so you don't
need hardware reset the machine to take the change effect.
For DM9102A chip, you MUST HARDWARE RESET the machine to take
effect the new EEPROM content.
3. You can use the PCIVendorID, PCIDeviceID and NCE_AutoLoad
fields to override the DM9 NIC default PCI Vendor ID (1282h)
and Device ID (9102h).
(When you specify the PCIVendorID and PCIDeviceID fields,
the NCE_AutoLoad field MUST set 000Ah to enable the PCI
Vendor ID & Device ID Auto-load function, otherwise
the setting will be NO MEANING and used default values.)
4. The NodeAddress field can be assigned the First Node Address
for programming.
After each programming was completed, the programmed Node ID
will be output to the ADDR.LOG file, the NodeAddress value
will be auto-increased by 1, the Next Node ID will be saved
to the SROM.DAT file for next programming.
5. All power management functions are valid only when
the PMCapability field enabled. (ONLY for SROM v4.01)
6. The PMCSR_PMC and NCE_AutoLoad fields can be used for Power
Management Function.
(When you specify the PMCSR_PMC field, the NCE_AutoLoad field
MUST set 00A0h to enable the PME/PMC/PMCSR Auto-load function,
otherwise the setting will be NO MEANING and used default
values.)
7. Enable AutoLoadID function will auto-load PCIVendorID and
PCIDeviceID fields to PCI configuration register when
hardware reset the system. (ONLY for SROM v4.01)
8. Enable AutoLoadPM function will auto-load PMC and PMF fields
to PCI configuration register when hardware reset the system.
(ONLY for SROM v4.01)
9. The forced media mode fields are valid only when the Autodetect
field disabled. (ONLY for SROM v4.01)
10. In the multi-options field, only the last selected option is valid.
(For example, you selected the ForceEther100Half, ForceEther100Full
options at the same time, the valid option is ForceEther100Full.)
(ONLY for SROM v4.01)
11. The current programmed Node ID must be NOT the Max. Node ID
(FF FF FF FF FF FF), otherwise the program will display
the ERROR message and Quit the program.
12. The current programmed Node ID must NOT beyond the Max. Node ID
in the ADDR.MAX file, otherwise the program will display
the ERROR message and Quit the program.
13. Before programming Node ID, the program will check the programmed
Node ID from the ADDR.LOG file for avoiding the Node ID Reentry
problem. (The Current Node ID from SROM.DAT MUST be increamented
by 1 from the Last Node ID from ADDR.LOG)
If the Current Node ID from SROM.DAT is NOT increamented by 1
from the Last Node ID from ADDR.LOG, the program will RETRY
to program the Current Node ID, you can press <Ctrl>+C keys
to break the job then use PGSROM /I to program the Current
Node ID or check the SROM.DAT file.)
14. The PGSROM.EXE will compare the Programmed EEPROM Content with
the SROM.DAT File Content. If programmed EEPROM failure, it will
try to program the EEPROM again using the same SROM.DAT file,
if failure again, it will quit the program and return the Write
SROM Error Code.
15. Added "/Txxxxxxxxxxxx" parameter to input the Trust Card Node ID,
if the Node ID of the current card EEPROM is the same as the
Trust Card Node ID, we will know this is the trust card and
the program will NOT program the EEPROM of this trust card.
(This parameter can be used for the manufacture test wrokstation
that there are one trust card and one (or more) test card
on the test workstation.)
16. Added "/Pxx" parameter to select the adapter type to program
the EEPROM (p1..p6, ps1..ps2) that will configure different
SubVendorID value with each adapter type for SROM Format v4.01/v3.00
and configure different Adapter Media Capabilities with each adapter
type for SROM Format v4.01.
SubVenID MediaCap Adapter Type
-------- -------- ---------------------------------------------------
0x0291 0x000F : 10/100M Ethernet Adapter (DM9102 or DM9102A)
0x0198 0x010F : HomeRun/10/100M Ethernet Adapter (DM9102A+DM9801)
0x0298 0x020F : LongRun/10/100M Ethernet Adapter (DM9102A+DM9802)
0x0398 0x0100 : 1M HomeRun Adapter (DM9801)
0x0498 0x0200 : 1M LongRun Adapter (DM9802)
0x0990 0x0001 : 10M Ethernet Adapter (DM9009) (ONLY for SROM v4.01)
(DM9009 supports 10M half-duplex and 10M full-duplex
capabilities, enabled Auto-load ID function to
change the Device ID to 0x9009 and the SubVendor
ID to 0x0990)
0x0291 0x000F : Standard External MII PHY Adapter (Specific 01h)
0x0391 0x0001 : 10M Half Based Switching Adapter (Specific 02h)
17. Added to check the programmed ID Block CRC, SROM CRC and SROM
Offset 26..125 field data for some PC SDRAM problem.
18. The other SROM field's descriptor can be referred to the DM9102(A)
SROM Format Specific v3.00/v4.01.
For Example :
=============
1. PGSROM
At first time running this program, this command line will prompt you
to select the SROM Format Version (v4.01 or v3.00), the adapter type
(p1..p7) and input the start Node ID, the Maximum Node ID to create
the SROM401.DAT (or SROM.DAT), ADDR.MAX files and create the ADDR.LOG
and SROM.LOG files after programming the EEPROM of the all adapters
successfully. If it can find the SROM401.DAT (or SROM.DAT) or ADDR.MAX
files, it will use the found data files to program the EEPROM.
For DM9102A chip, the PGSROM.EXE will auto-load the new EEPROM
content after the EEPROM programmed completely, so you don't
need hardware reset the machine to take the change effect.
For DM9102A chip, you MUST HARDWARE RESET the machine to take
effect the new EEPROM content.
P.S. : If the program has found both SROM401.DAT and SROM.DAT files,
it will use the SROM.DAT file to program the EEPROM, or
you can use the "/v401" parameter to select the SROM401.DAT
file to program the EEPROM.
2. PGSROM /B /M
This command line will prompt you to input the Start Node ID
and Maximum Node ID to re-create the SROM401.DAT (or SROM.DAT)
and ADDR.MAX files and program the EEPROM with the new SROM data file.
3. PGSROM /N /S1 /V401 /P1
This command line will program the first 10/100M Ethernet Adapter
(DM9102 or DM9102A) with the SROM Format v4.01 data, don't
display the warning message before programming the EEPROM.
4. PGSROM /S1 /D
This command line will dump the EEPROM content of the 1st adapter
to the DUMP.DAT file.
5. PGSROM /S2 /L
This command line will program the EEPROM of the 2nd adapter
from the DUMP.DAT file.
<<< End of file >>>
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.