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  2018  2019  2020  2021  2022  2023  2024  2025  <2026 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  2025  <2026
<== Date ==> <== Thread ==>

Subject: Re: RTEMS/MVME2100 OMS58 card does not exist! error
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: Miroslaw Dach <mdach at lbl.gov>
Cc: EPICS Tech-Talk <tech-talk at aps.anl.gov>
Date: Mon, 13 Apr 2026 14:03:18 -0700
On 4/13/26 9:34 AM, Johnson, Andrew N. via Tech-talk wrote:
Hi Mirek,

This is good news, could you explain a bit more what you were doing before you found this out?
I assume you restored the PPCBug settings to factory defaults to get it to work?
Is it possible to use any PPCBug settings to configure the VMEbus windows on the Universe-2 chip for RTEMS, or do they have to stay exactly as factory-programmed?

fyi. It turns out that I have a copy of a PPCBug manual (Feb. 2001).  Apparently the "ENV" command can be used to read-back VME bridge settings without updating.

...  If the ENV command is invoked without the D
option, you are prompted to configure all operational parameters. You may
change the displayed value by typing a new value, followed by the Return
key. To leave the field unaltered, press the Return key without typing a
new value.



I’m trying to judge how necessary it might be to change the driver and/or RTEMS BSPs for the VME interface chips to be configurable by IOC applications. Some of that work might need BSP changes or even deeper OS modifications as I don’t know if RTEMS on the MVME boards configures the MMU or PCI host bridge at all, and changing the memory mappings to open windows to the VME could require altering those settings.

Thanks,

- Andrew


-- 

Complexity comes for free, Simplicity you have to work for.


On 4/11/26, 5:14 PM, "Tech-talk" <tech-talk-bounces at aps.anl.gov> wrote:

Hi All,

I found the issue with the OMS card. Actually, the issue wasn't with the card itself but with way how the MVME2100 accesses the VME bus.
The  Tundra Universe II initialization in the original RTEMS bsp for mvme2100 does not work for me. At least the  mvme2100 version which I use:
Board details: MVME2101, MPC8240 @200MHz, 32MB SDRAM, Bus Clock 67MHz,
PPCBug ENV at factory defaults, Universe II at PCI BAR0=0xFCDFF000,
RTEMS 6.0.0, EPICS Base 7.0.10.

Only PPCBug's factory power-on configuration - written by firmware during hardware initialization, never touched by software - produces working VME cycles.
If anybody is facing a similar problem with mvme2100 I have the wrapper functions that fix the issue. 


Best Regards
Mirek



On Fri, Apr 3, 2026 at 9:33 PM Miroslaw Dach <mdach at lbl.gov> wrote:
Hello,

I am struggling with converting the mvme2100 with OMS VS4 card system from vxWorks 5.1 to RTEMS 6 EPICS 7.0.10.

For RTEMS, I use the same omsSetup() call in the startup script as in vxWorks:

