Experimental Physics and Industrial Control System
Kay-Uwe Kasemir wrote:
>
> Sounds like another way of forcing electrons out of the CPU
> - if not even better than __asm__ volatile ("sync").
eieio is likely to be quicker - IIRC the sync causes the instruction
pipeline to be stalled until the write is done as well, which isn't
strictly necessary in this case (but useful when installing new CPU
instructions).
> But what about the Universe II chip on most PPC boards
> which has its own write pipeline?
> Is there a "flush" register/command on it?
IIRC there's a bit somewhere that claims to show whether the write
pipeline is empty, but when I tried putting code into the Universe
interrupt handler to wait for this after running each ISR it made no
difference to the "bad vme interrupt 0" error messages we were getting.
The dummy read is the correct technique, as it also works on the Motorola
68K boards that have a VMEchip2 if that's set to do write pipelining.
> (2) the fact that the memory regions mapped to VME are configured as "not cacheable"
> in the vxWorks BSP's sysPhysMemDesc
BTW, I also mark our VME regions as Guarded, which supposedly prevents the
CPU from changing the order of writes to that address region. I'm not
sure if it makes any difference IRL, but it certainly makes me happier
after having read about the possibility.
- Andrew
--
Larry McVoy: "Learn how to think in C++ but don't ever program in it."
- References:
- Re: ISEG VHQ204L Driver J. Frederick Bartlett ([email protected])
- Re: ISEG VHQ204L Driver (Really: PPC and VME) Kay-Uwe Kasemir
- Navigate by Date:
- Prev:
Re: ISEG VHQ204L Driver (Really: PPC and VME) Kay-Uwe Kasemir
- Next:
epicsBase3.13.7 Marty Kraimer
- 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: ISEG VHQ204L Driver (Really: PPC and VME) Kay-Uwe Kasemir
- Next:
switch clock Bernd Schoeneburg
- 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