Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:56

0001 /**
0002  *  @file
0003  *
0004  *  @ingroup powerpc_vmeconfig
0005  *
0006  *  @brief mvme3100 BSP specific address space configuration parameters
0007  */
0008 
0009 #ifndef RTEMS_BSP_VME_CONFIG_H
0010 #define RTEMS_BSP_VME_CONFIG_H
0011 
0012 /*
0013  * Authorship
0014  * ----------
0015  * This software was created by
0016  *     Till Straumann <strauman@slac.stanford.edu>, 2002..2007,
0017  *     Stanford Linear Accelerator Center, Stanford University.
0018  *
0019  * Acknowledgement of sponsorship
0020  * ------------------------------
0021  * This software was produced by
0022  *     the Stanford Linear Accelerator Center, Stanford University,
0023  *     under Contract DE-AC03-76SFO0515 with the Department of Energy.
0024  *
0025  * Government disclaimer of liability
0026  * ----------------------------------
0027  * Neither the United States nor the United States Department of Energy,
0028  * nor any of their employees, makes any warranty, express or implied, or
0029  * assumes any legal liability or responsibility for the accuracy,
0030  * completeness, or usefulness of any data, apparatus, product, or process
0031  * disclosed, or represents that its use would not infringe privately owned
0032  * rights.
0033  *
0034  * Stanford disclaimer of liability
0035  * --------------------------------
0036  * Stanford University makes no representations or warranties, express or
0037  * implied, nor assumes any liability for the use of this software.
0038  *
0039  * Stanford disclaimer of copyright
0040  * --------------------------------
0041  * Stanford University, owner of the copyright, hereby disclaims its
0042  * copyright and all other rights in this software.  Hence, anyone may
0043  * freely use it for any purpose without restriction.
0044  *
0045  * Maintenance of notices
0046  * ----------------------
0047  * In the interest of clarity regarding the origin and status of this
0048  * SLAC software, this and all the preceding Stanford University notices
0049  * are to remain affixed to any copy or derivative of this software made
0050  * or distributed by the recipient and are to be affixed to any copy of
0051  * software made or distributed by the recipient that contains a copy or
0052  * derivative of this software.
0053  *
0054  * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03
0055  */
0056 
0057 /*
0058  * NOTE: the BSP (startup/bspstart.c) uses
0059  * hardcoded window lengths that match this
0060  * layout:
0061  */
0062 
0063 #define _VME_A32_WIN0_ON_PCI    0xc0000000
0064 #define _VME_CSR_ON_PCI         0xce000000
0065 #define _VME_A24_ON_PCI         0xcf000000
0066 #define _VME_A16_ON_PCI         0xcfff0000
0067 
0068 /* start of the A32 window on the VME bus
0069  * TODO: this should perhaps be a run-time configuration option
0070  */
0071 #define _VME_A32_WIN0_ON_VME    0x20000000
0072 
0073 /* if _VME_DRAM_OFFSET is defined, the BSP
0074  * will map the board RAM onto the VME bus, starting
0075  * at _VME_DRAM_OFFSET
0076  */
0077 #define _VME_DRAM_OFFSET        0xc0000000
0078 
0079 /* If your BSP requires a non-standard way to configure
0080  * the VME interrupt manager then define the symbol
0081  *
0082  * BSP_VME_INSTALL_IRQ_MGR
0083  *
0084  * to a proper instruction sequence that installs the
0085  * universe interrupt manager. This requires knowledge
0086  * of the wiring between the universe and the PIC (main
0087  * interrupt controller), i.e., which IRQ 'pins' of the
0088  * universe are wired to which 'lines'/inputs at the PIC.
0089  * (consult vmeUniverse.h for more information).
0090  *
0091  * When installing the universe IRQ manager it is also
0092  * possible to specify whether it should try to share
0093  * PIC interrupts with other sources. This might not
0094  * be supported by all BSPs (but the unverse driver
0095  * recognizes that).
0096  *
0097  * If BSP_VME_INSTALL_IRQ_MGR is undefined then
0098  * the default algorithm is used (vme_universe.c):
0099  *
0100  * This default setup uses only a single wire. It reads
0101  * the PIC 'line' from PCI configuration space and assumes
0102  * this to be wired to the first (LIRQ0) IRQ input at the
0103  * universe. The default setup tries to use interrupt
0104  * sharing.
0105  */
0106 
0107 extern int BSP_VMEInit(void);
0108 extern int BSP_VMEIrqMgrInstall(void);
0109 
0110 /**
0111  *  @defgroup powerpc_vme BSP_VME_INSTALL_IRQ_MGR Support
0112  *
0113  *  @ingroup RTEMSBSPsPowerPCMVME3100
0114  *
0115  *  @brief BSP_VME_INSTALL_IRQ_MGR Support Package
0116  */
0117 #define BSP_VME_INSTALL_IRQ_MGR(err)    \
0118     do {                                \
0119         err = vmeTsi148InstallIrqMgrAlt(\
0120             VMETSI148_IRQ_MGR_FLAG_SHARED, /* use shared IRQs */ \
0121             0, BSP_VME0_IRQ,            \
0122             1, BSP_VME1_IRQ,            \
0123             2, BSP_VME2_IRQ,            \
0124             3, BSP_VME3_IRQ,            \
0125             -1 /* terminate list  */    \
0126         );                              \
0127     } while (0)
0128 
0129 /* This BSP uses the Tsi148 Driver */
0130 #define _VME_DRIVER_TSI148
0131 
0132 #endif