Mitigating MXI-Express PC Incompatibility

Overview

MXI-Express is successfully used on a variety of name-brand computers, laptops, and motherboards containing a PCI or PCI Express slot. However, complex MXI-Express configurations may pose a challenge for the host computer BIOS to correctly allocate all the necessary resources. This may cause the system to freeze during the boot process or not enumerate all devices in the system correctly.

 

Given the number of potential computer and MXI-Express configurations, NI cannot completely guarantee compatibility between MXI-Express hardware and your computer. A computer's compatibility with a system may change during each BIOS version/release, which is one of the reasons why MXI-Express compatibility cannot be guaranteed for an individual computer model.

 

This document provides the preliminary compatibility information you need before purchasing MXI-Express hardware. After reading this document, you should understand the challenges associated with MXI-Express enumeration, steps to check for incompatibility risks, and how to mitigate incompatibility. 

Contents

MXI-Express Enumeration Challenges

MXI-Express compatibility issues can be roughly split into two categories:

  1. Not having enough resources/buses available.
  2. Having adequate resources/buses, but the BIOS is incapable of distributing them.


Therefore, the success of enumeration depends on the number of bus resources required by your PCIe/PXIe system, and the motherboard and BIOS version. This document will specifically address the first category, as the second category cannot be determined until the MXI-Express hardware is connected to the system. 

There are several ways host computers allocate available bus resources that can impact how many are available for your system. Refer to the sections below for the most common types of PCIe structures and how resources are reserved in those systems. You can identify the PCIe structure by contacting the motherboard manufacturer or running the NI Resource Root Bus Utility described later in this document.

Single Root, Full Bus Range PCIe Structure

With a single root, full bus range PCIe structure, the host system can enumerate up to 256 PCIe buses, as shown in Figure 1. This includes all onboard devices and any expansion devices connected via PCI Express slots.

Figure 1. The host computer’s PCIe structure allows all buses to be enumerated.

The maximum number of buses available is 256, as stated in the PCI specification. In an ideal, compliant PCIe structure, all 256 of these buses would be on a single root complex, allowing for all buses to be enumerated regardless of bus topology. This is the best scenario for MXI-Express because it gives you the ability to connect several chassis in a daisy-chain configuration to the same PCI Express slot and significantly reduces the risk of incompatibility.

Artificially Limited PCIe Bus Range

To optimize boot-time performance for certain use cases, some motherboard vendors have limited the number of supported buses. It is not uncommon to find BIOSs that only allow for 64 or 128 PCI bus resources maximum across the entire PCI hierarchy.

In several cases, PXI may still enumerate correctly in a system with a limited PCIe bus range if the amount of required buses does not exceed the amount available. This limitation reduces the amount of PCIe/PXIe hardware that can be connected to the host computer. These systems are more likely to enumerate correctly when using a single chassis, and less likely to enumerate correctly as the complexity of the topology approaches the artificial limit of the host computer.

User-Selectable PCIe Bus Range

With a user selectable PCIe bus range, you can select the maximum number of buses available. Motherboard vendors provide this option to optimize performance in systems with less complex PCIe/PXIe hardwareome applications while still allowing for the flexibility of systems applications requiring a large number of buses. In this configuration, there are options such as 64 (usually default), 128, and 256 buses. This varies from computer to computer.

If available, make sure the BIOS settings are set to 256 bus numbers by consulting the motherboard user manual. If this setting is set to anything lower than 256, the system may or may not enumerate depending on how many bus resources are required by the attached system.

Multiple Root Buses

Some systems might allow for enough bus numbers for a PXI system, but these resources are split between two or more root buses or PCI Express slots. When this happens, only some of the bus resources are accessible via one PCI Express slot.

Figure 2 shows an example of a system that has 256 resources available, but the PXI system can take advantage of only 128 of these resources. If the system requires less than 128, then it will likely enumerate correctly. However, if the required resources exceed 128 (for example, several 18-slot chassis daisy-chained together), then it may fail to boot, only enumerate partially, or not enumerate at all.

Figure 2. Some systems split the available buses between two separate PCI Express slots.

Checking MXI-Express PC Compatibility Flowchart

The following flowchart outlines the steps for checking general compatibility and whether the system has enough available resources/buses. Refer to the section corresponding to the flowchart number for more information.

1. Check Driver and Operating System Compatibility

NI MXI-Express hardware require the NI PXI Platform Services driver to interface with NI software. Installing a driver version that does not support the host computer operating system can result in issues with configuring and using the hardware.

Check the NI PXI Platform Services Operating System Support compatibility tables to select a compatible driver version. For more details on driver system requirements and compatibility, refer to the PXI Platform Services readmes.  

2. Check MXI-Express Hardware and Driver Compatibility

Check the NI PXI Platform Services Hardware Support compatibility tables to make sure your PXIe system hardware is supported by the driver version you plan to use.

3. Check PCIe Slot Compatibility

Some host computers have PCIe slots where the mechanical size of the PCIe slot does not match up with the electrical configuration for the PCIe slot. For example, a PCIe slot may physically fit a x16 PCIe card, but the PCIe slot is configured to only have access to x4 lanes – meaning a x16 card will not have the desired throughput and may not function correctly as expected in the slot.

Occasionally, resources may be shared between multiple ports, such as a PCIe slot and a hard drive port.

