**
**
**  VIA Rhine Family Fast Ethernet Adapter
**
**  Ethernet Downloader/Debugger package for Windows CE 4.2
**
**  v1.02   Jun, 2004
**
**


Introduction:
=============

  This document shows you how to enables VIA Rhine Family Fast Ethernet Adapter
  to be adopted as a download/debug card for WINCE .NET platform builder 4.2.


Contents of the Subdirectory:
=============================

    \DEBUG\FETDBG.LIB             fetdbg library debug version
    \DEBUG\FETDBG.PDB             fetdbg library debug pdb file
    \RETAIL\FETDBG.LIB            fetdbg library retail version
    \RETAIL\FETDBG.PDB            fetdbg library retail pdb file
    MAKEFILE                      sample MAKEFILE file
    SOURCES                       sample SOURCES file
    HALETHER.H                    HAL Header File
    HALETHER.C                    HALETHER Source Code
    EBOOT.BIN                     ethernet boot loader file
    LOADCEPC.EXE                  Windows CE .NET boot loader
    FETDBG.TXT                    this file



Installation:
=============

  Assume your target platform is equipped with
  VIA Rhine Family Fast Ethernet Adapter, the platform is "CEPC:X86".
  Installation and test instructions are described below.


  1. Copy binary library files

    (1) Retail build:
       Copy the following files to directory
       \WINCE420\public\common\oak\LIB\X86\RETAIL

            \Retail\fetdbg.lib
            \Retail\fetdbg.pdb

    (2) Debug build:
       Copy the following files to directory
       \WINCE420\public\common\oak\LIB\X86\DEBUG

            \Debug\fetdbg.lib
            \Debug\fetdbg.pdb


  2. Modify HALETHER.C

    Locate the HALETHER.C file in directory \WINCE420\PLATFORM\CEPC\KERNEL\HAL
    and add the following codes in the "switch (pBootArgs->ucEdbgAdapterType)" statement
    in the OEMEthInit() function:

    case EDBG_ADAPTER_FET:
        pfnEDbgInit           = FETInit;
        pfnEDbgInitDMA        = FETInitDMABuffer;
        pfnEDbgEnableInts     = FETEnableInts;
        pfnEDbgDisableInts    = FETDisableInts;
        pfnEDbgGetPendingInts = FETGetPendingInts;
        pfnEDbgGetFrame       = FETGetFrame;
        pfnEDbgSendFrame      = FETSendFrame;
        pfnEDbgReadEEPROM     = FETReadEEPROM;
        pfnEDbgWriteEEPROM    = FETWriteEEPROM;
        pfnEDbgSetOptions     = FETSetOptions;
        pfnCurrentPacketFilter= FETCurrentPacketFilter;
        pfnMulticastList      = FETMulticastList;
        break;

    Sample HALETHER.C file is included for your reference.


  3. Modify halether.h

    Locate the halether.h file in directory \WINCE420\public\common\oak\INC
    and add the following lines:

       #define EDBG_ADAPTER_FET   65

       // Prototypes for FETDBG.LIB functions
       BOOL   FETInitDMABuffer(DWORD dwStartAddress, DWORD dwSize);
       BOOL   FETInit( BYTE *pbBaseAddress, DWORD dwMultiplier, USHORT MacAddr[3]);
       void   FETEnableInts(void);
       void   FETDisableInts(void);
       DWORD  FETGetPendingInts(void);
       UINT16 FETGetFrame( BYTE *pbData, UINT16 *pwLength );
       UINT16 FETSendFrame( BYTE *pbData, DWORD dwLength );
       BOOL   FETReadEEPROM( UINT16 EEPROMAddress, UINT16 *pwVal);
       BOOL   FETWriteEEPROM( UINT16 EEPROMAddress, UINT16 Data );
       DWORD  FETSetOptions(DWORD dwOptions);
       void   FETCurrentPacketFilter(DWORD	dwFilter);
       BOOL   FETMulticastList(PUCHAR pucMulticastAddresses, DWORD dwNoOfAddresses);

    Also add the following lines into the SUPPORTED_COMMON_NIC #define section:

       {0x1106, 0x3065, 0xABCDEF, EDBG_ADAPTER_FET,     "VT" }, /* VIA */\
       {0x1106, 0x3106, 0xABCDEF, EDBG_ADAPTER_FET,     "VT" }, /* VIA */\
       {0x1106, 0x3053, 0xABCDEF, EDBG_ADAPTER_FET,     "VT" }, /* VIA */\

    Sample halether.h file is included for your reference.


  4. Modify the "Sources" files

    Locate respectively the "Sources" files in directories
       \WINCE420\PLATFORM\CEPC\KERNEL\BUILDEXE\KERNKITL
       \WINCE420\PLATFORM\CEPC\KERNEL\BUILDEXE\KERNKITLPROF

    and add one extra line below for the TARGETLIBS environment variable:

       $(_COMMONOAKROOT)\lib\$(_CPUDEPPATH)\fetdbg.lib  \

    Sample "Sources" file is included for your reference.


  5. Modify MAKEFILE file

    Locate the MAKEFILE file in directory \WINCE420\public\common\CESYSGEN
    and add "fetdbg" for the tools and httpftp segments.

    Sample "MAKEFILE" file is included for your reference.


  6. Build CEPC platform

    Choose "Build Platform" from the "Build" menu to make a new OS image.


  7. Basic testing

    A file named EBOOT.BIN is included in this package. Copy this file to your boot disk.

    If you need to specify IRQ or IOPORT for ethernet debug card, a setup utility is
    included in this package. Run this setup utility on your target platform to check
    the IRQ and IOPORT assignments of the card.

    Then run loadcepc.exe to download the OS image.

    Usage,
       loadcepc /e:<IOPORT in HEX>:<IRQ in hex>:[<dotted IP address, optional>] eboot.bin

    Where <IOPORT> and <IRQ> could be found by the setup utility.

    Typical examples,
        In case of static IP assignment,
           loadcepc /e:E000:B:192.168.1.123 eboot.bin

        In case of IP assignment through DHCP,
            loadcepc /e:E000:B eboot.bin


  8. IDE platform builder ethernet download/debug settings

    In order to configure a connection for downloading and debugging, choose
    "Configure Remote Connection" from the Target menu to select the device name to be
    used for image downloading and debugging.


  9. FET NDIS LAN driver/EDBG conflict problem

    If a FET is used as a download/debug card, then FET Fast Ethernet LAN Driver driver
    must not be installed on this download/debug card. Improper installation could cause
    Windows CE system hanging.
    By default, a VMini Ethernet sharing library is supported by CE.Net. It's a miniport driver
    that interfaces with VBridge to handle traffic not related to Ethernet debugging. Besides
    EDBG, a FET download/debug card also functions as a product Ethernet card.
    Note:If the environment variable BSP_NOSHAREETH is set, VMini will be disabled.

