diff options
Diffstat (limited to 'sys/arch/hp300/include/cpu.h')
-rw-r--r-- | sys/arch/hp300/include/cpu.h | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/sys/arch/hp300/include/cpu.h b/sys/arch/hp300/include/cpu.h deleted file mode 100644 index 5b491cb61dc..00000000000 --- a/sys/arch/hp300/include/cpu.h +++ /dev/null @@ -1,200 +0,0 @@ -/* $OpenBSD: cpu.h,v 1.39 2011/03/23 16:54:34 pirofti Exp $ */ -/* $NetBSD: cpu.h,v 1.28 1998/02/13 07:41:51 scottr Exp $ */ - -/* - * Copyright (c) 1988 University of Utah. - * Copyright (c) 1982, 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * from: Utah $Hdr: cpu.h 1.16 91/03/25$ - * - * @(#)cpu.h 8.4 (Berkeley) 1/5/94 - */ - -#ifndef _MACHINE_CPU_H_ -#define _MACHINE_CPU_H_ - -/* - * Exported definitions unique to hp300/68k cpu support. - */ - -/* - * Get common m68k CPU definitions. - */ -#include <m68k/cpu.h> - -#ifdef _KERNEL - -/* - * Get interrupt glue. - */ -#include <machine/intr.h> - -/* - * Arguments to hardclock and gatherstats encapsulate the previous - * machine state in an opaque clockframe. On the hp300, we use - * what the hardware pushes on an interrupt (frame format 0). - */ -struct clockframe { - u_short sr; /* sr at time of interrupt */ - u_long pc; /* pc at time of interrupt */ - u_short vo; /* vector offset (4-word frame) */ -}; - -#define CLKF_USERMODE(framep) (((framep)->sr & PSL_S) == 0) -#define CLKF_PC(framep) ((framep)->pc) -#if 0 -/* We would like to do it this way... */ -#define CLKF_INTR(framep) (((framep)->sr & PSL_M) == 0) -#else -/* but until we start using PSL_M, we have to do this instead */ -#define CLKF_INTR(framep) (0) /* XXX */ -#endif - - -/* - * Preempt the current process if in interrupt from user mode, - * or after the current trap/syscall if in system mode. - */ -extern int want_resched; /* resched() was called */ -#define need_resched(ci) { want_resched = 1; aston(); } -#define clear_resched(ci) want_resched = 0 - -/* - * Give a profiling tick to the current process when the user profiling - * buffer pages are invalid. On the hp300, request an ast to send us - * through trap, marking the proc as needing a profiling tick. - */ -#define need_proftick(p) aston() - -/* - * Notify the current process (p) that it has a signal pending, - * process as soon as possible. - */ -#define signotify(p) aston() - -extern int astpending; /* need to trap before returning to user mode */ -#define aston() (astpending = 1) - -#endif /* _KERNEL */ - -/* - * CTL_MACHDEP definitions. - */ -#define CPU_CONSDEV 1 /* dev_t: console terminal device */ -#define CPU_CPUSPEED 2 /* CPU speed in MHz */ -#define CPU_MACHINEID 3 /* machine id (HP_XXX) */ -#define CPU_MMUID 4 /* mmu id (MMUID_*) */ -#define CPU_MAXID 5 /* number of valid machdep ids */ - -#define CTL_MACHDEP_NAMES { \ - { 0, 0 }, \ - { "console_device", CTLTYPE_STRUCT }, \ - { "cpuspeed", CTLTYPE_INT }, \ - { "machineid", CTLTYPE_INT }, \ - { "mmuid", CTLTYPE_INT }, \ -} - -/* - * The rest of this should probably be moved to <machine/hp300spu.h>, - * although some of it could probably be put into generic 68k headers. - */ - -#ifdef _KERNEL -extern char *intiobase, *intiolimit; -extern void (*vectab[])(void); - -struct frame; -struct fpframe; -struct pcb; - -/* locore.s functions */ -void PCIA(void); -__dead void doboot(void); -void ecacheon(void); -void ecacheoff(void); - -/* clock.c functions */ -void hp300_calibrate_delay(void); - -/* machdep.c functions */ -int badaddr(caddr_t); -int badbaddr(caddr_t); -void dumpconf(void); - -#endif /* _KERNEL */ - -/* physical memory sections */ -#define ROMBASE (0x00000000) -#define INTIOBASE (0x00400000) -#define INTIOTOP (0x00600000) -#define MAXADDR (0xFFFFF000) - -/* - * Internal IO space: - * - * Ranges from 0x400000 to 0x600000 (IIOMAPSIZE). - * - * Internal IO space is mapped in the kernel from ``intiobase'' to - * ``intiolimit'' (defined in locore.s). Since it is always mapped, - * conversion between physical and kernel virtual addresses is easy. - */ -#define ISIIOVA(va) \ - ((char *)(va) >= intiobase && (char *)(va) < intiolimit) -#define IIOV(pa) ((int)(pa)-INTIOBASE+(int)intiobase) -#define IIOP(va) ((int)(va)-(int)intiobase+INTIOBASE) -#define IIOPOFF(pa) ((int)(pa)-INTIOBASE) -#define IIOMAPSIZE atop(INTIOTOP-INTIOBASE) /* 2mb */ - -/* - * HP MMU - */ -#define MMUBASE IIOPOFF(0x5F4000) -#define MMUSSTP 0x0 -#define MMUUSTP 0x4 -#define MMUTBINVAL 0x8 -#define MMUSTAT 0xC -#define MMUCMD MMUSTAT - -#define MMU_UMEN 0x0001 /* enable user mapping */ -#define MMU_SMEN 0x0002 /* enable supervisor mapping */ -#define MMU_CEN 0x0004 /* enable data cache */ -#define MMU_BERR 0x0008 /* bus error */ -#define MMU_IEN 0x0020 /* enable instruction cache */ -#define MMU_FPE 0x0040 /* enable 68881 FP coprocessor */ -#define MMU_WPF 0x2000 /* write protect fault */ -#define MMU_PF 0x4000 /* page fault */ -#define MMU_PTF 0x8000 /* page table fault */ - -#define MMU_FAULT (MMU_PTF|MMU_PF|MMU_WPF|MMU_BERR) -#define MMU_ENAB (MMU_UMEN|MMU_SMEN|MMU_IEN|MMU_FPE) - -#endif /* _MACHINE_CPU_H_ */ |