Re: vme_ca91cx42 doesn't touch VMEbus on read with vme_user

2015-08-03 Thread Eisch, Jonathan D [PHYSA]
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 :01:0d.0: found PCI INT A - IRQ 14
 [  632.942523] vme_ca91cx42 :01:0d.0: Board is the VME system controller
 [  632.942526] vme_ca91cx42 :01:0d.0: Slot ID is 0
 [  632.942529] vme_ca91cx42 :01:0d.0: CR/CSR Offset: 0
 [  632.942533] vme_ca91cx42 :01:0d.0: Slot number is unset, not 
 configuring CR/CSR space
 [  632.942537] vme_ca91cx42 :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
 : 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*0x800;
 //master.size = 0x10;
 //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; i32; i++) {
   data[i] = 0;
   }
 
   retval = pread(fd, data, 32, 0);
   if (retval  512) {
   printf(WARNING: Only read %d bytes, retval);
   }
 
   for(i=0; iretval; 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


Re: vme_ca91cx42 doesn't touch VMEbus on read with vme_user

2015-08-03 Thread Eisch, Jonathan D [PHYSA]
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 :01:0d.0: found PCI INT A - IRQ 14
 [  632.942523] vme_ca91cx42 :01:0d.0: Board is the VME system controller
 [  632.942526] vme_ca91cx42 :01:0d.0: Slot ID is 0
 [  632.942529] vme_ca91cx42 :01:0d.0: CR/CSR Offset: 0
 [  632.942533] vme_ca91cx42 :01:0d.0: Slot number is unset, not 
 configuring CR/CSR space
 [  632.942537] vme_ca91cx42 :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
 : 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*0x800;
 //master.size = 0x10;
 //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; i32; i++) {
  data[i] = 0;
  }
 
  retval = pread(fd, data, 32, 0);
  if (retval  512) {
  printf(WARNING: Only read %d bytes, retval);
  }
 
  for(i=0; iretval; 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

vme_ca91cx42 doesn't touch VMEbus on read with vme_user

2015-07-31 Thread Eisch, Jonathan D [PHYSA]
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 :01:0d.0: found PCI INT A - IRQ 14
[  632.942523] vme_ca91cx42 :01:0d.0: Board is the VME system controller
[  632.942526] vme_ca91cx42 :01:0d.0: Slot ID is 0
[  632.942529] vme_ca91cx42 :01:0d.0: CR/CSR Offset: 0
[  632.942533] vme_ca91cx42 :01:0d.0: Slot number is unset, not configuring 
CR/CSR space
[  632.942537] vme_ca91cx42 :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
: 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*0x800;
//master.size = 0x10;
//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; i32; i++) {
data[i] = 0;
}

retval = pread(fd, data, 32, 0);
if (retval  512) {
printf(WARNING: Only read %d bytes, retval);
}

for(i=0; iretval; 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