GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> VXW / V7-2-0 > vxw_tornado / rad750
#include "vxWorks.h"
#include "arch/ppc/excPpcLib.h"
#include "drv/ppci/asmFns.h"
#include "drv/ppci/isrRouter.h"
#include "drv/ppci/ppciRegs.h"
#include "drv/ppci/ppciInt.h"
#include "TEX/TEX_pubdefs.h"
Defines | |
#define | P60X_INT_STATUS_MASK (OCB_IF_ERR | ADDR_OUT_OF_RANGE | MEM_CTRL_IF_ERR) |
Functions | |
STATUS | ppciIntEnable (ppciIntLvl_t intLvl) |
Enable a PowerPCI interrupt level. | |
STATUS | ppciIntDisable (ppciIntLvl_t intLvl) |
Disable a PowerPCI interrupt level. | |
STATUS | ppciIntConnect (ppciIntLvl_t intLvl, VOIDFUNCPTR isr, int parm) |
Connect ISR to PowerPCI interrupt level. | |
static void | ppciISR (void) |
STATUS | miscIntEnable (miscIntLvl_t intLvl) |
Enable a PowerPCI MISC interrupt level. | |
STATUS | miscIntDisable (miscIntLvl_t intLvl) |
Disable a PowerPCI MISC interrupt level. | |
STATUS | miscIntConnect (miscIntLvl_t intLvl, VOIDFUNCPTR isr, int parm) |
Connect ISR to PowerPCI MISC interrupt level. | |
STATUS | pciErrIntEnable (pciIntLvl_t intLvl) |
Enable a PowerPCI PCI error interrupt level. | |
STATUS | pciErrIntDisable (pciIntLvl_t intLvl) |
Disable a PowerPCI PCI error interrupt level. | |
STATUS | pciErrIntConnect (pciIntLvl_t intLvl, VOIDFUNCPTR isr, int parm) |
Connect ISR to PowerPCI PCI error interrupt level. | |
STATUS | p60xErrIntEnable (p60xIntLvl_t intLvl) |
Enable a PowerPCI PCI error interrupt level. | |
STATUS | p60xErrIntDisable (p60xIntLvl_t intLvl) |
Disable a PowerPCI PCI error interrupt level. | |
STATUS | p60xErrIntConnect (pciIntLvl_t intLvl, VOIDFUNCPTR isr, int parm) |
static void | p60xRouteInterrupt (int arg) |
void | ppciIntInit (void) |
void | ppciIntInit2 (void) |
Variables | |
static isrRoutingInfo_t | ppciRoutingInfo |
static isrRoutingInfo_t | miscRoutingInfo |
static isrRoutingInfo_t | pciRoutingInfo |
static isrTableEntry_t | p60xRoutingInfo [NUM_P60X_INT_LVLS] |
-------------------------------------------------------------------------
Description:
This file provides functions for primary and miscellaneous PowerPCI interrupt routing. Functions for routing PID interrupts are defined in ppciPid.h. Functions for routing multiprocessor signal interrupts are defined in ppciMp.h. Note that ppciPtim.c provides timer interrupt routing functions that wrap the miscInt*() functions defined here. Also note that typical RAD750 BSPs define the standard VxWorks interrupt routines (intEnable(), intDisable() and intConnect()) for routing PCI interrupt signals wired into PowerPCI PIDs.
Restrictions:
Change History:
Date Pgm Description -------- --- ------------------------------------------------------- 04/21/00 MJF Initial Release 01/03/01 DS BSP integration.
---------------------------------------------------------------------------
#define P60X_INT_STATUS_MASK (OCB_IF_ERR | ADDR_OUT_OF_RANGE | MEM_CTRL_IF_ERR) |
The valid P60X status bits to interrogate.
STATUS miscIntConnect | ( | miscIntLvl_t | intLvl, | |
VOIDFUNCPTR | isr, | |||
int | parm | |||
) |
Connect ISR to PowerPCI MISC interrupt level.
Connect ISR to PowerPCI MISC interrupt level
This routine connects an interrupt service routine (ISR) to PowerPCI bridge MISC interrupt level. Note that the MISC interrupts include the programmable timer interrupts (PTIM). MISC interrupts are enabled separate from this routine (by miscIntEnable()). The interrupt level being connected should not be enable when this routine is called. The specified ISR will get control with interrupts disabled.
intLvl | - The PPCI MISC interrupt level. | |
isr | - Pointer to the ISR. | |
parm | - A user-defined parameter to pass to the ISR when the interrupt occurs. |
STATUS miscIntDisable | ( | miscIntLvl_t | intLvl | ) |
Disable a PowerPCI MISC interrupt level.
Disable a PowerPCI MISC interrupt level
This routine disables the specified MISC interrupt level of the PowerPCI bridge. Note that the MISC interrupts include the programmable timer interrupts (PTIM).
intLvl | - The PPCI MISC interrupt level to disable. |
STATUS miscIntEnable | ( | miscIntLvl_t | intLvl | ) |
Enable a PowerPCI MISC interrupt level.
Enable a PowerPCI MISC interrupt level
This routine enables the specified MISC interrupt level of the PowerPCI bridge. The Note that the MISC interrupts include the programmable timer interrupts (PTIM).
intLvl | - The PPCI MISC interrupt level to enable. |
STATUS p60xErrIntConnect | ( | pciIntLvl_t | intLvl, | |
VOIDFUNCPTR | isr, | |||
int | parm | |||
) |
Connect ISR to PowerPCI P60X error interrupt level
This routine connects an interrupt service routine (ISR) to PowerPCI bridge P60X error interrupt level. P60X error interrupts are enabled separate from this routine (by p60xErrIntEnable()). The interrupt level being connected should not be enabled when this routine is called. The specified ISR will get control with interrupts disabled.
intLvl | - The PPCI P60X error interrupt level. | |
isr | - Pointer to the ISR. | |
parm | - A user-defined parameter to pass to the ISR when the interrupt occurs. |
STATUS p60xErrIntDisable | ( | p60xIntLvl_t | intLvl | ) |
Disable a PowerPCI PCI error interrupt level.
Enable a PowerPCI P60X error interrupt level
This routine disables the specified P60X error interrupt level of the PowerPCI bridge.
intLvl | - The PPCI P60X error interrupt level to disable. |
STATUS p60xErrIntEnable | ( | p60xIntLvl_t | intLvl | ) |
Enable a PowerPCI PCI error interrupt level.
Enable a PowerPCI P60X error interrupt level
This routine enables the specified P60X error interrupt level of the PowerPCI bridge.
intLvl | - The PPCI P60X error interrupt level to enable. |
void p60xRouteInterrupt | ( | int | arg | ) | [static] |
----------------------------------------------------------------------------
This routine uses a jump table to route a set of aggregated interrupts.
arg | Ignored. |
STATUS pciErrIntConnect | ( | pciIntLvl_t | intLvl, | |
VOIDFUNCPTR | isr, | |||
int | parm | |||
) |
Connect ISR to PowerPCI PCI error interrupt level.
Connect ISR to PowerPCI PCI error interrupt level
This routine connects an interrupt service routine (ISR) to PowerPCI bridge PCI error interrupt level. PCI error interrupts are enabled separate from this routine (by pciErrIntEnable()). The interrupt level being connected should not be enabled when this routine is called. The specified ISR will get control with interrupts disabled.
intLvl | - The PPCI PCI error interrupt level. | |
isr | - Pointer to the ISR. | |
parm | - A user-defined parameter to pass to the ISR when the interrupt occurs. |
STATUS pciErrIntDisable | ( | pciIntLvl_t | intLvl | ) |
Disable a PowerPCI PCI error interrupt level.
Disable a PowerPCI PCI error interrupt level
This routine disables the specified PCI error interrupt level of the PowerPCI bridge.
intLvl | - The PPCI PCI error interrupt level to disable. |
STATUS pciErrIntEnable | ( | pciIntLvl_t | intLvl | ) |
Enable a PowerPCI PCI error interrupt level.
Enable a PowerPCI PCI error interrupt level
This routine enables the specified PCI error interrupt level of the PowerPCI bridge.
intLvl | - The PPCI PCI error interrupt level to enable. |
STATUS ppciIntConnect | ( | ppciIntLvl_t | intLvl, | |
VOIDFUNCPTR | isr, | |||
int | parm | |||
) |
Connect ISR to PowerPCI interrupt level.
Connect ISR to PowerPCI interrupt level
This routine connects an interrupt service routine (ISR) to PowerPCI bridge interrupt level. PPCI interrupts are enabled separate from this routine (by ppciIntEnable). The interrupt level being connected should not be enable when this routine is called. The specified ISR will get control with interrupts disabled.
intLvl | - The PPCI interrupt level. | |
isr | - Pointer to the ISR. | |
parm | - A user-defined parameter to pass to the ISR when the interrupt occurs. |
STATUS ppciIntDisable | ( | ppciIntLvl_t | intLvl | ) |
Disable a PowerPCI interrupt level.
Disable a PowerPCI interrupt level
This routine disables the specified interrupt level of the PowerPCI bridge.
intLvl | - The PPCI interrupt level to disable. |
STATUS ppciIntEnable | ( | ppciIntLvl_t | intLvl | ) |
Enable a PowerPCI interrupt level.
Enable a PowerPCI interrupt level
This routine enables the specified interrupt level of the PowerPCI bridge.
intLvl | - The PPCI interrupt level to enable. |
void ppciIntInit | ( | void | ) |
Interrupt initialization routine, first part.
Interrupt initialization routine, first part.
This init routine is called by ppciInit (from sysHwInit) during system boot. Interrupt routing resources are initialized.
void ppciIntInit2 | ( | void | ) |
Interrupt initialization routine, second part.
Interrupt initialization routine, second part
This init routine is called by ppciInit2 (from sysHwInit2) during system boot. Default handlers are installed for the PPCI error interrupts.
void ppciISR | ( | void | ) | [static] |
This routine handles interrupts from the PowerPCI bridge. A jump table is used to route active interrupts to their corresponding sercive routine. This routine loops until all interrupts are cleared.
miscRoutingInfo [static] |
Initial value:
{ {{NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}}, &ppciMiscIntStatus, &ppciMiscIntEnable, TRUE, TRUE }
p60xRoutingInfo [static] |
Initial value:
{ {NULL, 0}, {NULL, 0}, {NULL, 0}, }
pciRoutingInfo [static] |
Initial value:
{ {{NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}}, &ppciPciStatus2, &ppciPciStatus2Mask, TRUE, TRUE }
ppciRoutingInfo [static] |
Initial value:
{ {{NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {NULL, 0}}, &ppciIntCollection, &ppciIntEnableReg, FALSE, FALSE }