base/include/asm-arm/arch-ep9301/rtai_arch.h

Go to the documentation of this file.
00001 /*
00002  * ARM/EP9301 specific parameters
00003  *
00004  * Copyright (c) 2004-2005 Michael Neuhauser, Firmix Software GmbH (mike@firmix.at)
00005  *
00006  * Acknowledgements:
00007  *  Paolo Mantegazza <mantegazza@aero.polimi.it>, creator of RTAI 
00008  *
00009  *
00010  * This program is free software; you can redistribute it and/or modify it under
00011  * the terms of the GNU General Public License as published by the Free Software
00012  * Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, USA; either version 2 of
00013  * the License, or (at your option) any later version.
00014  *
00015  * This program is distributed in the hope that it will be useful, but WITHOUT
00016  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00017  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00018  * details.
00019  *
00020  * You should have received a copy of the GNU General Public License along with
00021  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00022  * Place, Suite 330, Boston, MA  02111-1307  USA
00023  */
00024 #ifndef _ASM_ARCH_RTAI_ARCH_H_
00025 #define _ASM_ARCH_RTAI_ARCH_H_
00026 
00027 #include <asm/system.h>
00028 #include <asm/arch/ep93xx_tsc.h>
00029 
00030 /* clock frequency of time-stamp-counter (TSC) (timer 4 on EP9301) [Hz] */
00031 #define RTAI_TSC_FREQ       FREQ_EP93XX_TSC
00032 
00033 /* EP9301 ties linux-jiffies to TSC, so we don't need the jiffies-recover handler */
00034 #define USE_LINUX_TIMER_WITHOUT_RECOVER 1
00035 
00036 /* interrupt-timer related values
00037  * ============================== */
00038 
00039 /* irq number of timer interrupt */
00040 #define RTAI_TIMER_IRQ      IRQ_TIMER1
00041 
00042 /* name of timer */
00043 #define RTAI_TIMER_NAME     "TIMER1"
00044 
00045 /* maximal timer load value */
00046 #define RTAI_TIMER_MAXVAL   0xFFFF
00047 
00048 /* clock frequency of timer that generates timer-interrupt [Hz] */
00049 #define RTAI_TIMER_FREQ     CLOCK_TICK_RATE
00050 
00051 /* - oneshot timer latency (is subtracted from oneshot delay) [nanoseconds]
00052  *   (specify it with TSC resolution (because it is used this way in the scheduler)) */
00053 #define RTAI_TIMER_LATENCY \
00054     ((int)((6 * 1000000000LL + RTAI_TSC_FREQ/2) / (long long)RTAI_TSC_FREQ))
00055 
00056 /* - oneshot timer setup delay (i.e. minimal oneshot delay) [nanoseconds]
00057  *   (specify it with TSC resolution) */
00058 #define RTAI_TIMER_SETUP_TIME \
00059     ((int)((3 * 1000000000LL + RTAI_TSC_FREQ/2) / (long long)RTAI_TSC_FREQ))
00060 
00061 /* this machine doesn't have multiplexed IRQs */
00062 #define ARCH_MUX_IRQ        NO_IRQ
00063 #define isdemuxirq(irq)     (0)
00064 
00065 /*
00066  * hooks for architecture specific init/exit actions
00067  */
00068 
00069 extern inline void
00070 rtai_archdep_init(void)
00071 {
00072     /* nothing to do */
00073 }
00074 
00075 extern inline void
00076 rtai_archdep_exit(void)
00077 {
00078     /* nothing to do */
00079 }
00080 
00081 #endif /* _ASM_ARCH_RTAI_ARCH_H_ */

Generated on Tue Feb 2 17:46:04 2010 for RTAI API by  doxygen 1.4.7