diff options
Diffstat (limited to 'include/asm-ia64/sn/clksupport.h')
-rw-r--r-- | include/asm-ia64/sn/clksupport.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/include/asm-ia64/sn/clksupport.h b/include/asm-ia64/sn/clksupport.h new file mode 100644 index 000000000..6a2d2c009 --- /dev/null +++ b/include/asm-ia64/sn/clksupport.h @@ -0,0 +1,64 @@ +/* + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2000 Silicon Graphics, Inc. + * Copyright (C) 2000 by Jack Steiner (steiner@sgi.com) + */ + + +#ifndef _ASM_KSYS_CLKSUPPORT_H +#define _ASM_KSYS_CLKSUPPORT_H + +/* #include <sys/mips_addrspace.h> */ + +#if SN +#include <asm/sn/agent.h> +#include <asm/sn/intr_public.h> +typedef hubreg_t clkreg_t; +extern nasid_t master_nasid; + +#define GET_LOCAL_RTC (clkreg_t)LOCAL_HUB_L(PI_RT_COUNT) +#define DISABLE_TMO_INTR() if (cpuid_to_localslice(cpuid())) \ + REMOTE_HUB_PI_S(get_nasid(),\ + cputosubnode(cpuid()),\ + PI_RT_COMPARE_B, 0); \ + else \ + REMOTE_HUB_PI_S(get_nasid(),\ + cputosubnode(cpuid()),\ + PI_RT_COMPARE_A, 0); + +/* This is a hack; we really need to figure these values out dynamically */ +/* + * Since 800 ns works very well with various HUB frequencies, such as + * 360, 380, 390 and 400 MHZ, we use 800 ns rtc cycle time. + */ +#define NSEC_PER_CYCLE 800 +#define CYCLE_PER_SEC (NSEC_PER_SEC/NSEC_PER_CYCLE) +/* + * Number of cycles per profiling intr + */ +#define CLK_FCLOCK_FAST_FREQ 1250 +#define CLK_FCLOCK_SLOW_FREQ 0 +/* The is the address that the user will use to mmap the cycle counter */ +#define CLK_CYCLE_ADDRESS_FOR_USER LOCAL_HUB_ADDR(PI_RT_COUNT) + +#elif IP30 +#include <sys/cpu.h> +typedef heartreg_t clkreg_t; +#define NSEC_PER_CYCLE 80 +#define CYCLE_PER_SEC (NSEC_PER_SEC/NSEC_PER_CYCLE) +#define GET_LOCAL_RTC *((volatile clkreg_t *)PHYS_TO_COMPATK1(HEART_COUNT)) +#define DISABLE_TMO_INTR() +#define CLK_CYCLE_ADDRESS_FOR_USER PHYS_TO_K1(HEART_COUNT) +#define CLK_FCLOCK_SLOW_FREQ (CYCLE_PER_SEC / HZ) +#endif + +/* Prototypes */ +extern void init_timebase(void); +extern void fastick_maint(struct eframe_s *); +extern int audioclock; +extern int prfclk_enabled_cnt; +#endif /* _ASM_KSYS_CLKSUPPORT_H */ |