OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libcpu/] [powerpc/] [ppc403/] [ictrl/] [ictrl.h] - Rev 607

Go to most recent revision | Compare with Previous | Blame | View Log

/*  ictrl.h
 *
 *  This file contains definitions and declarations for the 
 *  PowerPC 403 CPU built-in external interrupt controller
 *
 *
 *  Author: Thomas Doerfler <td@imd.m.isar.de>
 *
 *  COPYRIGHT (c) 1998 by IMD, Puchheim, Germany
 *
 *  To anyone who acknowledges that this file is provided "AS IS"
 *  without any express or implied warranty:
 *      permission to use, copy, modify, and distribute this file
 *      for any purpose is hereby granted without fee, provided that
 *      the above copyright notice and this notice appears in all
 *      copies, and that the name of IMD not be used in
 *      advertising or publicity pertaining to distribution of the
 *      software without specific, written prior permission.
 *      IMD makes no representations about the suitability
 *      of this software for any purpose.
 *
 */
 
 
#ifndef _INCLUDE_ICTRL_h
#define _INCLUDE_ICTRL_h
 
#include <rtems.h>
#include <rtems/system.h>
#include <rtems/score/isr.h>
#ifdef __cplusplus
extern "C" {
#endif
 
/* 
 *  definitions for second level IRQ handler support
 *  External Interrupts via EXTERNAL/EISR 
 */
#define PPC_IRQ_EXT_BASE        (PPC_IRQ_LAST+1)
 
/* mask for external interrupt status in EXIER/EXISR register */
/* note: critical interrupt is in these registers aswell */
#define PPC_EXI_MASK           0x0FFFFFFF
 
#define PPC_IRQ_EXT_SPIR        (PPC_IRQ_EXT_BASE+4)
#define PPC_IRQ_EXT_SPIT        (PPC_IRQ_EXT_BASE+5)
#define PPC_IRQ_EXT_JTAGR       (PPC_IRQ_EXT_BASE+6)
#define PPC_IRQ_EXT_JTAGT       (PPC_IRQ_EXT_BASE+7)
#define PPC_IRQ_EXT_DMA0        (PPC_IRQ_EXT_BASE+8)
#define PPC_IRQ_EXT_DMA1        (PPC_IRQ_EXT_BASE+9)
#define PPC_IRQ_EXT_DMA2        (PPC_IRQ_EXT_BASE+10)
#define PPC_IRQ_EXT_DMA3        (PPC_IRQ_EXT_BASE+11)
#define PPC_IRQ_EXT_0           (PPC_IRQ_EXT_BASE+27)
#define PPC_IRQ_EXT_1           (PPC_IRQ_EXT_BASE+28)
#define PPC_IRQ_EXT_2           (PPC_IRQ_EXT_BASE+29)
#define PPC_IRQ_EXT_3           (PPC_IRQ_EXT_BASE+30)
#define PPC_IRQ_EXT_4           (PPC_IRQ_EXT_BASE+31)
 
#define PPC_IRQ_EXT_MAX         (32)
 
#define VEC_TO_EXMSK(v)         (0x80000000 >> (v))
 
/*
 *
 * install a user vector for one of the external interrupt sources 
 *
 */ 
rtems_status_code
ictrl_set_vector(rtems_isr_entry   new_handler,
		 unsigned32        vector,
		 rtems_isr_entry   *old_handler
);
/*
 * activate the interrupt controller 
 */
rtems_status_code 
ictrl_init(void);
 
#ifdef __cplusplus
}
#endif
 
#endif /* ! _INCLUDE_ICTRL_h */
/* end of include file */
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.