#----------------------------------------------------------------------------------------------------------------
Welcome to rtems-6.0.0 (PowerPC/Generic (classic FPU)/mvme2100) on MVME 2100
-----------------------------------------
pci : Configuring interrupt routing for 'MVME 2100'
pci : Device 0:0x00:0 routed to interrupt_line 16
pci : Device 0:0x0d:0 routed to interrupt_line 23
pci : Device 0:0x0e:0 routed to interrupt_line 17
Cleared PCI errors: pci_stat was 0x20a0
WARNING: unable to allocate page table, keeping DBAT0
WARNING: unable to setup page tables VME bridge must share PCI space
OpenPIC Version 1.2 (1 CPUs and 24 IRQ sources) at 0x4242800640
OpenPIC Vendor 0 (Unknown), Device 0 (Unknown), Stepping 1
Overriding NumSources (24) from configuration with 16
OpenPIC timer frequency is 8333344 Hz
BATs must not overlap; area 0x002e0000..0x00300000 hits DBAT 0
Universe II PCI-VME bridge detected at 0xfcdff000, IRQ 23
Universe Master Ports:
Port  VME-Addr   Size       PCI-Adrs   Mode:
0:    0x20000000 0x0e000000 0x90000000 A32, D64 [MBLT], Dat, Sup
1:    0x00000000 0x00ff0000 0x9f000000 A24, D64 [MBLT], Dat, Sup
2:    0x00000000 0x00010000 0x9fff0000 A16, D64, Dat, Sup
Universe Slave Ports:
Port  VME-Addr   Size       PCI-Adrs   Mode:
0:    0xc0000000 0x02000000 0x00000000 A32, Pgm, Dat, Sup, Usr, PWEN, PREN
Registering /dev/console as minor 0 (==/dev/ttyS0)
ntpd: RTEMS service init
:
:
# omsSetup(nCards, baseAddress, intVectBase, intLevel, pollRate)
var drvOMSdebug 9
omsSetup(1, 0xFC00, 180, 5, 10)
iocInit()
Starting iocInit
############################################################################
## EPICS R7.0.10.1
## Rev. R7.0.10
## Rev. Date Git: 2026-03-14 20:49:46 -0700
############################################################################
recGblRecordError: motor_init_record_com(): card does not exist! Illegal field value PV: LS1:MOT
recGblRecordError: motor_init_record_com(): card does not exist! Illegal field value PV: LS1:MOT
recGblRecordError: motor_init_record_com(): card does not exist! Illegal field value PV: LS1:MOT

vmeread 0xfc00 16 8 16
Reading from 0x0000fc00 A16 D8
Mapped to 0x9ffffc00

0x00000000 00000000 00000000 00000000 00000000
*** Bus errors occurred ***
#-------------------------------------------------------------------------------------------------------------
The vxWorks based system with the same hardware works fine and shows:

localAddr = 0
new symbol "localAddr" added to symbol table.

sysBusToLocalAdrs(0x2d, 0xFC00, &localAddr)
value = 0 = 0x0

d localAddr, 0x10, 1
f1fffc00:  ff 0d ff 00 ff b0 ff 48 ff b4 ff ff ff ff ff ff   *.......H........*
value = 21 = 0x15
#--------------------------------------------------------------------------------------------------------------

It looks like VxWorks handles VME memory mapping differently than RTEMS, but devLib2 should manage all of that properly.

I use the following modules:
MOTOR        = $(SUPPORT)/motor-R7-3-1
DEVLIB2      = /usr/local/epics/R7.0.10/modules/soft/devlib2
EPICS_BASE   = /usr/local/epics/R7.0.10/base

I found a similar post on the tech talk:
RTEMS/MVME2100 OMS58 card does not exist! error

I am wondering what the solution was?

Best Regards
Mirek



Replies:
Re: RTEMS/MVME2100 OMS58 card does not exist! error Miroslaw Dach via Tech-talk
References:
RTEMS/MVME2100 OMS58 card does not exist! error Miroslaw Dach via Tech-talk
Re: RTEMS/MVME2100 OMS58 card does not exist! error Miroslaw Dach via Tech-talk
Re: RTEMS/MVME2100 OMS58 card does not exist! error Johnson, Andrew N. via Tech-talk

Navigate by Date:
Prev: Re: RTEMS/MVME2100 OMS58 card does not exist! error Heinz Junkes via Tech-talk
Next: Re: RTEMS/MVME2100 OMS58 card does not exist! error Miroslaw Dach via Tech-talk
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  2025  <2026
Navigate by Thread:
Prev: Re: RTEMS/MVME2100 OMS58 card does not exist! error Heinz Junkes via Tech-talk
Next: Re: RTEMS/MVME2100 OMS58 card does not exist! error Miroslaw Dach via Tech-talk
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  2025  <2026
ANJ, 14 Apr 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·