Error 12: Not Enough Resources with Thunderbolt Remote Control

Updated Apr 7, 2023

Reported In

Hardware

  • PXIe-8301

Driver

  • PXI Platform Services

Operating System

  • Windows

Issue Details

I have a 3rd party PXIe card that I have put in a chassis together with the NI PXIe-8301 remote control module. I am communicating with the module through a Thunderbolt cable connected to a PC running either Windows 7 or Windows 10. However, I am getting strange issues.

On Windows 7, I get error code 12 in Windows Device Manager:

This device cannot find enough free resources that it can use.
(Code 12)

If you want to use this device, you will need to disable one of the
other devices on this system.




On Windows 10, the card is recognized correctly, but I do experience unstable behavior that I cannot explain.

Everything works fine when using an MXI link, as well as with an embedded controller, running either Windows 7 or 10.

I have the latest BIOS version, Thunderbolt drivers and Thunderbolt firmware. I have also added explicit support for Thunderbolt in the BIOS. Why does it not work?

Solution

There are two main configurations Windows use when it allocates resources and communicates with devices. The two types are
  • I/O space
  • Memory mapping
The NI PXIe-8301 Thunderbolt remote controller relies upon PCI Express as implemented by Thunderbolt, which does not support transmission of I/O Space transactions.  As a result, functionality of cards that rely on I/O space will not function when connected to the host via the PXIe-8301.

Additional Information

I/O space is an old way of communicating with devices which predates PCI. While PCI supports I/O space, PCI Express does not completely support it, and most expansion cards made today memory map their devices.

To know if your PXIe card has I/O space configured, you would need to use either Windows 10 with your Thunderbolt remote controller, or interact with your device with an embedded controller running Windows 7 or 10. Begin by opening up the Device Manager, then right-click on your device and choose Properties»Resources. If your device has a text here saying I/O Range, it would mean your card is using I/O space configuration. The picture below outlines the two configurations, the left with memory mapping and the right with I/O space: 



If you have a card that is configured with I/O space, National Instruments would not recommend using it with the NI PXIe-8301 Thunderbolt remote controller.

Workarounds to the issue would include:
  • Find a computer that is able to communicate with an MXI link and use that for remote control
  • Use an embedded controller with Windows 7 or 10 and work locally
  • Use a Windows embedded controller and remote desktop to the controller from another PC
  • Replace the card with another card that supports memory mapping and connect to it with your NI PXIe-8301 Thunderbolt remote controller