EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  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  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: VME configuration : MVME6100 can not map slot x to CR/CSR
From: Dirk Zimoch <[email protected]>
To: <[email protected]>
Date: Mon, 28 May 2018 17:39:09 +0200
We at PSI use Linux on VME boards, but not on MVME6100.

To implement this, we needed a Linux kernel driver which supports user space memory maps and interrupts. The standard Linux VME driver does not! (Not even memory maps, only seek()/read()/write().)

Thus we needed to extend the VME kernel driver and then implement a driver for our particular VME bridge. This was so complex that we needed external help. It took more than a year. Of course the changes never made it into the main Linux kernel repository.

If you are lucky, your board provider can give you a Kernel driver with a proper user space interface. If you are unlucky the kernel driver you get is crap.

Once you have the kernel driver and know
1. how to get a VME memory map in user space
2. how to get notified of VME interrupts in user space
3. optionally how to do DMA between VME and user space
then you can start writing devLibVME for your kernel driver. (That is the easier part.)

Also be aware that passing interrupts to user space has a huge latency. It is better with an RT patched kernel but still much worse than with a real RTOS.

Dirk

On 27.05.2018 03:33, Michael Davidsaver wrote:
- linux : 2.6.20

What you see is not a mis-configuration.  Unfortunately there
is no backend for VME on Linux included in devlib2.  Only for
RTEMS or vxWorks.

I know there is at least one implementation out there using a
proprietary Linux driver for a VME bridge (not sure which one).
I've never had access to this.

So your options as I see them are to figure out how to use RTEMS,
or to find/write a Linux driver which devlib2 can be made to use*.

RTEMS is probably the easier route, although as you've found
there is a learning curve.

Michael


* The standard Linux VME userspace module doesn't support interrupts,
   and would need modification/replacement as mrfioc2 relies heavily
   on interrupts.

On 05/25/2018 08:00 AM, 유진성 wrote:
Hello


This question is about configuration of VME-EVG-230 or not.


Before I use mrfioc2 and devLib2, I didn't change configuration of any pins(GAP*, GA*) on VME-EVG-230.

I'm not sure that I have to change pins(GAP* and GA*) to load VME-EVG-230 on MVME6100(CPU) or not.


anyways, I made software environment successfully. there were no error during compiling.

but, I run EPICS IOC. And then I got problem.


*figure 1. trouble*

""



At that time, mrmEvgSetupVME() can't find EVG on my VME Crate.

I typed the collect CS/CSR starting Address that is based on MVME6100 reference manual.


*figure 2. CR/CSR slave address for MVME6100*



I can't find what is problem(software configuration or hardware setting).


I'm newbie for VME platform. please, check my log and answer me.


I'll wait for your reply


best regards,




P.S


Software environment, Hardware environment and log are below:


======software======

- linux : 2.6.20

- BSP : zImage.initrd.6100.2620.rm01 for MVME6100 from EMERSON

- devLib2 : 2.9

- epics : 3.14.12-rc1

- mfrioc2 : 2.2.0


=====Hardware=====

- VME crate : VME 64x

- CPU : MVME6100

- EVR : VME-EVR-230

- EVG : VME-EVG-230


=====log=======

-bash-3.2# ../../bin/linux-ppc74xx/mrf st.cmd

#!../../bin/linux-x86/nsls2evgMrm

< envPaths

epicsEnvSet("ARCH","linux-ppc74xx")

epicsEnvSet("IOC","iocevgmrm")

epicsEnvSet("TOP","/usr/local/epics/base/modules/instrument/mrfioc2-2.2.0/")

epicsEnvSet("EPICS_BASE","/usr/local/epics/base")

cd /usr/local/epics/base/modules/instrument/mrfioc2-2.2.0

## Register all support components

#dbLoadDatabase("/usr/local/epics/base/modules/instrument/mrfioc2-2.2.0/dbd/mrf.dbd")

dbLoadDatabase("dbd/mrf.dbd")

mrf_registerRecordDeviceDriver(pdbbase)

Warning: IOC is booting with TOP = "/usr/local/epics/base/modules/instrument/mrfioc2-2.2.0/"

           but was built with TOP = "/usr/local/epics/R3.14.12-rc1/modules/instrument/mrfioc2-2.2.0"

epicsEnvSet("ENGINEER","Jayesh Shah")

epicsEnvSet("LOCATION","Blg 902 Rm 28")

bspExtVerbosity=0

st.cmd -- Line 14 -- Command bspExtVerbosity=0 not found.

#mrmEvgSetupVME (

#    const char*   id,                // EVG card ID

#    epicsInt32    slot,              // VME slot

#    epicsUInt32   vmeAddress,        // Desired VME address in A24 space

#    epicsInt32    irqLevel           // IRQ Level

#    epicsInt32    irqVector,         // Desired interrupt vector number

#)

mrmEvgSetupVME(EVG1, 4, 0x200000, 4, 0xC0)

pdevLibVME is NULL

Failed to map slot 4 to CR/CSR address 0x00200000

No EVG in slot 4

## Load record instances

dbLoadRecords("db/vme-evg230.db", "SYS=TST, D=evg:1, EVG=EVG1")

# BNL specific timing sequence constructor

#dbLoadRecords("db/nsls2-inj-seqs.db","LN=LN-TS, BR=BR-TS, INJ=TST, EVG=evg:1, SEQ=SoftSeq:0")

dbLoadRecords("db/iocAdminRTEMS.db", "IOC=mrftest")

filename="../dbLexRoutines.c" line number=243

No such file or directory dbRead opening file db/iocAdminRTEMS.db

# Auto save/restore

# save_restoreDebug(2)

# dbLoadRecords("db/save_restoreStatus.db", "P=mrftest:")

# save_restoreSet_status_prefix("mrftest:")

# set_savefile_path("{mnt}/as","/save")

# set_requestfile_path("{mnt}/as","/req")

# set_pass0_restoreFile("mrf_settings.sav")

# set_pass0_restoreFile("mrf_values.sav")

# set_pass1_restoreFile("mrf_values.sav")

# set_pass1_restoreFile("mrf_waveforms.sav")

iocInit()

Starting iocInit

############################################################################

## EPICS R3.14.12-rc1 $Date: Mon 2010-11-15 13:59:06 -0600$

## EPICS Base built May 15 2018

############################################################################


==END==






References:
VME configuration : MVME6100 can not map slot x to CR/CSR 유진성
Re: VME configuration : MVME6100 can not map slot x to CR/CSR Michael Davidsaver

Navigate by Date:
Prev: ADPvcam: can't create IOC because of missing build (bin) folder Häbel, Catharina
Next: tvx for pilatus randomic crash over ssh Gabriel de Souza Fedel
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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: VME configuration : MVME6100 can not map slot x to CR/CSR Michael Davidsaver
Next: areaDetector working group meeting at the EPICS Collaboration Meeting June 12 Mark Rivers
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  <20182019  2020  2021  2022  2023  2024 
ANJ, 28 May 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·