VIA Rhine II LAN

I have VIA Rhine II on my motherboard and it is recognized - I can see it into /dev/.

I’m able to assign an IP with ifconfig.

But when trying to ping another machine notting happends - eve there is no activity on LAN LED

Any ideas what is wrong and how to troubleshoot?

Edit: It does not work in BeOS 5 MAX tooo

foxb wrote:
I have VIA Rhine II on my motherboard and it is recognized - I can see it into /dev/.

I’m able to assign an IP with ifconfig.

But when trying to ping another machine notting happends - eve there is no activity on LAN LED

Any ideas what is wrong and how to troubleshoot?

Edit: It does not work in BeOS 5 MAX tooo

I have heard several (including Haiku devs) complaining about the VIA Rhine cards/drivers not working properly in BeOS/Haiku… It may be that the driver in the Haiku repo is simply broken or out of date.

Probably only older revisions are supported?!

This card works in linux so if somebody can guide me I could add the appropriate data or simple code

Note: I’m not a professional BeOS/Haiku programer (probably beginner level)

foxb wrote:
Probably only older revisions are supported?!

This card works in linux so if somebody can guide me I could add the appropriate data or simple code

Note: I’m not a professional BeOS/Haiku programer (probably beginner level)

I think maybe it’s an older port from Linux - so you might have some luck.

If you have the source on your machine - you can mess around with it.

Otherwise the source can be viewed here:
http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/add-ons/kernel/drivers/network/via-rhine/

UPDATE: Oh, looks like it’s BSD-licensed and possibly written exclusively for BeOS… guess it’s not from Linux afterall :frowning:

I vaguely remember one of my onboard cards had an issue with running out of the user addon directory as opposed to the system addon directory. Since I have only two onboard NICs (Different machines), its 50% chance moving it will help.

Could you specify what should be done…?

My chip is VT6103L (I’ve browsed over the source and could not find it as supported) VT8237 based.

I’ll try to check linu kernel source and lspci.

foxb wrote:
Could you specify what should be done....?

My chip is VT6103L (I’ve browsed over the source and could not find it as supported) VT8237 based.

I’ll try to check linu kernel source and lspci.

It’s best if you provide the PCI vendor id and device id - makes it easier to locate supported drivers, etc.

lspci -vv output

00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
        Subsystem: VIA Technologies, Inc. VT6102 [Rhine II] Embeded Ethernet Controller on VT8235
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 (750ns min, 2000ns max), Cache Line Size 08
        Interrupt: pin A routed to IRQ 193
        Region 0: I/O ports at e800 [size=256]
        Region 1: Memory at e2001000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [40] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable+ DSel=0 DScale=0 PME-

from hwdata

0x1106  0x3065  "via-rhine"     "VIA Technologies|VT6102 [Rhine-II]"
Vendor  Device id

Those id’s are in driver code, but it does not work I cannot ping any host in same lan and even there is no activity on LED(does not blink)

scanpci -v

pci bus 0x0000 cardnum 0x12 function 0x00: vendor 0x1106 device 0x3065
 VIA Technologies, Inc. VT6102 [Rhine-II]
 CardVendor 0x1106 card 0x0102 (VIA Technologies, Inc. VT6102 [Rhine II] Embeded Ethernet Controller on VT8235)
  STATUS    0x0210  COMMAND 0x0007
  CLASS     0x02 0x00 0x00  REVISION 0x78
  BIST      0x00  HEADER 0x00  LATENCY 0x20  CACHE 0x08
  BASE0     0x0000e801  addr 0x0000e800  I/O
  BASE1     0xe2001000  addr 0xe2001000  MEM
  MAX_LAT   0x08  MIN_GNT 0x03  INT_PIN 0x01  INT_LINE 0x0b
  BYTE_0    0x01  BYTE_1  0x00  BYTE_2  0x02  BYTE_3  0xfe

Source code for linux is available from:
http://www.viaarena.com/Driver/rhinefet[1].tar.gz

I can setup card with ifconfig /dev/net/…/0 192.168.0.29

pinggin this address works, but pinging another in same subnet gives

ping sendto: General system error

and there is no hw address when I type ifconfig

edit:

Actual message is no route to host.
I forgot to add up on ifconfig

There are known problems with Rhine cards. Rest assured that people are working on it. :^)

I’m willing to help… (as I mentioned in my first post)

If somebody is wiiling to guide me (new in Haiku) I can spend some of my time resolving problems.

Thanks anyway

Please join the network team mailing list and ask there for help:
http://www.freelists.org/list/openbeosnetteam

Currently, we are concentrating on finishing the network stack. You will probably have to sit down and roll up your sleeves. Please don’t give up if you don’t get a lot of help. When I started in the network team I had the same problem (people weren’t even responding to my mails) because most devs are just too busy with other stuff and probably don’t know the answer to your questions, but when you sit down and try to do it yourself you realize that you actually don’t need most of the help.

What do you want to know? Have you checked out the source code and do you know where to find the driver? You can build the driver separately and you can use "./configure --target=r5", so you can test the driver directly on BeOS (do a "rescan <drivername>" whenever you replace the driver binary).

If you need help with writing network drivers you should definitely ask on the network list because there are some guys who already wrote a driver. Maybe I can answer a few startup questions on BeOS driver development, too.

Happy New Year!

foxb wrote:
edit:

Actual message is no route to host.
I forgot to add up on ifconfig

That almost doesn’t sound like a driver problem at that point - i usually add a route for my default gateway, which I know shouldn’t be needed for pinging other ips on the subnet. Maybe no routes are created until the first route is added?

So this chip has an interesting property which is that if you send it enough packets to fill consume its receive descriptors, it will reset the RXEnable bit in CR0 for you. If your driver isn’t expecting this then it won’t check for it, and basically after working through the received packets the interface will effectively be dead.

Whatever code pulls packets off the descriptor list and feeds them up to the upper layers needs do check this flag and turn it back on as soon as its freed up at least one descriptor.

–O

[quote=foxb]Could you specify what should be done…?

My chip is VT6103L (I’ve browsed over the source and could not find it as supported) VT8237 based.

I’ll try to check linu kernel source and lspci.[/quote]

Foxb, you’re PHY is the VT6103L, the chip is actually the VT8235 southbridge that you mentioned earlier. This is chip where VIA integrated the Rhine II ethernet MAC into the southbridge to save costs. The cheap walmart laptop has one of these chipsets. You should look at their Linux implementation source if you can get it. This chipset is also used on some of the EPIA mini-itx mainboards so you can find helpful folks on the mini-itx forums.

–Chuck

You appear to know a bit about this chipset - would you maybe be interested in improving the Haiku driver and submitting some patches?

Currently, I don’t think there are any developers maintaining this driver in the Haiku repo, so someone with some knowledge and interest in driver development could possibly assist in improving the driver. I’m certain some existing or potential Haiku users would appreciate it :slight_smile:

Source is here if you’re interested in taking a look:

http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/add-ons/kernel/drivers/network/via-rhine/

(edit: fixed URL - forgot tags don’t work here)

I’ve also looked at the ViaArena code. My initial interest was in getting eCOS (yet another OS) running on the EPIA MII-1000 Mini-ITX board (used in larger robotics projects).

If you can point me to a simple reference for getting a current build to boot on a generic PC I’ll see if it will boot at least to something debuggable on my ITX mobo. Would be a simple matter from there to see where the problems are.

–Chuck