Quantcast
Viewing all articles
Browse latest Browse all 8132

Is there a way to customize the mapping of pass-thru PCI devices in the VM?

Hi,

 

I am trying out vSphere (ESXi) 6.5 as a possible solution for controlling PCI devices from a VM. I am fairly new to this, so please bear with me.

For various reasons (technical, marketing,customer), we need to support these hardware devices (we call them instruments) using fairly old versions of Linux (RH 4.8 to be more precise). Unfortunately, it is almost impossible to find workstations that will run this old of an OS due to hardware that is not supported by the older versions of RH.

We are also unable to modify our software to be able to run on newer versions of Linux (such as RH6 or RH7), also for the same various reasons.

What I am trying to do is run ESXi on a modern workstation, and run the older RH4 in a VM, passing through the PCI devices (instruments) that make up our hardware. All PCI devices will be owned by only one VM. This part I have working. The part that is giving me difficulty is that our instruments are behind a Stargen bridge (which was kind of a pre-cursor product before PCIe came about). On a system running Linux, lspci shows the devices similar to below..

 

03:01.0 PCI bridge: Stargen Inc. SG1010 Starfabric Switch and PCI Bridge (rev 01) (prog-if 00 [Normal decode])

04:01.0 PCI bridge: Stargen Inc. SG2010 PCI over Starfabric Bridge (rev 02) (prog-if 00 [Normal decode])

04:02.0 PCI bridge: Stargen Inc. SG2010 PCI over Starfabric Bridge (rev 02) (prog-if 00 [Normal decode])

05:0c.0 Class 1200: Credence Systems Corporation Device 5450 (rev ba)

05:0d.0 Class 1200: Credence Systems Corporation Device 5450 (rev ba)

05:0e.0 Class 1200: Credence Systems Corporation Device 5450 (rev ba)

05:0f.0 Class 1200: Credence Systems Corporation Device 5450 (rev ba)

 

The devices I am interested in are the "Credence Systems Corporation Device" on bus 5. (The company I am with used to be Credence). As you can see, the Stargen bridges create a bus 5, with our instruments at devices "0c" through "0f". This is basically a PCI backplane with 5 slots (instrument "0b" is not installed at the moment). It is crucial that this be presented to our software in this fashion, since this is how we identify which slot each instrument is in.

 

We have a kernel driver that assists in the inventory and mapping of memory spaces to our user mode software and reports the PCI bus specifics to user mode software.

 

04:00.0 Processing accelerators: Credence Systems Corporation Device 5450 (rev ba)

0b:00.0 Bridge: Stargen Inc. SG2010 PCI to Starfabric Gateway (rev 02)

0c:00.0 Processing accelerators: Credence Systems Corporation Device 5450 (rev ba)

14:00.0 Processing accelerators: Credence Systems Corporation Device 5450 (rev ba)

1b:00.0 Processing accelerators: Credence Systems Corporation Device 5450 (rev ba)

 

Is there any way to customize the assignment of the pass through devices so I can match the way they show above when run under the native OS?

Failing that, is there any way this can be predictable via some kind of algorithm so I could translate these within our kernel driver so at least the user mode software would see it the way it does under the native OS?

 

Thanks,


Viewing all articles
Browse latest Browse all 8132

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>