Re: vme_ca91cx42 doesn't touch VMEbus on read with vme_user
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
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
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