Hi,
We have a Ramix RM139m memory board working with an mv167 CPU and we now
want to use it with a PowerPC. Has anyone tried this before?
Attached to this message are the modifications made to all/usrConfing.c
and mv167/sysLib.c to make the RAMIX board work with the mv167. Any
suggestions on how to get it done with the PowerPC will be appreciated.
Thank you,
Pedro Gigoux
Gemini Observatory -- all/usrConfig.c modifications
#define SHORTIO 0xffff0000
#define RM139SHORT (SHORTIO + 0x0100)
void usrInit
(
int startType
)
{
#if (CPU_FAMILY == SPARC)
excWindowInit (); /* SPARC window management */
#endif
int index;
unsigned short *target;
/*
Initialization values for RAMIX RM139 Memory board - KJR
*/
int rm139Config[7][2] =
{{(RM139SHORT + 0x00), 0x0040}, /* R0 VME Low */
{(RM139SHORT + 0x02), 0x00C0}, /* R1 VME High */
{(RM139SHORT + 0x04), 0x3b39}, /* R2 A24 Add. Mod. */
{(RM139SHORT + 0x06), 0x38}, /* R3 A24/D64 Mod. */
{(RM139SHORT + 0x08), 0x0b0d}, /* R4 A32 Add. Mod. */
{(RM139SHORT + 0x0a), 0x08}, /* R5 A32/D64 Mod. */
{(RM139SHORT + 0x16), 0x00}}; /* R11 Parity Control */
/*
Initialize RM139 memory board with 64 MB of memory.
This code based on an example from the RM139 User's Manual - KJR
*/
for(index = 0;index < 7;index++)
{
target = (unsigned short *) rm139Config[index][0];
*target = rm139Config[index][1];
}
....
}
void usrRoot
(
char * pMemPoolStart, /* start of system memory partition */
unsigned memPoolSize /* initial size of mem pool */
)
{
int ix;
/* Initialize the memory pool before initializing any other package.
* The memory associated with the root task will be reclaimed at the
* completion of its activities.
*/
#ifdef INCLUDE_MEM_MGR_FULL
memInit (pMemPoolStart, memPoolSize); /* initialize memory pool */
#else
memPartLibInit (pMemPoolStart, memPoolSize);/* initialize memory pool */
#endif /* INCLUDE_MEM_MGR_FULL */
#ifdef INCLUDE_SHOW_ROUTINES
memShowInit (); /* initialize memShow routine */
#endif /* INCLUDE_SHOW_ROUTINES */
#if defined(INCLUDE_MMU_BASIC) || defined(INCLUDE_MMU_FULL)
usrMmuInit (); /* initialize the mmu */
#endif /* defined(INCLUDE_MMU_BASIC) || defined(INCLUDE_MMU_FULL) */
/* Define RAMIX memory board to system - kjr */
memAddToPool((char *)0x4000000, 0x8000000);
...
}
-- mv167/sysLib.c modifications
PHYS_MEM_DESC sysPhysMemDesc [] =
{
/* adrs and length parameters must be page-aligned (multiples of 0x2000) */
/* ram */
{
(void *) LOCAL_MEM_LOCAL_ADRS,
(void *) LOCAL_MEM_LOCAL_ADRS,
0x1000000, /* 16 Mbytes (adjust if necessary) */
VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE
},
/* vme 64 Mbytes - RAMIX board */
{
(void *) 0x4000000,
(void *) 0x4000000,
0x8000000,
VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT
},
...
}
- Navigate by Date:
- Prev:
Re: devVXStats and task crash Marty Kraimer
- Next:
Re: dbCaLink and broadcast messages Kevin Tsubota
- 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: dbCaLink and broadcast messages Kevin Tsubota
- Next:
EPICS Meeting next week Kay-Uwe Kasemir
- 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
|