Hi,
~/qnx-ide-7.1-workspace/x86-64-generic/images/x86_64-uefi.build
I have tried same standard uefi image on an old x86 platform and a new platform.
old platform: BIOS supports “Legacy Boot”, I suppose that is CRM feature.
The QNX Image boots fine, I can telnet, launch gles2_gears(after enabling graphics) etc.
New Platform: UEFI does not have “Legacy Boot”. and the boot process just hangs somewhere. I can’t ping it and no gles2_gears/screen is launched.
Can you please support to fix it?
Another question: I am using standard Intel-NUCs for this, How to enable debug logs on them? On display, I see no logs coming.
Looks like you just replace the startup-x86 in your boot file with startup-uefi. There are options for logging to the console with this command to help you figure out what’s going on.
Also tried other commands startup-uefi -Nnode120 -vvvv -Dconsole and variants but connected display is always blank and target is stuck during boot time (I can confirm because ping does not work in these UEFI builds)…
FYI: I don’t have serial port on current platform so I am stuck with blank screen right now…
Looking at the first screenshot, why are you loading the image at 0x140000? Is that were you were loading it on the other machine that worked?
I’m curious what your build file looked like on the system that works compared to this one. Can you post both build files. I’m wondering if the issue is addressing.
Hi Tim,
I got a debug board where I have Serial output. So now I know that RTOS is actually booting but the problems are in Display and in Network. That is why I could not see gles2_gears launching and no ping on network port. So I guessed that RTOS might have crashed. But now I have better idea.
Network Port issue:
In build scripts there is a list of supported PCI devices. As below -
But on my new board, the Network Controller device was not in that list.
There is nothing to do to add a PCI device as they are automatically detected at startup. Of course, the PCI server has to be running : pci-server --config=/your_path/pci_server.cfg &
You have to tell the network manager which driver to use. For the E1000 driver, something like this : io-pkt-v6-hc -ptcpip -de1000 mac=$mac_addr
/dev/screen is created by Screen application. Is it started on your device ?
If yes, does it load correctly ? You can check with slog2info (sloginfo on older QNX versions). Configuring Screen can be quite complicated.
Hi,
Even after I mention driver name and mac address the interface is not detected.
I am more concerned about Network interface not being detected.
How can I debug this further?
You need to make sure that pci-tool is included in your boot image so you’ll have to modify your build script for the boot image if it’s not there by default (it’s likely not).
Hi Tim,
The pci-tool is actually there, else with below logic I would not see ethernet interface being timeout.
FYI: I added the highlighted line because this is “1a1e” device was not listed and logic was not going in then.. block. After adding 1a1e device, I was able to see that if_up is failing after 10 attempts.
That means just adding 1a1e device was not good enough, and we need to do somethign more to enable the new device type. (at least thats what I concluded)
Can you post a screen shot of the output of pci-tool -V. Right now it’s getting cut up to make a list. We need to see the entire output so we can see exactly which Intel NIC card is in this machine. It may be one that needs a different driver
So only doubt remains is that the eth-device e1000 is not present on my platform… or device type not recognized… At the same time I can recognize pci device “8086/1a1e” on Linux. So Device is actually present on platform.
the fact it says ‘Unknown’ is not a good sign. I googled the 1a1e address and it’s an Intel I219LM Ethernet card. I pretty sure the I219L Ethernet card is supported by this driver. The LM apparently means it’s mean for home PCs vs Industrial ones so I imagine it should work but since the device reports as unknown you may have to manually specify enough options for it to get recognized. Start with the device ID
did=0x1a1e
Hi Tim,
You are right. On linux, lspci says below - 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-LM (rev 01)
And ifconfig -
eno0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 88:88:88:88:87:88 brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
inet6 fe80::5ec9:5fa1:646f:4332/64 scope link noprefixroute
valid_lft forever preferred_lft forever
So, on QNX:
when you say “enough option to get recognized” can you please give me example for it?
I even tried below command, although return code is 0, it does not enumerates interface…
The ‘Unknown’ comes from the lack of information in the PCI vid/did database. This file is named pcidatabase.com-tab_delimited.txt and should be located at /etc/system/config/pci/.
At line 7620, there is 8086 Intel Corporation which identifies the vid 8086. But there is no line to identify the did 1a1e.
From the capture you provided, the network device is part of a compound device. So there are shared resources with other functions in the same physical device.
To get more information on the network device, can you provide the output of pci-tool -vvv -D0x1a1e ?
Have you tried to use the absolute path to the driver library ? Just to be sure there is no path problem : pkt-v6-hc -ptcpip -d/proc/boot/devnp-e1000.so mac=$mac_addr
For Intel network devices, there are 2 other drivers : speedo and ixgbe. It might be worth trying them.