On Tue, Jan 14, 2014 at 1:39 AM, Martyn Welch <martyn.welch@xxxxxx> wrote: > On 14/01/14 04:07, Michael Kenney wrote: >> Unfortunately, the results are the same. I'm running this from home so >> I'll have to confirm with the logic-analyzer tomorrow but the bridge >> driver error messages suggest the same D8 writes (which for some >> reason our A/D board does not like). > > The hardware probably doesn't support 8-bit reads/writes, from memory, it > doesn't have to according to the spec. Looks like I was wrong about where the Bus Errors are occurring. They are actually being generated on the reads from the board. Both reads and writes are being done as D8 but only the reads result in an error from the slave... > >> Here's a dmesg excerpt: >> >> [ 5631.810902] vme_tsi148 0000:02:02.0: VME Bus Error at address: >> 0x508000, attributes: 8008b900 >> [ 5631.810972] vme_tsi148 0000:02:02.0: VME Bus Exception Overflow Occurred >> [ 5631.810977] vme_tsi148 0000:02:02.0: VME Bus Error at address: >> 0x508001, attributes: c0087900 >> [ 5631.810991] vme_tsi148 0000:02:02.0: VME Bus Error at address: >> 0x508003, attributes: 80087900 >> [ 5631.811061] vme_tsi148 0000:02:02.0: VME Bus Exception Overflow Occurred >> >> The register that I am trying to write occupies 4 bytes starting at >> 0x508000. I have verified that the value I am trying to write to the >> register is 4-byte aligned. I'm essentially doing the following: >> >> uint32_t value; >> pwrite(window_fd, &value, sizeof(value), 0x508000); >> > > How have you setup the window? The offset is relative to the window you have > configured, so if that doesn't start at 0x0, then you aren't writing where you > think you are. In this case, I have setup the window starting at 0 and spanning the entire A24 address space. We have more boards than windows so we share, each board's offset is its VME bus address. > >> Window is configured for A24 and D32. >> >> Does the "attributes" value from the tsi148 provide any further clues? >> > > Not really - it gives the status of some of the VME lines when the error > occurred (Address lines, data strobes), it says that there was an error, in > one case it shows an exception overflow and that it happened on the VME bus. That's too bad. What's interesting is the same D8 reads/writes are occurring with the other boards in the system but not causing any problems. This whole issue might be a red-herring, I just wish I knew why the reads/write were being broken up like this... It's time to find someone familiar with the A/D board hardware. The board is 10 years old (long since discontinued) and the original manufacturer (ICS) was actually purchased by GE (small world :-) some years back. --Mike _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel