3COM 3C900 network problems

Hello all,

Just installed QNX 6.2.1. I am having problems getting my network card to work properly.

I start with

slay -f io-net


io-net -d el900 verbose=10 -p tcpip

sloginfo reveals an error, “Cannot find an active PHY”:

Time Sev Major Minor Args
Jan 20 16:43:36 5 10 0 devn-el900: Vendor Id.=0x10b7 Device Id.=0x9001 pci index=0x0000 Irq=0x0005

Jan 20 16:43:36 5 10 0 Caps (a6). Card is a 90X
Jan 20 16:43:36 5 10 0 media_options: e138
Jan 20 16:43:36 2 10 0 devn-el900: Cannot find an active PHY
Jan 20 16:43:36 5 10 0 Media Options: e138
Jan 20 16:43:36 5 10 0 Internal Config: 10302d8
Jan 20 16:43:36 3 14 0 Using pseudo random generator. See “random” option

I ask about this error because when I execute dhcp.client, nothing happens. If I use the GUI network settings tool, I get an “unable to reach DHCP server” error when I select DHCP and click “apply”.

Here is the info on my network card:

Class = Network (Ethernet)
Vendor ID = 10b7h, 3Com Corporation
Device ID = 9001h, 3C900-COMBO Fast Etherlink XL PCI Combo NIC
PCI index = 0h
Class Codes = 020000h
Revision ID = 0h
Bus number = 0
Device number = 20
Function num = 0
Status Reg = 200h
Command Reg = 107h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 0h
PCI IO Address = ee80h length 64 enabled
PCI Expansion ROM = ffac0000h length 65536 disabled
Max Lat = 8ns
Min Gnt = 3ns
PCI Int Pin = INT A
Interrupt line = 5

Any help is appreciated!

What does “nicinfo” say ? I have a feeling your “media rate” will be 0 ;)
cdm identified this problem with 3C900 years ago, don’t know if it is fixed.
Or maybe your problem is different.

Here’s the output from nicinfo:

3COM (90x) 10BASE-T/100BASE-TX Ethernet Controller
Physical Node ID … 00A024 D2CDAB
Current Physical Node ID … 00A024 D2CDAB
Media Rate … 0 kb/s half-duplex UTP
MTU … 1514
Lan … 0
I/O Port Range … 0xEE80 → 0xEEBF
Hardware Interrupt … 0x5
Promiscuous … Disabled
Multicast … Enabled

Total Packets Txd OK … 0
Total Packets Txd Bad … 0
Total Packets Rxd OK … 0
Total Rx Errors … 0

Total Bytes Txd … 0
Total Bytes Rxd … 0

Tx Collision Errors … 0
Tx Collisions Errors (aborted) … 0
Carrier Sense Lost on Tx … 0
FIFO Underruns During Tx … 0
Tx deferred … 0
Out of Window Collisions … 0
FIFO Overruns During Rx … 0
Alignment errors … 0
CRC errors … 0

It indeed has a Media Rate of 0.
Apparently, the QNX el900 driver doesn’t work with 3C900. It has a problem to detect the correct media rate.
What kind/speed of ethernet switch/hub do you have? Are you using CAT5 twisted pair cable?

Yeah, looks like the PHY isn’t supported. It might even say something along those lines on the output of sloginfo.

Don’t know the brand of hub since it’s locked away in the network hardware rack in our building. We are wired for 10/100 MB ethernet, and I am connected to the wall with twisted-pair cable. This board works fine under Linux and Windows, so I figure it’s the driver. Too bad. I’ve got an ISA bus NE2000 compatible board as well, so I guess I’ll switch to that.

Seems like this is the case; sloginfo output posted in my original question mentions something about PHY. I have no idea what that is, but I figure it’s bad to have an error. I’ll try again with the NE2000 board.

Thanks for you help!

I have two 3COM cards in my PC and they work fine under QNXRTP.
Here is how I start io-net and drivers :

sleep 1
mount -Tio-net -opci=0x0 /lib/dll/devn-el900.so
mount -Tio-net -opci=0x1 /lib/dll/devn-el900.so
mount -Tio-net /lib/dll/npm-tcpip.so
waitfor /dev/socket
ifconfig en0 192.9.300.23 up
dhcp.client -ien1 &

This is a part of my rc.sysinit script. But make sure io-net was not started before.


I believe the problem is only for 3com 3c900. If you have 90X (where X != 0 ), it will work.