Re: vme_tsi148 question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux