QNX Technical Articles
QNX® Software Development Platform 7.1 Board Support Package for the Generic x86-64 (64-bit): Release Notes
Date of this edition: Apr 07, 2022
QNX SDP is a cross-compiling and debugging environment, including an IDE and command-line tools, for building binary images and programs for ARM v7, ARM v8, and x86_64 targets running the QNX Neutrino RTOS 7.1.
Board Support Packages (BSP) are available for various hardware platforms on QNX SDP 7.1. This is a release note for the Generic x86-64 (64-bit) BSP.
Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.
- Using Intel PCIe Burst Transfer Support
- Revision history
- Supported hardware
- Known issues
- Getting started with this BSP
- Technical support
Using Intel PCIe Burst Transfer Support
PCIe Burst Transfer allows you to transfer 64 bytes of data in a single burst through the CPU core bus interface to a memory region that’s reserved for a PCIe device.
If you want to implement PCIe Burst transfer, refer to the How to Implement 64B PCIe Burst Transfer on Intel Architecture whitepaper on the Intel website; http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/pcie-burst-transfer-paper.pdf.
To create a memory region marked as WriteCombine (WC), you call the
shm_ctl()/shm_ctl_special() functions
with the SHMCTL_LAZYWRITE
attribute set to obtain the
WC mappings described in the whitepaper previously mentioned.
Hyperthreading on Skylake and Kaby Lake platforms
If you're using an Intel x86_64 platform based on the Skylake or Kaby Lake SoC, it's recommended that you see the Intel Skylake/Kaby Lake processors: Broken Hyper-threading advisory to determine if it impacts your chip and microcode version. If it does, perform the following actions before you install QNX Neutrino on your target:
- Disable hyperthreading, via the BIOS/UEFI configuration on the affected platform
- Update the CPU microcode
For more information about disabling hyperthreading or updating the microcode, see the Intel Skylake/Kaby Lake processors: broken hyper-threading advisory at https://lists.debian.org/debian-devel/2017/06/msg00308.html.
Revision history
The following is a summary of the updates made to this BSP.
BuildID 448 (0.0.2.00448T202006241153E)
- Initial release that supports the following drivers:
- Startup
- Audio
- EIDE
- Network
- NVMe
- PCI Server
- SATA
- SD/MMC
- Serial
- SMMU Manager
- USB Host Controller
- For graphics driver support, this release has been built and tested with the QNX SDP 7.1 Screen Board Support Intel package, version 7.1 BuildID 201. For more information, see the QNX SDP 7.1 Screen Board Intel: Release Notes from the QNX Software Center.
- This BSP provides full support for the boards listed in the
Supported hardware
section. For this release, this BSP has been validated on following boards:- Intel Apollo Lake (NUC6CAYS)
- Intel Coffee Lake (NUC 8i5BEH1)
- Intel Gemini Lake (NUC7CJYH)
- Intel Kaby Lake (NUC7i7BNH)
- Intel Denverton (A2SDV-8C-TLN5F REV 1.02)
- Intel Baytrail (MC500B PD11BI-301 Mitac Intel Bay Trail Mini-ITX Motherboard)
- Intel Skylake (ASRock Beebox-S 6200U/B/BB/EU)
- AMD Ryzen
- AMD eKabini
BuildID 682 (0.0.6.00682T202203211144L)
- This BSP provides full support for the boards listed in the
Supported hardware
section. For this release, it add support for Intel Elkhart Lake CRB platform. This BSP has been validated on following boards:- Intel Elkhart Lake CRB
Supported hardware
Our BSP supports the following boards:
- we have validated our BSP on the following x86_64 targets (including listed SoCs):
- Intel Apollo Lake
- Intel Skylake
- Intel Baytrail
- Intel ADI RCC C2000 (Rangeley)
- Denverton SoC-based boards, which include:
- Intel Car Creek Module (CCM1 and CCM2)
- Intel Atom C3000 Supermicro boards (Revision 1.02)
We support Car Creek Module version: MD#h85725, Rev02, BIOS Revision HAVLCRB0.X64.0009.D47.1512101003, Module Color: Blue. The provided BSP supports Denverton (CCM1 hardware) and ADI RCC C2000 (Rangeley), but there are few additional considerations when you work with the those platforms. For more information, see the Working with Denverton Platforms and Working with ADI RCC C2000 Platforms chapters in the user's guide for this BSP.
- Intel Kaby Lake
- Intel Coffee Lake
- Intel Gemini Lake
- Intel Elkhart Lake CRB
We support Startup, PCI Server, Serial, USB host Controller, Network, SATA, SDMMC driver for Intel Elkhart Lake CRB platform. For more information, see the Working with Intel Elkhart Lake CRB platform
chapter in the user's guide for this BSP.
- AMD eKabini
- AMD Ryzen
- for the Screen Graphics Subsystem, we have validated these processors:
- Apollo Lake
- Skylake—we have tested on the ASRock Beebox for this processor.
- Intel Coffee Lake
- Intel Gemini Lake
Known issues
This BSP has the following known issues, but for common QNX Software Development Platform issues that may impact this BSP, see the QNX Software Development Platform 7.1: Release Notes:
- When you boot the AMD Ryzen board with the BIOS image, the USB keyboard stops working
a few minutes after you connect a USB mouse.
As a result, you can't issue commands to the console.
(Ref# J2878978)
Workaround: Don't connect a mouse to the board if you want to access the target over the console.
- On AMD Ryzen targets, you can't record audio. (Ref# J2879140)
- On AMD Ryzen targets, if you start io-pkt with the
devnp-rtl8169.so driver and specify a speed of 1000 megabits/second,
you can't get an IP address.
(Ref# J2879108)
Workaround: Don't specify the speed option (1000 megabits/second is the default).
- On AMD Ryzen targets, some devices connected to a USB 2.0 hub might not be detected. (Ref# J2879202)
- On AMD Ryzen targets, any networking traffic that specifies an MTU larger than 1500 bytes is dropped
by the receiving side. For that reason, any networking traffic must be no larger
than 1500 bytes [or no larger than 1496 bytes when using virtual LAN (vLAN) configurations].
For example, if you use the ping command, it will fail if your
MTU is larger than 1500 bytes (or larger than 1496 bytes on vLAN configurations).
(Ref# J2878976)
Workaround: : None, but ensure that both host and target have matching MTUs that are 1500 bytes or less (1496 bytes or less when using vLAN configurations).
- On Coffee Lake and Gemini Lake targets, when you run the
ping command, it fails with
No route to host
errors if you blacklist pci_cap-0x05.so and pci_cap-0x11.so. Typically you may blacklist these PCI modules to disable MSI/MSI-X for drivers that use PCI to use traditional interrupt-pin interrupts. It's important to note pci_cap-0x05.so and pci_cap-0x11.so aren't blacklisted by default in this BSP. (Ref# J2815242, J2878349)Workaround: If you have blacklisted pci_cap-0x05.so and pci_cap-0x11.so in your buildfile, remove them from the blacklist environment variable (PCI_MODULE_BLACKLIST).
- When you boot the any of the provided QNX IFS (x86_64-generic.bin,
x86_64-uefi.bin, x86_64-nuc-graphics.bin) on an Intel Gemini Lake board,
the audio, block, and network drivers don't start. (Ref# J2878458)
Workaround: Add the Gemini Lake-specific addresses to the corresponding buildfiles, rebuild the image, and use the rebuilt QNX IFS to boot the Gemini Lake board. For example, if you wanted to modify the x86_64-generic.bin, edit the x86_64-generic.build file as follows:
At approximately line 334, add PCI address for Gemini Lake (INTEL_HDA_GEMINI=8036/3198):
... ... INTEL_HDA_CHERRYHILL=8086/2284 INTEL_HDA_SUNRISEPLHD=8086/9d70 INTEL_HDA_KABYLAKEPLHD=8086/9d71 INTEL_HDA_CANNONPLHD=8086/9dc8 INTEL_HDA_ATOME3900=8086/5a98 INTEL_HDA_GEMINI=8086/3198 ATI_HDA_SB600=1002/4383 AMD_HDA_FCH=1022/780d AMD_HDA_STARSHIP=1022/1487 ... ...
At approximately line 374, add the corresponding grep statement for the PCI address:
... ... grep $INTEL_HDA_CHERRYHILL $PCI_DEVICE_LIST > $STD_NULL || grep $INTEL_HDA_SUNRISEPLHD $PCI_DEVICE_LIST > $STD_NULL || grep $INTEL_HDA_KABYLAKEPLHD $PCI_DEVICE_LIST > $STD_NULL || grep $INTEL_HDA_CANNONPLHD $PCI_DEVICE_LIST > $STD_NULL || grep $INTEL_HDA_ATOME3900 $PCI_DEVICE_LIST > $STD_NULL || grep $INTEL_HDA_GEMINI $PCI_DEVICE_LIST > $STD_NULL || grep $AMD_HDA_FCH $PCI_DEVICE_LIST > $STD_NULL || grep $AMD_HDA_STARSHIP $PCI_DEVICE_LIST > $STD_NULL || grep $ATI_HDA_SB600 $PCI_DEVICE_LIST > $STD_NULL ... ...
At approximately line 422, specify the block address for the Gemini Lake (SATA_8086_31e3=8086/31e3:
... ... SATA_8086_1c02=8086/1c02 SATA_8086_1e03=8086/1e03 SATA_8086_1f22=8086/1f22 SATA_8086_1f32=8086/1f32 SATA_8086_5ae3=8086/5ae3 SATA_8086_31e3=8086/31e3 SATA_1022_7801=1022/7801 SATA_1022_43c8=1022/43c8 EIDE_8086_7111=8086/7111 ... ...
At approximately line 453, add the corresponding grep statement for the block address:
... ... grep $SATA_8086_1c02 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_8086_1e03 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_8086_1f22 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_8086_1f32 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_8086_5ae3 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_8086_31e3 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_1022_7801 $PCI_DEVICE_LIST > $STD_NULL || grep $SATA_1022_43c8 $PCI_DEVICE_LIST > $STD_NULL then ... ...
- On AMD eKabini targets, occasional failures are seen with networking
when using UDP. (Ref# J2806077)
Workaround: None.
- When USB 2.0 devices are plugged into AMD eKabini targets,
USB_DESC_BOS
failures are sometimes seen when you run the usb command. (Ref# J2807461)Workaround: None.
- On AMD eKabini targets with an attached HDD partition, you can't format the partition using the mkdosfs
command immediately after mounting the drive. (Ref# J2872815)
Workaround: Wait ten or more seconds before running the mkdosfs command.
- On AMD eKabini targets, existing partitions on USB mass storage devices (e.g., USB memory stick) that are connected
to the target do not persist after you restart devb-umass (i.e., run slay and then restart the driver).
(Ref# J2872818)
Workaround: None.
- Software flow control doesn't function correctly when you use the devc-ser8250 driver. (Ref# J2872852)
Workaround: None.
- On Supermicro (Denverton) boards, you may experience intermittent networking issues (e.g., failure to get an IP address) when connected to a
10/100 Mb Ethernet networking switch. (Ref# J2701495, J2768929)
Workaround: Reconnect your Supermicro board to a 1000Mb (or faster) networking switch.
- On Supermicro (Denverton) boards, large file transfers over the serial port
devc-ser8250) doesn't work. (Ref# J2753220)
Workaround: Use serial-over-USB port (devc-serusb) for your file transfer. In general, when possible, we recommend you perform large file transfers over a network connection rather than over a serial connection.
- Using Kermit over the serial-over-USB ports can fail.
(Ref# J2770609)
Workaround: Use a different protocol other than Kermit to do your file transfers, such as a network connection.
- If you reinsert an existing or new
USB 3.0 device to the board, it won't be detected. (Ref# J2194572)
Workaround: Restart the io-usb service to detect the USB 3.0 device.
- At times on Intel Broadwell and Baytrail boards,
heavy disk usage operations on a DOS filesystem are reduced to
approximately 1/20th of the normal disk throughput, which causes disk
operations to take more time to complete. (Ref# J2262450)
Workaround: None.
- The provided Denverton QNX IFS image (x86_64-ccm-denverton.efi)
generated using the x86_64-ccm-denverton.build file boots the
Car Creek Module (version 2), but doesn't boot on the Car Creek Module (version 3).
Workaround: None.
- IFS images won't boot from a USB stick or hard drive that's greater
than 16 MB in size when you use BIOS boot mode. (Ref# J1684144)
Workarounds: You can do one of the following:
- Remove drivers and binaries from the buildfile to reduce the size of the QNX IFS file so that it's less than 16 MB and then put any required binaries on a mounted filesystem.
- Boot the image using TFTP via a network connection.
- Use UEFI boot mode to boot your system instead of using BIOS boot mode.
- On Intel Elkhart Lake CRB boards, The devc-serpci driver does not work properly when you slay and restart it. (Ref# J2909310)
Workaround:Power off and power on the target again.
Getting started with this BSP
Each BSP has a user's guide that describes what's in the BSP and how to install and work with it. In a browser, after you log in with your myQNX account, you can download the latest revision of the user's guide from the QNX SDP 7.1 Board Support Documentation page.
We recommend that you read the Building Embedded Systems guide, which contains common information about working with all BSPs from QNX Software Systems. This guide is available on the QNX Software Development Platform 7.1 documentation website.
![]() |
To ensure that you pick up the same components from your
development environment, we recommend that you rebuild the IFS
image on your host system.
Included in this BSP are prebuilt IFS images that are provided as convenience for you to quickly get QNX Neutrino running on your board, however these prebuilt images might not have the same components from your development environment. |
Technical support
To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.