⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu.h

📁 国产CPU-龙芯(loongson)BIOS源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*	$OpenBSD: cpu.h,v 1.4 1998/09/15 10:50:12 pefo Exp $	*//*- * Copyright (c) 1992, 1993 *	The Regents of the University of California.  All rights reserved. * * This code is derived from software contributed to Berkeley by * Ralph Campbell and Rick Macklem. * * 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. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. 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. * *	Copyright (C) 1989 Digital Equipment Corporation. *	Permission to use, copy, modify, and distribute this software and *	its documentation for any purpose and without fee is hereby granted, *	provided that the above copyright notice appears in all copies. *	Digital Equipment Corporation makes no representations about the *	suitability of this software for any purpose.  It is provided "as is" *	without express or implied warranty. * *	from: @(#)cpu.h	8.4 (Berkeley) 1/4/94 */#ifndef _MIPS_CPU_H_#define _MIPS_CPU_H_#include <machine/psl.h>#define KUSEG_ADDR		0x0#define CACHED_MEMORY_ADDR	0x80000000#define UNCACHED_MEMORY_ADDR	0xa0000000#define KSEG2_ADDR		0xc0000000#define MAX_MEM_ADDR		0xbe000000#define	RESERVED_ADDR		0xbfc80000#ifndef _LOCORE#define	CACHED_TO_PHYS(x)	((unsigned)(x) & 0x1fffffff)#define	PHYS_TO_CACHED(x)	((unsigned)(x) | CACHED_MEMORY_ADDR)#define	UNCACHED_TO_PHYS(x) 	((unsigned)(x) & 0x1fffffff)#define	PHYS_TO_UNCACHED(x) 	((unsigned)(x) | UNCACHED_MEMORY_ADDR)#define VA_TO_CINDEX(x) 	((unsigned)(x) & 0xffffff | CACHED_MEMORY_ADDR)#define	CACHED_TO_UNCACHED(x)	(PHYS_TO_UNCACHED(CACHED_TO_PHYS(x)))#else#define	CACHED_TO_PHYS(x)	((x) & 0x1fffffff)#define	PHYS_TO_CACHED(x)	((x) | CACHED_MEMORY_ADDR)#define	UNCACHED_TO_PHYS(x) 	((x) & 0x1fffffff)#define	PHYS_TO_UNCACHED(x) 	((x) | UNCACHED_MEMORY_ADDR)#define VA_TO_CINDEX(x) 	((x) & 0xffffff | CACHED_MEMORY_ADDR)#define	CACHED_TO_UNCACHED(x)	(PHYS_TO_UNCACHED(CACHED_TO_PHYS(x)))#endif#ifdef _KERNEL/* * The bits in the cause register. * *	CR_BR_DELAY	Exception happened in branch delay slot. *	CR_COP_ERR		Coprocessor error. *	CR_IP		Interrupt pending bits defined below. *	CR_EXC_CODE	The exception type (see exception codes below). */#define CR_BR_DELAY		0x80000000#define CR_COP_ERR		0x30000000#define CR_EXC_CODE		0x0000007c#define CR_IP			0x0000FF00#define CR_EXC_CODE_SHIFT	2/* * The bits in the status register.  All bits are active when set to 1. */#define SR_COP_USABILITY	0xf0000000#define SR_COP_0_BIT		0x10000000#define SR_COP_1_BIT		0x20000000#define SR_RP			0x08000000#define SR_FR_32		0x04000000#define SR_RE			0x02000000#define SR_BOOT_EXC_VEC		0x00400000#define SR_TLB_SHUTDOWN		0x00200000#define SR_SOFT_RESET		0x00100000#define SR_DIAG_CH		0x00040000#define SR_DIAG_CE		0x00020000#define SR_DIAG_DE		0x00010000#define SR_KX			0x00000080#define SR_SX			0x00000040#define SR_UX			0x00000020#define SR_KSU_MASK		0x00000018#define SR_KSU_USER		0x00000010#define SR_KSU_SUPER		0x00000008#define SR_KSU_KERNEL		0x00000000#define SR_ERL			0x00000004#define SR_EXL			0x00000002#define SR_INT_ENAB		0x00000001/*#define SR_INT_MASK		0x0000ff00*//* * The interrupt masks. * If a bit in the mask is 1 then the interrupt is enabled (or pending). */#define INT_MASK		0xff00#define INT_MASK_5		0x8000#define INT_MASK_4		0x4000#define INT_MASK_3		0x2000#define INT_MASK_2		0x1000#define INT_MASK_1		0x0800#define INT_MASK_0		0x0400#define HARD_INT_MASK		0xfc00#define SOFT_INT_MASK_1		0x0200#define SOFT_INT_MASK_0		0x0100/* * RM7000 cause register expansion. */#define	INT_MASK_PERF		0x00200000	/* 13 Performance counter */#define	INT_MASK_TIMR		0x00100000	/* 12 Timer *//* * The bits in the context register. */#define CNTXT_PTE_BASE		0xff800000#define CNTXT_BAD_VPN2		0x007ffff0/* * Location of exception vectors. */#define RESET_EXC_VEC		0xbfc00000#define TLB_MISS_EXC_VEC	0x80000000#define XTLB_MISS_EXC_VEC	0x80000080#define CACHE_ERR_EXC_VEC	0x80000100#define GEN_EXC_VEC		0x80000180/* * Coprocessor 0 registers: */#define COP_0_TLB_INDEX		$0#define COP_0_TLB_RANDOM	$1#define COP_0_TLB_LO0		$2#define COP_0_TLB_LO1		$3#define COP_0_TLB_CONTEXT	$4#define COP_0_TLB_PG_MASK	$5#define COP_0_TLB_WIRED		$6#define COP_0_BAD_VADDR		$8#define COP_0_COUNT		$9#define COP_0_TLB_HI		$10#define COP_0_COMPARE		$11#define COP_0_STATUS_REG	$12#define COP_0_CAUSE_REG		$13#define COP_0_EXC_PC		$14#define COP_0_PRID		$15#define COP_0_CONFIG		$16#define COP_0_LLADDR		$17#define COP_0_WATCH_LO		$18#define COP_0_WATCH_HI		$19#define COP_0_TLB_XCONTEXT	$20#define COP_0_ECC		$26#define COP_0_CACHE_ERR		$27#define COP_0_TAG_LO		$28#define COP_0_TAG_HI		$29#define COP_0_ERROR_PC		$30/* RM7000 specific */#define COP_0_WATCH_1		$18#define COP_0_WATCH_2		$19#define COP_0_WATCH_M		$24#define COP_0_PC_COUNT		$25#define COP_0_PC_CTRL		$22#define	COP_0_ICR		$20		/* CFC */#define	COP_0_DERR_0		$26		/* CFC */#define	COP_0_DERR_1		$27		/* CFC *//* * Values for the code field in a break instruction. */#define BREAK_INSTR		0x0000000d#define BREAK_VAL_MASK		0x03ff0000#define BREAK_VAL_SHIFT		16#define BREAK_KDB_VAL		512#define BREAK_SSTEP_VAL		513#define BREAK_BRKPT_VAL		514#define BREAK_SOVER_VAL		515#define BREAK_DDB_VAL		516#define BREAK_KDB	(BREAK_INSTR | (BREAK_KDB_VAL << BREAK_VAL_SHIFT))#define BREAK_SSTEP	(BREAK_INSTR | (BREAK_SSTEP_VAL << BREAK_VAL_SHIFT))#define BREAK_BRKPT	(BREAK_INSTR | (BREAK_BRKPT_VAL << BREAK_VAL_SHIFT))#define BREAK_SOVER	(BREAK_INSTR | (BREAK_SOVER_VAL << BREAK_VAL_SHIFT))#define BREAK_DDB	(BREAK_INSTR | (BREAK_DDB_VAL << BREAK_VAL_SHIFT))/* * Mininum and maximum cache sizes. */#define MIN_CACHE_SIZE		(16 * 1024)#define MAX_CACHE_SIZE		(256 * 1024)/* * The floating point version and status registers. */#define	FPC_ID			$0#define	FPC_CSR			$31/* * The floating point coprocessor status register bits. */#define FPC_ROUNDING_BITS		0x00000003#define FPC_ROUND_RN			0x00000000#define FPC_ROUND_RZ			0x00000001#define FPC_ROUND_RP			0x00000002#define FPC_ROUND_RM			0x00000003#define FPC_STICKY_BITS			0x0000007c#define FPC_STICKY_INEXACT		0x00000004#define FPC_STICKY_UNDERFLOW		0x00000008#define FPC_STICKY_OVERFLOW		0x00000010#define FPC_STICKY_DIV0			0x00000020#define FPC_STICKY_INVALID		0x00000040#define FPC_ENABLE_BITS			0x00000f80#define FPC_ENABLE_INEXACT		0x00000080#define FPC_ENABLE_UNDERFLOW		0x00000100#define FPC_ENABLE_OVERFLOW		0x00000200#define FPC_ENABLE_DIV0			0x00000400#define FPC_ENABLE_INVALID		0x00000800#define FPC_EXCEPTION_BITS		0x0003f000#define FPC_EXCEPTION_INEXACT		0x00001000#define FPC_EXCEPTION_UNDERFLOW		0x00002000#define FPC_EXCEPTION_OVERFLOW		0x00004000#define FPC_EXCEPTION_DIV0		0x00008000#define FPC_EXCEPTION_INVALID		0x00010000#define FPC_EXCEPTION_UNIMPL		0x00020000#define FPC_COND_BIT			0x00800000#define FPC_FLUSH_BIT			0x01000000#define FPC_MBZ_BITS			0xfe7c0000

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -