Sorry for the noise, everyone.  I swapped the CF card to another board and 
everything works perfectly.  It must be a hardware problem somewhere.

Thanks again to Dmitry for suggesting the board driver.

-Jonathan

> On Aug 3, 2015, at 12:25 PM, Eisch, Jonathan D [PHYSA] <jei...@iastate.edu> 
> wrote:
> 
> Hello Dmitry,
> 
> I hadn’t tried that, but the VME7807 has the same configuration registers so 
> I should have.
> 
> I am able to load that driver successfully, and I’ve checked to make sure the 
> registers are the correct, but it doesn’t change the behavior of the board.  
> I still don’t get any access to the VME bus.  
> 
> I also double checked that the switches on the VME 7807 are set properly, and 
> they are all set to their default configuration, which is known to work with 
> the GE drivers.
> 
> -Jonathan
> 
>> On Aug 1, 2015, at 4:32 PM, Dmitry Kalinkin <dmitry.kalin...@gmail.com> 
>> wrote:
>> 
>> It seems that GE does some extra FPGA trickery for VME. Could it be that you 
>> need vmivme7805 driver?
>> 
>>> On 01 Aug 2015, at 01:28, Eisch, Jonathan D [PHYSA] <jei...@iastate.edu> 
>>> wrote:
>>> 
>>> Hello DriverDev,
>>> 
>>> I recently installed the latest Debian with Kernel 3.16 including all the 
>>> vme drivers (and vme_user in staging) on a GE VME7807RC.  Using Martyn 
>>> Welch’s example from 12 March 2013 on this list as a guide, I tried reading 
>>> out 32 bytes from one of my boards, but I just got a bunch of 0xFF bytes.  
>>> 
>>> I monitored the bus with a diagnostics board, and didn’t see any activity 
>>> at all (no addresses, no data) from power-up through booting and trying to 
>>> read from the bus.  Attempting the same reads with another VME7807 using 
>>> the GE provided driver lit up the same diagnostics board like a christmas 
>>> tree (well, the lower 16 bits).
>>> 
>>> I hope I’m missing something basic, as I don’t see any error messages 
>>> anywhere to guide my way.
>>> 
>>> Thanks for your help,
>>> -Jonathan
>>> 
>>> $ sudo modprobe vme_ca91cx42 
>>> $ sudo modprobe vme_user bus=0
>>> $ dmesg | grep vme
>>> [  632.942457] vme_ca91cx42 0000:01:0d.0: found PCI INT A -> IRQ 14
>>> [  632.942523] vme_ca91cx42 0000:01:0d.0: Board is the VME system controller
>>> [  632.942526] vme_ca91cx42 0000:01:0d.0: Slot ID is 0
>>> [  632.942529] vme_ca91cx42 0000:01:0d.0: CR/CSR Offset: 0
>>> [  632.942533] vme_ca91cx42 0000:01:0d.0: Slot number is unset, not 
>>> configuring CR/CSR space
>>> [  632.942537] vme_ca91cx42 0000:01:0d.0: CR/CSR configuration failed.
>>> [  640.990642] vme_user: module is from the staging directory, the quality 
>>> is unknown, you have been warned.
>>> [  640.991404] vme_user: VME User Space Access Driver
>>> $ sudo ./vmetest 
>>> Simple VME User Module Test
>>> WARNING: Only read 32 bytes
>>> 0000: ff ff ff ff ff ff ff ff 
>>> 0008: ff ff ff ff ff ff ff ff 
>>> 0010: ff ff ff ff ff ff ff ff 
>>> 0018: ff ff ff ff ff ff ff ff
>>> 
>>> $ cat main.c
>>> /*
>>> * main.c
>>> *
>>> *  Created on: Jul 29, 2015
>>> *
>>> *  Copied from: 
>>> http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2013-April/037460.html
>>> *
>>> */
>>> 
>>> #define _XOPEN_SOURCE 500
>>> #include <stdio.h>
>>> #include <stdlib.h>
>>> #include <sys/ioctl.h>
>>> #include <sys/types.h>
>>> #include <sys/stat.h>
>>> #include <fcntl.h>
>>> #include <unistd.h>
>>> #include "vme_user.h"
>>> int main(int argc, char *argv[])
>>> {
>>>      int fd;
>>>      int i;
>>>      int retval;
>>>      unsigned char data[512];
>>> 
>>>      struct vme_master master;
>>> 
>>>      printf("Simple VME User Module Test\n");
>>> 
>>>      fd = open("/dev/bus/vme/m0", O_RDONLY);
>>>      if (fd == -1) {
>>>              perror("ERROR: Opening window device file");
>>>              return 1;
>>>      }   
>>> //        master.enable = 1;
>>> //        master.vme_addr = 2*0x8000000;
>>> //        master.size = 0x100000;
>>> //        master.aspace = 0x4; // VME_A32
>>> //        master.cycle = 0x2000 | 0x8000; // Unprivileged data access
>>> //        master.dwidth = 0x4; // 32 bit word access
>>>      master.enable = 1;
>>>      master.vme_addr = 0xE000;
>>>      master.size = 0x1000;
>>>      master.aspace = 0x1; // VME_A16
>>>      master.cycle = 0x2000; // Unprivileged data access
>>>      master.dwidth = 0x2; // 16 bit word access
>>> 
>>>      retval = ioctl(fd, VME_SET_MASTER, &master);
>>>      if (retval != 0) {
>>>              printf("retval=%d\n", retval);
>>>              perror("ERROR: Failed to configure window");
>>>              return 1;
>>>      }
>>> 
>>>      /*
>>>       * Reading first 32 bytes
>>>       */
>>>      for (i=0; i<32; i++) {
>>>              data[i] = 0;
>>>      }
>>> 
>>>      retval = pread(fd, data, 32, 0);
>>>      if (retval < 512) {
>>>              printf("WARNING: Only read %d bytes", retval);
>>>      }
>>> 
>>>      for(i=0; i<retval; i++) {
>>>              if (i % 8 == 0) {
>>>                      printf("\n""%4.4x: ", i);
>>>              }
>>>              printf("%2.2x ", data[i]);
>>>      }
>>>      printf("\n");
>>> 
>>>      close(fd);
>>> 
>>>      return 0;
>>> }
>>> 
>>> 
>>> ----
>>> Jonathan Eisch
>>> Research Associate
>>> Physics & Astronomy
>>> Iowa State University
>>> _______________________________________________
>>> devel mailing list
>>> de...@linuxdriverproject.org
>>> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
>> 
> 
> _______________________________________________
> devel mailing list
> de...@linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to