none
VIA EPIA LN10000EG RRS feed

  • Question

  • I'm currently working with this board that has a VT6103L Ethernet board, and although i'm using the VIA BSP i can't make Windows CE 6.0 R2 to recognize it.

    Does anyone who has worked with this board been successful in getting it to work?

    Friday, January 28, 2011 6:22 PM

Answers

  • It looks like the network card used by KITL is the same that you want the driver for: if you want to have KITL and 'normal' network on the same adapter you need VMINI/VBRIDGE (see http://msdn.microsoft.com/en-us/library/aa914872.aspx).

    What happens if you do not enable KITL?

    It's absolutely normal to have different devices using the same IRQ on the PCI bus, it's by design

     


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Wednesday, February 2, 2011 10:49 AM

All replies

  • I don't know anything about that board or BSP, but what have you tried to get it working?

    1. Do you have a BUS driver for whatever BUS the Ethernet chip is on?  Possibly PCI?

    2. Do you have a driver for the Ethernet controller?

    3. Do you have any debug output?  Is there anything relevant to the Ethernet?


    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG http://geekswithblogs.net/bruceeitman

    Eurotech Inc.
    www.Eurotech.com
    Friday, January 28, 2011 9:17 PM
    Moderator
  • Thank you for your help.

     

    1. Yes I have included the driver for PCI BUS

    2. I have a driver, but i'm not sure it's the right one, since VIA doesn't have drivers for this NIC, only for similar ones.

    3. At the moment, i don't have any serial cable available.

     

     

    Monday, January 31, 2011 12:07 PM
  • You can check if the PCI drivers you have support your specific adapter looking at their registry entries: if the PCI vendor and device ID's do not match those of your adapter the OS won't load the driver
    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Monday, January 31, 2011 12:35 PM
  • How can i check the device ID?

    The vendor is correct since they are all made by VIA. Is there any way i can force the OS to load the driver even if i cant find out the device ID?

    Monday, January 31, 2011 1:01 PM
  • I've just seen that the VT6103L is a PHY device, you will not see it on the PCI bus: you need to check the actual ethernet it is connected to (looking at the specs of your board)


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Monday, January 31, 2011 2:24 PM
  • Thank you for your help.

    I'm not sure i understand what you're trying to say.

    The only reference I have is this VIA VT6103L 10/100 Mbps Ethernet PHY.

     

    Monday, January 31, 2011 2:54 PM
  • See http://en.wikipedia.org/wiki/PHY_(chip)#Ethernet_PHYceiver and http://en.wikipedia.org/wiki/Media_Independent_Interface.

    Some ethernet controllers integrate the MAC, PHY and transceiver on a single chip (an example is the RTL8139) which resides on some bus (for example the PCI). The chip you're talking about is connected to another component (maybe integrated in the chipset): this is the component you need the driver for.  


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Monday, January 31, 2011 3:46 PM
  • Well, I've been searching and i believe that they provide the drivers all in one package.

    I've also found this hidden in the driver folder.

    Installation:
    =============
    
     Before starting with the installation process, make sure that the adapter
     is properly installed and configured.
    
    
     1. System hardware configuration:
      An IRQ line must be assigned to the fast Ethernet controller
      by the system BIOS.
    
     2. Create and build a new platform:
      Assume a new platform based on CEPC:X86 BSP is created in Platform
      Builder for CE6.0 and choose a suitable platform configuration such as
      Industrial Device -> Internet Appliance.
    
     3. Select "Sysgen" from the build options "Advanced Build Commands" on "Build" menu to build the OS image.
    
     4. Driver Installation:
      Please execute FETCE6B.MSI to the target installation directory:
      $(_WINCEROOT)\3rdParty\Via\
    
      Copy driver related files, FETCE6B.DLL/MAP/PDB/REL, to the $(_FLATRELEASEDIR) directory:
      $(_WINCEROOT)\OSDesigns\<project name>\RelDir\<OS design configuration>\
    
      For example, if your OS design is named OSDesignTest and you are building a run-time image for a CEPC,
      put files in $(_WINCEROOT)\OSDesigns\OSDesignTest\RelDir\CEPC_x86_Release.
    
     5. Add VIA Rhine Family Network Device Driver to OS Design:
      In Solution Explorer, locate to the Parameter Files folder in your OS design, and then modify the
      Project.bib file located in the folder for your target device, such as "CEPC".
    
      Sample "FETCE6B.BIB" file for your reference.
    
     6. Modify the registry settings:
      Network interface needs a Registry configuration in the PLATFORM.REG which is located in
      $(_FLATRELEASEDIR) directory and you should add VIA FETCE6B Driver Registry in it for
      VIA Rhine Family Network Device.
    
      Sample "FETCE6B.REG" file for your reference and find details in Note 2.
    
     7. Select "Make Run-Time Image" from "Build" menu to build run-time image for your target device.
    
     8. Download the binary image to your target platform.

     

    I believe this should be the solution for my problem, although i haven't tested it yet, I just have one doubt, how do i perform step 1?

     

    Tuesday, February 1, 2011 9:57 AM
  • You need to enter the BIOS setup (typically you need to press a key like DEL or F2 immediatly after power on) and assign an IRQ to the ethernet controller: if the ethernet is on the PCI bus and it's integrated ethernet this should handled by the BIOS without any intervention in my opinion though); since it looks like you're not very familiar with this topic you need the manual for your board to perform this step cause modifying the BIOS setup can lead you to a not bootable system


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Tuesday, February 1, 2011 12:35 PM
  • I've looked through the bios and i've seen the IRQ assignments and they were in AUTO mode, so I decided to leave them that way since I was unable to atribute a IRQ to a specific device.

    Nevertheless I've been unable to make it work. 

    2. Update registry PLATFORM.REG:

           You should add VIA FETCE6B Driver Registry into PLATFORM.REG which is located in

           $(_WINCEROOT)\OSDesigns\<project name>\RelDir\<OS design configuration>\.

     

           Read below for more information on how to configure the driver settings.

     

           The FETCE6B driver use several registry sub-keys under the

           [HKEY_LOCAL_MACHINE\Comm\FETCE6B\Parms] key.

     

           The PCIBus of "BusType" is designated by 0x05.

           The media type of "ConnectionType" is designated below:

     

             MEDIA_AUTO              0x00

             MEDIA_100M_HALF         0x01

             MEDIA_100M_FULL         0x02

             MEDIA_10M_HALF          0x03

             MEDIA_10M_FULL          0x04

     

     

           "BusNumber" and "SlotNumber" specify the bus and slot(device) numbers of

           the FETCE6B network controller on the PCI bus. "BusNumber" is 0 normally.

           If "SlotNumber" is given, the driver will access FETCE6B through the

           specified bus and slot numbers.

     

           The sub-keys under [HKEY_LOCAL_MACHINE\Comm\FETCE6B1\Parms\TcpIp]

           are addresses for IP, gateway, and subnetmask. The listed values

           are used as an example, and these keys must be

           modified according to your actual network environments.

           If a DHCP server exists in your network, set the sub-keys as below

           to enable the DHCP configuration,

     

             [HKEY_LOCAL_MACHINE\Comm\FETCE6B1\Parms\TcpIp]

                   "EnableDHCP"=dword:1

                   "DefaultGateway"=""

                   "UseZeroBroadcast"=dword:0

                   "IpAddress"=""

                   "Subnetmask"=""

                   "DNS"=""

                   "WINS"=""

     

    [HKEY_LOCAL_MACHINE\Comm\PCI\FETCE6B1\Parms]

            ;"BusNumber"=dword:00000000

            ;"SlotNumber"=dword:0000009

            ;"AdapterCFID"=dword:30531106

            ;"NetworkAddress"="00-11-22-33-44-55"

            ;"ConnectionType"=dword:0

            ;"FlowCtrl"=dword:0

            ;"TxQueueNum"=dword:8    ;for VT6105M

            ;"8021pqtag"=dword:0     ;for VT6105M

            ;"VLANID"=dword:0        ;for VT6105M

            ;"Checksum"=dword:0      ;for VT6105M

     

        [HKEY_LOCAL_MACHINE\Comm\PCI\FETCE6B1\Parms\TcpIp]

            "EnableDHCP"=dword:0

            "DefaultGateway"=""

            "UseZeroBroadcast"=dword:0

            "IpAddress"="192.168.1.2"

            "Subnetmask"="255.255.255.0"

            "DNS"=""

            "WINS"=""

     

    Here are the configuration notes for the registry, and the registry parts that need to be changed.

    Do i need to change anything else? Is it necessary to add the IP adress and Subnetmask in the registry?

    And if I make changes to the registry do i need to Clean Sysgen? Or can i just us make run time image?

     


     

     

    Tuesday, February 1, 2011 2:54 PM
  • Is what you posted the content of FETCE6B.REG file? I do not see any reference to PCI registry settings. Look for     [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template] in the .reg files for the driver: those are the entries who the device manager and the PCI bus driver need (see the docs http://msdn.microsoft.com/en-us/library/ms894039.aspx )

    On VIA site (http://www.via.com.tw/en/support/drivers.jsp) you can download drivers for several adapters: *first of all* you have to identify the one your board (which you have never specified) is using. Use the available documentation from the OEM or build a debug image: if it's a PCI device it will be listed in the devices found by the PCI bus driver with its device & vendor ID which uniquely identify it


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Tuesday, February 1, 2011 3:47 PM
  • I'm sorry i didn't post the entire registry. Here it is.

     

    IF BSP_VIA_FETCE6B
      [HKEY_LOCAL_MACHINE\Comm\FETCE6B]
        "DisplayName"="FAST ETHERNET FETCE6B"
        "Group"="NDIS"
        "ImagePath"="FETCE6B.dll"
    
      [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\FETCE6B]
        "Dll"="NDIS.dll"
        "Class"=dword:02
        "SubClass"=dword:00
        "ProgIF"=dword:0
        "VendorID"=multi_sz:"1106","1106","1106","1106"
        "DeviceID"=multi_sz:"3043","3065","3106","3053"
        "Entry"="NdisPCIBusDeviceInit"
        "Transceiver"=dword:3
        "IsrDll"="giisr.dll"
        "IsrHandler"="ISRHandler"
        "PortIsIO"=dword:1
        "PortOffset"=dword:000c
        "PortSize"=dword:2
        "PortMask"=dword:FFFF
    
        ;
        ; FETCE6B General setting
        ;
        "AdapterType"=dword:5
        "DmaLen"=dword:0000C000
        "ReceiveBurstIndicate"=dword:00000040
        "ReceiveThreshold"=dword:0
        "TransmitThreshold"=dword:0
        "BurstLength"=dword:1
        "MapRegisters"=dword:00000020
        "EarlyReceive"=dword:0
        "EarlyTransmit"=dword:0
        "NwayForce"=dword:1
        "HWPhyReset"=dword:0
        "PMC"=dword:0
        "TransmitBuffers"=dword:00000040
        "ReceiveBuffers"=dword:00000040
        "AdaptiveInt"=dword:1
        "ValidatePacketLen"=dword:0
    
    
      ;
      ; FETCE6B card specific settings
      ; uncomment and/or adjust the following registry items if necessary
      ;
      [HKEY_LOCAL_MACHINE\Comm\PCI\FETCE6B1\Parms]
        "BusNumber"=dword:00000000
        "SlotNumber"=dword:00000007
        "AdapterCFID"=dword:30531106
        "NetworkAddress"="00-40-63-F6-95-41"
        "ConnectionType"=dword:0
    		"BusType"=dword:05
        "FlowCtrl"=dword:0
        ;"TxQueueNum"=dword:8  ;for VT6105M
        ;"8021pqtag"=dword:0   ;for VT6105M
        ;"VLANID"=dword:0    ;for VT6105M
        ;"Checksum"=dword:0   ;for VT6105M
    
      [HKEY_LOCAL_MACHINE\Comm\PCI\FETCE6B1\Parms\TcpIp]
        "EnableDHCP"=dword:0
        "DefaultGateway"=""
        "UseZeroBroadcast"=dword:0
        "IpAddress"="192.168.1.1"
        "Subnetmask"="255.255.255.0"
        "DNS"=""
        "WINS"=""
      ;
      ; FETCE6B card specific settings
      ; uncomment and/or adjust the following registry items if necessary
      ;
      ;[HKEY_LOCAL_MACHINE\Comm\PCI\FETCE6B2\Parms]
        ;"BusNumber"=dword:00000000
        ;"SlotNumber"=dword:00000008
        ;"AdapterCFID"=dword:30531106
        ;"NetworkAddress"="00-11-22-33-44-55"
        ;"ConnectionType"=dword:0
        ;"FlowCtrl"=dword:0
        ;"TxQueueNum"=dword:8  ;for VT6105M
        ;"8021pqtag"=dword:0   ;for VT6105M
        ;"VLANID"=dword:0    ;for VT6105M
        ;"Checksum"=dword:0   ;for VT6105M
    
      ;[HKEY_LOCAL_MACHINE\Comm\PCI\FETCE6B2\Parms\TcpIp]
      ;  "EnableDHCP"=dword:1
      ;  "DefaultGateway"=""
      ;  "UseZeroBroadcast"=dword:0
      ;  "IpAddress"=""
      ;  "Subnetmask"=""
      ;  "DNS"=""
      ;  "WINS"=""
    ENDIF BSP_VIA_FETCE6B  
    ; @CESYSGEN ENDIF

     

    My board is a EPIA LN. 

    Where can i see the devices listed by the PCI bus driver? In the serial output?

    Thank you once again

    Tuesday, February 1, 2011 5:21 PM
  • do a debug build and enable all the zones in the PCI bus driver.  You'll see all kinds of information in the KITL output when the various devices are enumerated, including any devices that don't have a template defined (and thus can't load).

     


    Dean Ramsier eMVP BSQUARE Corporation
    Tuesday, February 1, 2011 6:06 PM
  • I've been checking my debug output and the Ethernet NIC is recognized. I don't know what could be wrong.

     

    addIrqLink: LinkNumber=1,bus=0,device=16 associated with irq=11
    addIrqLink: LinkNumber=2,bus=0,device=16 associated with irq=5
    ScanConfigureIrq: for Bus=0 ,Device=18 SlotNumber=0
      INTA_LinkValue=1,INTA_IrqBitMap=deb8
      INTB_LinkValue=0,INTB_IrqBitMap=deb8
      INTC_LinkValue=0,INTC_IrqBitMap=deb8
      INTD_LinkValue=0,INTD_IrqBitMap=deb8
    addIrqLink: LinkNumber=1,bus=0,device=18 associated with irq=11
    InitKitlNIC: Searching for PCI Ethernet NIC (dwIrq = 0, dwIoBase = 0, dwDfltType = 1) ...
    
    InitKitlNIC: Found PCI Ethernet NIC (type = 41, IRQ=11, IOBase=0xE000).
    
    Using a KITL device on the PCI bus, not a legacy device.
    
    DeviceId................. CEPC
    
    pArgs->flags............. 0x2D
    
    pArgs->devLoc.IfcType.... 5
    
    pArgs->devLoc.LogicalLoc. 0x1200
    
    pArgs->devLoc.PhysicalLoc 0x0
    
    pArgs->devLoc.Pin........ 11
    
    pArgs->ip4address........ 0
    
    pDevice->Name............ s
    
    pDevice->ifcType......... 5
    
    pDevice->id.............. 0x30651106
    
    pDevice->resource........ 0
    
    pDevice->type............ 2
    
    pDevice->pDriver......... 0x82D68144
    
    WINCE FET ETHDBG driver: ver. 1.03
    
    FETInitDMABuffer():: Start[0x82D993E0]-[0x82D993E0] - Size[0x10000]
    
    Tx[0x82D993E0] - Rx[0x82D9F3E0]
    
    FETInit():: BaseIO[0xE000] : MemOffset[0x1200]
    
    FETHWSetMCRegs():: Set all to 0x00
    
    FETInit():: MAC = 00-40-63-F6-95-41
    
    FETInit():: Link [1]
    
    FETInit():: Full-Duplex Mode
    
    
    
    +---------- Initialize ----------+
    
    RCR = [0xE8]	TCR = [0xE8]
    
    CR0 = [0x1A]	CR1 = [0xC]
    
    ISR0 = [0x0]	IMR0 = [0x0]
    
    RX_ADDR = 0x[2DA53E0]	TX_ADDR = 0x[2DA54E0]
    
    RDSE = 0x[400]	0x[0]	0x[0]	0x[0]
    
    TDSE = 0x[0]	0x[0]	0x[0]	0x[0]
    
    RX_DESC = [0]	TX_DESC = [0]
    
    +------------------------------------------------------------+

     

     

    Is it normal to have 2 devices associated with the IRQ 11?

     

    Also I have this:

     

    PCIBUS!PCICfgAllocMemSpace: Failed to place Device resource: Bus 0, Device 18, Function 0

     

    Is this normal? It seems to me that device 18 is my NIC and this could be the source of my problems... Am i right? Does anyone knows any solution to this?

     

    Thank you for your help.

    Wednesday, February 2, 2011 10:36 AM
  • It looks like the network card used by KITL is the same that you want the driver for: if you want to have KITL and 'normal' network on the same adapter you need VMINI/VBRIDGE (see http://msdn.microsoft.com/en-us/library/aa914872.aspx).

    What happens if you do not enable KITL?

    It's absolutely normal to have different devices using the same IRQ on the PCI bus, it's by design

     


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Wednesday, February 2, 2011 10:49 AM
  • Thank you all for your precious help. 

    Just one more question. I disabled KITL and it all started working, but it seemed to me that all the procedures to enable VMINI were already implemented, and i could see VMINI icon in my desktop tray. However i didn't have any connectivity Is there any reason for this?

     

    Wednesday, February 2, 2011 11:51 AM