Forum Topic - QNX6.6 I210 driver not working: (7 Items)
   
QNX6.6 I210 driver not working  
I'm trying to get QNX 6.6 working on a ETX board with an INTEL I210 . 
Started from sources of devnp-e1000.so driver from a BSP (x86-generic-SPD6.6)
Recompiled the driver and try to run it but io-pkt-v6-hc stops and abort
printing this messages:

ldd:FATAL: Unresolved symbol "nic_delay" called from devnp-e1000.so

Now, I've searched in the BSP for nic_delay and I've found a reference in the
\usr\include\netdrvr\nicsupport.h
But where is the library to resolve the function? 

it seems that is not in the binary io-pkt-v6-hc i'm using ...
Is the function in some other library ? 
or the io-pkt-vx-hc are NOT the latest binary ?

This is the start up of driver:
io-pkt-v6-hc -d e1000 -p tcpip -vvvv &
if_up -r 10 -p wm0

ifconfig wm0 11.0.0.159
ifconfig wm0 alias 192.168.10.29


sloginfo
-----------------
Time             Sev Major Minor Args
Nov 30 16:54:33    5    14     0 tcpip starting
Nov 30 16:54:33    3    14     0 Using pseudo random generator.  See "random" option
Nov 30 16:54:33    5    14     0 initializing IPsec... done
Nov 30 16:54:33    5    14     0 IPsec: Initialized Security Association Processing.
Nov 30 16:54:33    5    14     0 wm0
Nov 30 16:54:33    5    17     0 last_chance on B5:D0:F0 irq 6
Nov 30 16:54:33    5    17     0 get_msi_irq() for B5:D0:F0
Nov 30 16:54:33    5    17     0 scan_irq_routing() for B5:D0:F0
Nov 30 16:54:33    6    10     0 i82544_pci_attach: rar entries 16
ldd:FATAL: Unresolved symbol "nic_delay" called from devnp-e1000.so

ifconfig: socket: Address family not supported by protocol family
ifconfig: socket: Address family not supported by protocol family
route: socket: Address family not supported by protocol family

After that I've used the latest io-pkt-vX-hc,devnp-e1000.so binaries availables
downloaded from QNX site and it seems that driver's is running but there is no 
link UP event and link is always DOWN, network is notworking. 

I've tested hardware using Windows and Linux and the ethernet works fine, so problem 
is in the QNX driver.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><
Time             Sev Major Minor Args
Nov 30 16:42:52    5    14     0 tcpip starting
Nov 30 16:42:52    3    14     0 Using pseudo random generator.  See "random" option
Nov 30 16:42:52    5    14     0 initializing IPsec... done
Nov 30 16:42:52    5    14     0 IPsec: Initialized Security Association Processing.
Nov 30 16:42:52    5    14     0 wm0
Nov 30 16:42:52    5    17     0 last_chance on B5:D0:F0 irq 0
Nov 30 16:42:52    5    17     0 get_msi_irq() for B5:D0:F0
Nov 30 16:42:52    5    17     0 scan_irq_routing() for B5:D0:F0
Nov 30 16:42:52    5    10     0 Link down
Nov 30 16:42:52    5    14     0 INTEL PRO/1000 Gigabit (Copper)
Nov 30 16:42:52    5    14     0 Vendor .............. 0x8086
Nov 30 16:42:52    5    14     0 Device .............. 0x1533
Nov 30 16:42:52    5    14     0 Revision ............ 0x0
Nov 30 16:42:52    5    14     0 Memory base ......... 0xb0600000
Nov 30 16:42:52    5    14     0 Interrupt ........... 0x6
Nov 30 16:42:52    5    14     0 MAC address ......... 003064 8859ef
Nov 30 16:42:52    5    10     0 devnp-e1000: i82544_stop() called, disable = 0
Nov 30 16:42:52    6    10     0 ITR set to 20000
Nov 30 16:42:52    5    10     0 Link down

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
wm0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	capabilities rx=1f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM>
	capabilities...
View Full Message
Re: QNX6.6 I210 driver not working  
QNX 6.6.0 was End of Life in February 2024 https://www.blackberry.com/us/en/support/software-support-life-cycle I 
strongly recommend moving to QNX SDP 8 and if this is for Non-Commercial Use then join our QNX Everywhere program https:
//www.qnx.com/products/everywhere/

nic_delay() is in libnetdrvr. I think your problem with the link not coming up is probably the interrupt not working 
because it has failed to get MSI-X or MSI interrupts and fallen back to pin interrupts with the wrong interrupt routing.
Re: QNX6.6 I210 driver not working  
thanks Nick: i've tested same systemm on another board wilth a speedo driver and all works fine,
so trouble is in i210 driver. Interrupt problem should be a good point to analyze.
I've tested both spartup-bios and statup-apic with same result: driver not working.
But with startup-bios the IRQ assigned (IRQ6) seems to be correct: is the same found in pci
and detected by the driver....somo other routing to do?
Thangx again
Mario 
Re: QNX6.6 I210 driver not working  
Hi,

IIRC, the last 6.6 version of the BSP I've got on hand (BSP_x86-generic_br-660_be-660_SVN816552_JBN786.zip) needed an 
updated libnetdrvr.a from "PSP_networking_br660_be660-977_net-libnetdrvr-x86-exp.tar" to build.

Would you mind posting `pci -vvv` from the affected board?  We had some issues with PCI interrupt routing on QNX 6.6, 
possibly one of the patches we have for pci-bios-v2 could help.

-Will
Re: QNX6.6 I210 driver not working  
Thank Will,
I will get the dump of pci -vvv asap, for both the pci-bios and pci-bios-v2 images.
just a question, where I can find the PSP_networking_br660_be660-977_net-libnetdrvr-x86-exp.tar
file? I've not found it in the archived bsp
-Mario
Re: QNX6.6 I210 driver not working  
I've attached the pci -vvv file dump, in case it can be of help
thanks
-mario
Attachment: Text pcidump.txt 25.92 KB
Re: QNX6.6 I210 driver not working  
Hi Mario,

You'll need to contact QNX support about PSP packages, they aren't generally available.

Your pci output does indicate that the device is connected to a bus that should have MSI support; I don't think there's 
any PCI server patches that are relevant.  You could try running the driver you have with verbosity enabled (`io-pkt-v6-
hc -d e1000 verbose=4`) and see if `sloginfo` has anything to say about what the driver is doing.  Beyond that, though, 
I don't know if there's much more that can be done short of finding a way to rebuild the driver and debugging it.  As 
Nick mentioned, QNX 6.6 has been end-of-life for quite some time, so you'll be mostly on your own with it.

Sorry I can't be of more help,
-Will