Check the motherboard manufacturer’s manual for the PCIe slot specifications to make sure they are compatible with the communication level of the NI PCIe MXI-Express card. The communication levels for NI MXI-Express hardware can be found on the NI PXI Remote Control Modules shop page.

4. Estimate Required Bus Resources

The components of the PXIe system (chassis, MXI-Express hardware, and certain I/O hardware) require a specific number of buses to correctly enumerate. Use the table below to estimate the number of total bus resources required. 

Hardware Bus Requirement
Large Chassis (18 slots) ~25
Compact Chassis (4-9 slots) ~10
MXI-Express Host Card (PCI Express) ~3
MXI-Express Controller Card (PXI Express) ~7
MXI-Express Peripheral Card (PXI Express) ~2

 

Note: PXIe chassis, controllers, MXIe Bus Expansion peripheral modules, and some modules require computer resources to correctly enumerate. This list is not all-inclusive and should be used for only a general estimate of required buses. For more detailed information, contact NI.

5. Check Available Bus Resources on System

After estimating your system’s bus requirements, run the NI Resource Root Bus Detection Utility to determine what the system has available. The NI Resource Root Bus Utility provides the number of root buses in the system and a range of bus resources available across the various root buses.

Ensure the required number of buses is well below the bus resources range as the host computer and other devices in the system also require some of these resources. Also ensure that the required number of buses are available on a single root bus. PXIe hardware requires a single, contiguous block of buses. It cannot span across multiple root buses.

Note: On some systems, the presence of the MXI-Express system can influence the BIOS’s decision of how buses are distributed, so the result in the Root Bus Detection Utility may change when you test with your hardware. The BIOS would generally add more resources in response to seeing the MXI-Express hardware.

Interpreting the Root Bus Detection Utility

The NI Resource Root Bus Utility will show the number of total bus available on the motherboard and whether the motherboard has a single root bus or multiple root buses.

The bus number range is returned in Hexadecimal and is zero indexed. A bus number range of [0,f<*>] would be an ideal result. The sections below provide examples of non-ideal results.

In Figure 3, the Root Bus Detection Utility detects a single root bus. This means that all buses are available to every PCIe slot. The range is given as [0, 7e]. This means that there are 126 buses available in a single root. The range is limited because it does not have the full 256 buses available.

 

Figure 3. Example of a system with a single root bus with limited range in Root Bus Detection Utility.

In Figure 4, the Root Bus Detection Utility detects multiple root buses (the PCIe structure is split). This means that only certain PCIe slots have access to certain roots. Additionally, depending on how the PCIe slots are routing to the roots, different PCIe slots are only allocated a certain number of buses. This creates a challenge in finding enough available buses to enumerate PXIe chassis and MXI-Express hardware.

Figure 4. Example of a system with multiple bus roots in Root Bus Detection Utility.

Please note that the utility will not tell you the following:

  • Which PCIe slot is mapped to which Root Bus. You can use Device Manager to find this information: 

      1. Plug the PCIe card in a computer slot. 

2. Open Device Manager.
3. Right-click on the PCIe card and select Properties.
4. In the General tab, note the bus number listed as part of the Location field. Whatever bus number range the bus number is in tells you which root bus that slot goes to.
5. Repeat for other PCIe slots. 

  • How many buses are already reserved by other devices. 

6. Computer is a Strong Candidate for Compatibility with System

If the required number of buses is well below the bus resources range, there are probably adequate bus numbers to support the system. However, there are still potential compatibility issues that are difficult to determine until you connect the hardware. If you encounter compatibility issues when setting up your hardware, your computer may not have a BIOS capable of distributing the adequate number of resources/buses. To work around BIOS limitations, install the MXI-Express BIOS Compatibility Software.

7. Check If BIOS Upgrade Is Available

If the host computer does not have enough PCIe resources to fully enumerate the attached system, the next step is to update the computer BIOS. Motherboard manufacturers will fix bugs in BIOS versions that cause PCIe enumeration to fail and crash. By ensuring that you are running the latest BIOS version, you reduce the probability that the behavior is caused by a bug in the BIOS.

To check if your computer is running the latest BIOS version, refer to Step 5 in the MXI-Express Compatibility and Connectivity Troubleshooting Guide.

After upgrading the BIOS version, re-run the NI Resource Root Bus Detection Utility to see if the BIOS upgrade has resulted in additional buses.

If you still have limitations after the BIOS upgrade, consider using a different computer or reducing the amount of PCIe/PXIe hardware to decrease the bus requirement.

8. Explore Alternative Options

If you are unable to use a computer that does not have BIOS incompatibilities, there are alternative options to control a PXI system that guarantee compatibility.

NI Embedded Controllers

NI PXI embedded controllers use an optimized BIOS to enumerate the most complex PXI configurations allowed by the PCI and PCI Express specifications. In contrast to MXI-Express, these controllers are compact enough to fit inside the chassis.

NI External Controllers for PXI

NI offers external controllers to control PXI or PXI Express systems over a MXI interface from a rack-mount form factor. Consider using an NI external controller for PXI to ensure system compatibility.

Additional Resources

If you already purchased MXI-Express hardware and are experiencing issues, refer to the MXI-Express Compatibility and Connectivity Troubleshooting Guide.