VXI and VME

cancel
Showing results for 
Search instead for 
Did you mean: 

accessing VME devices on Solaris 2.8/NIVXI 2.0 using PCI-MXI2-VXI interface

I've been using this system for a month or so, talking to my VXI devices. I just discovered that it will not access VME devices. Attaching the VXI hardware and cabling to a Windows system (using NIVXI 2.1) works just fine. I even tried swapping PCI cards to no avail.

I discovered this problem using some of my Labview programming, but I duplicated the problem using only NI-supplied VXI GUI software.

Procedure on each system was: reboot, run resman, run vic, go to the Bus Access tab, select the "In" operation with A32 space, and press GO (leaving address at 0x0, which is one of the VME devices). The generates a bus error (BERR) on Solaris and works fine on Win2K.

Looking at the resman.out files for each case (which I've attached), I note that:
- under "Configuring Mainframe", the Win2K system lists the VME devices, Solaris 2.8 does not
- under "CONFIGURING ADDRESS MAP", both Win2K and Solaris seem to allocate all requested VME memory
- under "ALLOCATING VXI/VME IRQ LINES", again only Win2K seems to see the static VME devices

Both systems use identical nonvxi.tbl files (as well as the other *.tbl files).

Any thoughts?
0 Kudos
Message 1 of 6
(6,959 Views)
I'm using Solaris and NI-VXI to talk to a VME-MXI-2 without any trouble. One thing you may want to look at is address 0x0C on your bus extender (probably at address 0xC04C) and make sure that the value there is 0x7800. It's 0x1800 on power up, and the two MSBs need to be set to enable the address mapping window and the proper direction. If I forget to set this value, I see the same behavior you do. There may be a way to configure this through NI's software, but I don't use it.

Hope that helps!
0 Kudos
Message 2 of 6
(6,957 Views)


@JohnK 63 wrote:
I'm using Solaris and NI-VXI to talk to a VME-MXI-2 without any trouble. One thing you may want to look at is address 0x0C on your bus extender (probably at address 0xC04C) and make sure that the value there is 0x7800. It's 0x1800 on power up, and the two MSBs need to be set to enable the address mapping window and the proper direction. If I forget to set this value, I see the same behavior you do. There may be a way to configure this through NI's software, but I don't use it.

Hope that helps!




Looked at register 0x0C on my VXI-MXI-2. At power up it contains 0x1800 as you suggested. Interestingly, running resman sets it to 0x5800.

However, adjusting that register (either before or after running resman) doesn't seem to help me at all (again, all testing so far is using vic).

So I think I'm still stuck...
0 Kudos
Message 3 of 6
(6,952 Views)
Interesting. The only other thing I can think of is that I think the register I mentioned is for the A16 window. If you're trying to do A24 or A32 access, there are other registers that would have to be set similarly. Look at the register descriptions in the programming guide for your extender board for more info.

The steps I use to read address 0 on my VME bus, using victext, are:
vxiout 1,0xC04C,2,0x7800
vxiin 1,0x0000,2

Good luck...
0 Kudos
Message 4 of 6
(6,947 Views)
No luck - I was trying to do A32 access, but setting the enable bits in the proper register (either before or after running resman) doesn't seem to help.

It still seems like the key is that resman is not identifying these things as devices...
0 Kudos
Message 5 of 6
(6,947 Views)
Have you tried reproducing the problem in Linux (not Solaris)? When you say that they use the same nonvxi.tbl file, do you mean that the Windows and Solaris systems use the same file? The two OSes use different end-of-line delimiters and this may be the problem. I suggest trying this from a Linux system and also using VXIEdit or VXITedit to attempt recreating these VME devices and the files that describe them. It sounds like Resman isn't recognizing what VME devices you have from the nonvxi.tbl file.

Good Luck!

-Adam
0 Kudos
Message 6 of 6
(6,929 Views)