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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: VxWorks 6.9 |
From: | Stefen Paul <[email protected]> |
To: | Andrew Johnson <[email protected]>, EPICS Tech Talk <[email protected]> |
Date: | Thu, 28 Jan 2016 10:53:28 +0530 |
Hi Stefen,
On 01/22/2016 06:06 AM, Stefen Paul wrote:
> I have one more query regarding VxWorks 6.9 on MVME5500.
>
> How can one access CR/CSR portion of a peripheral board from either the
> vxWorks prompt or a simple C program ?
Unfortunately this is not a simple thing to do.
The "correct" way to give access to the CR/CSR address space is to
modify your BSP to configure a VME Master window which addresses it.
There was a conversation about doing this on tech-talk recently:
http://www.aps.anl.gov/epics/tech-talk/2016/msg00051.php
However Eric's presentation was about the MVME6100 board which has a
Tundra TSI-148 chip for its VME interface. Your MVME5500 board uses the
Universe-2 chip, so Eric's code won't work for you, but I have made
equivalent changes to the MVME5100 board which we use here at the APS,
and I can publish my changes on tech-talk if you want to see them. You
won't be able to apply them directly to the mv5500 BSP since the board's
memory map is different, but the two are close enough that most of the
code should be the same.
There is a simpler way to get access to that space, which involves
temporarily changing the mapping of the VME A24 Master window to access
CR/CSR space, doing what you need and then changing the window back to
access A24 space. I would only suggest using this on a system where you
only need to access that space for a very short period of time and you
know that no other VME drivers could be handling interrupts or trying to
access hardware in the VME A24 space at the time you have the window
re-mapped. Typically that means that you would only need to do this once
to configure some registers on the peripheral board, and that you can do
that configuration before any other board gets fully initialized.
Let me know which of those two options you prefer.
- Andrew
--
There are only two hard problems in distributed systems:
2. Exactly-once delivery
1. Guaranteed order of messages
2. Exactly-once delivery
-- Mathias Verraes