On 08/10/2018 08:28 AM, Steve Kinder - UKRI STFC wrote:
> This sounds similar to a possible 'endian' issue discussed off tech-talk with someone at Diamond. I shall attempt to paraphrase and/or quote that discussion. They found that with an earlier version of mrfioc2, 2-1-0, "the default endian tests or the firmware cause the driver to use native order instead of big endian". The solution applied there was to modify mrfCommonIO.h, redefining "NAT_ macros to be_ functions". I have applied suggested patches but the problem seen when calling mrmEVRSetupPCI hasn't been addressed yet. Just passing this limited description on in the hope that it may help identify the cause of the problem.
The story about endianness in mrfioc2 is a bit complicated by the need to
support both VME and PCI, and my decision to do this with the same code.
This meant depending on hardware byte order swapping.
The Tundra VME bridges do this automatically. The first PCI cards
from MRF which I worked with used a discrete PCI to local bus chip
from PLX. These chips could perform byte order swapping, which I
started to depend on.
After card setup, all MMIO access is done in the native byte order.
Later MRF cards dropped the PLX chips. Equivalent controllable
byte order swapping was added in the form of the Control[LEMDE]
bit.
To be clear. I have used a PCIe-EVR-300DC, and a number of MRF
cPCI and now MTCA cards, on Linux/x86.
> Steve
>
>
> ________________________________
> From: Michael Davidsaver <[email protected]>
> Sent: 10 August 2018 13:14:11
> To: Kinder, Steve (STFC,DL,TECH)
> Cc: EPICS
> Subject: Re: mrfioc2 Linux driver
>
> Steve, It looks like the value read from the Version register is backwards. 0x17 should be the MSB. What does "uname -r" show?
>
> On Fri, Aug 10, 2018, 4:37 AM Steve Kinder - UKRI STFC <[email protected]<mailto:[email protected]>> wrote:
> Sorry to have more questions. But I am going in the right direction.
>
>
> On calling the setup from the IOC I now get:
>
>
> epics> mrmEvrSetupPCI("EVR-01", "81:0.0")
> Device EVR-01 129:0.0 slot=6
> Using IRQ 88
> FWVersion 0x07020617
> Error: Firmware does not correspond to an EVR
>
> Is this a symptom of using 2-2-0? Or is there some simpler explanation/solution? Sounds like the firmware isn't compatible with the support module and/or driver?
>
>
> Steve
>
>
> ________________________________
> From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of Steve Kinder - UKRI STFC <[email protected]<mailto:[email protected]>>
> Sent: 07 August 2018 16:40:53
> To: [email protected]<mailto:[email protected]>
> Subject: mrfioc2 Linux driver
>
> Hello all
>
>
> I am trying to get an MRF PCIe-EVR-300DC configured and working on Linux using mrfioc2. I think I have an IOC built. I think I have some understanding of the parameters to mrmEvrSetupPCI(EVR-01, 1, 0, 0, 0). I could well be wrong on those but that isn't the source of my immediate problem. Executing the previous call gives:
>
>
> Can't open /sys/module/mrf/parameters/interfaceversion in order to read kernel module interface version. Is kernel module loaded?
>
>
> I found some documentation that indicates an MRF kernel driver is also required:
>
>
> $ make -C /location/of/mrmShared/linux \
>
> KERNELDIR=/lib/modules/`uname -r`/build modules_install
>
> $ sudo depmod -a
>
> $ sudo modprobe mrf
>
>
> I seem to need to execute the first line as root or I get permissions problems. However then I get:
>
>
> # make -C /home/controls/work/R3.14.12.5/support/mrfioc2/3-0-0/mrmShared/linux KERNELDIR=/lib/modules/`uname -r`/build modules_install
> make: Entering directory `/home/controls/work/R3.14.12.5/support/mrfioc2/3-0-0/mrmShared/linux'
> make -C /lib/modules/3.10.0-514.6.1.el7.x86_64/build M=/home/controls/work/R3.14.12.5/support/mrfioc2/3-0-0/mrmShared/linux modules_install
> make[1]: Entering directory `/usr/src/kernels/3.10.0-514.6.1.el7.x86_64'
> Makefile:641: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
> DEPMOD 3.10.0-514.6.1.el7.x86_64
> make[1]: Leaving directory `/usr/src/kernels/3.10.0-514.6.1.el7.x86_64'
> make: Leaving directory `/home/controls/work/R3.14.12.5/support/mrfioc2/3-0-0/mrmShared/linux'
>
>
> The documentation dates back to 2015, Rev 7, so may be out of date?
>
>
> Any advice/help would be much appreciated. Further documentation?
>
>
> My kernel is 3.10.0-514.6.1.el7.x86_64, mrfioc2 3-0-0
>
>
> Thanks
>
>
> Steve
>
>
> d
> o
> m
> o
> d
> p
> r
> o
> b
> e
> m
> r
> f
>
- References:
- mrfioc2 Linux driver Steve Kinder - UKRI STFC
- Re: mrfioc2 Linux driver Steve Kinder - UKRI STFC
- Re: mrfioc2 Linux driver Michael Davidsaver
- Re: mrfioc2 Linux driver Steve Kinder - UKRI STFC
- Navigate by Date:
- Prev:
Re: mrfioc2 Linux driver Michael Davidsaver
- Next:
Re: a question for msi Andrew Johnson
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: mrfioc2 Linux driver Steve Kinder - UKRI STFC
- Next:
Anton's retirement; caQtDM Mezger Anton Christian (PSI)
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
|