EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  <19992000  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  <19992000  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: The problem in mvme162 to access A32 space for STR7201 board.
From: Andrew Johnson <[email protected]>
To: Vladis Korobov <[email protected]>
Cc: [email protected]
Date: Thu, 07 Oct 1999 09:56:23 -0500
Vladis Korobov wrote:
> 
>   I checked memory mapping in VMEchip2. The 1-st master memory decoder
> (which maps the local CPU memory to VMEbus) maps the area 0x1000000-0xefff0000
> to VMEbus. Why can't I access this area? May be, something has to be done
> with vxWorks?

Correct, the Memory Management unit needs to be set up to provide the
correct virtual to physical address translation, which be default is only
provided for about 32Mb of VME space above the mv162 local memory.  There
are two ways to do this - edit the sysPhysMemDesc table towards the
beginning of the <tornado>/target/config/mv162/sysLib.c file to add the
area you want to access, or add some code to set the TT registers to allow
a large area of memory space to be translated.  

It is *not* recommended to add large areas using sysPhysMemDesc as this
will waste a lot of memory for the page tables that have to be created at
startup (and cause a long delay when booting).  We use the assembler
routine below to set the DTT1 register to allow the top half of memory to
be mapped transparently.  Just add it to the sysALib.s file and arrange
for it to be called sometime during startup.

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


    .globl  _sysSetTTRegs
    /*
     * Handy C-callable function that maps the upper 1/2 of the
     * address space transparently.  Suitable for I/O operations.
     * The alteration of D0 is OK.  (The compiler assumes it will be
     * clobbered by any function call.)
     */
_sysSetTTRegs:
    movel   #0x807fe040,d0          /* enable data passthrough          */
                                    /* noncachable & serialized from    */
                                    /* 0x80000000..0xffffffff           */
    .word   0x4e7b,0x0007           /* movec d0,DTT1                    */
    rts


References:
The problem in mvme162 to access A32 space for STR7201 board. Vladis Korobov

Navigate by Date:
Prev: RE: The problem in mvme162 to access A32 space for STR7201 board. Mark Rivers
Next: problem w/ 3.13.1 -> 3.13.1.1 Dale L. Brewe
Index: 1994  1995  1996  1997  1998  <19992000  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: The problem in mvme162 to access A32 space for STR7201 board. Vladis Korobov
Next: RE: The problem in mvme162 to access A32 space for STR7201 board. Mark Rivers
Index: 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·