var_regs.h
来自「eCos操作系统源码」· C头文件 代码 · 共 369 行 · 第 1/2 页
H
369 行
#ifndef CYGONCE_HAL_VAR_REGS_H#define CYGONCE_HAL_VAR_REGS_H//==========================================================================//// var_regs.h//// PowerPC 8xx variant CPU definitions////==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.// Copyright (C) 2002, 2003 Gary Thomas//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s): jskov// Contributors: jskov, gthomas// Date: 2000-02-04// Purpose: Provide MPC8xx register definitions// Description: Provide MPC8xx register definitions// The short difinitions (sans CYGARC_REG_) are exported only// if CYGARC_HAL_COMMON_EXPORT_CPU_MACROS is defined.// Usage: Included via the acrhitecture register header:// #include <cyg/hal/ppc_regs.h>// ...// ////####DESCRIPTIONEND####////==========================================================================#include <cyg/hal/plf_regs.h>//--------------------------------------------------------------------------// Instruction cache control.#define CYGARC_REG_IC_CST 560#define CYGARC_REG_IC_ADR 561#define CYGARC_REG_IC_DAT 562#define CYGARC_REG_IC_CMD_CE 0x02000000 // cache enable#define CYGARC_REG_IC_CMD_CD 0x04000000 // cache disable#define CYGARC_REG_IC_CMD_LL 0x06000000 // load & lock#define CYGARC_REG_IC_CMD_UL 0x08000000 // unlock line#define CYGARC_REG_IC_CMD_UA 0x0a000000 // unlock all#define CYGARC_REG_IC_CMD_IA 0x0c000000 // invalidate all#define CYGARC_REG_IC_ADR_SETID_SHIFT 4 // set id is bits 21-27#define CYGARC_REG_IC_ADR_WAY0 0x00000000 // select way0#define CYGARC_REG_IC_ADR_WAY1 0x00001000 // select way1#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define IC_CST CYGARC_REG_IC_CST#define IC_ADR CYGARC_REG_IC_ADR#define IC_DAT CYGARC_REG_IC_DAT#define IC_CMD_CE CYGARC_REG_IC_CMD_CE#define IC_CMD_CD CYGARC_REG_IC_CMD_CD#define IC_CMD_LL CYGARC_REG_IC_CMD_LL#define IC_CMD_UL CYGARC_REG_IC_CMD_UL#define IC_CMD_UA CYGARC_REG_IC_CMD_UA#define IC_CMD_IA CYGARC_REG_IC_CMD_IA#define IC_ADR_SETID_SHIFT CYGARC_REG_IC_ADR_SETID_SHIFT#define IC_ADR_WAY0 CYGARC_REG_IC_ADR_WAY0#define IC_ADR_WAY1 CYGARC_REG_IC_ADR_WAY1#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS//--------------------------------------------------------------------------// Data cache control.#define CYGARC_REG_DC_CST 568#define CYGARC_REG_DC_ADR 569#define CYGARC_REG_DC_DAT 570#define CYGARC_REG_DC_CMD_CE 0x02000000 // cache enable#define CYGARC_REG_DC_CMD_CD 0x04000000 // cache disable#define CYGARC_REG_DC_CMD_LL 0x06000000 // lock line#define CYGARC_REG_DC_CMD_UL 0x08000000 // unlock line#define CYGARC_REG_DC_CMD_UA 0x0a000000 // unlock all#define CYGARC_REG_DC_CMD_IA 0x0c000000 // invalidate all#define CYGARC_REG_DC_CMD_FL 0x0e000000 // flush line#define CYGARC_REG_DC_CMD_SW 0x01000000 // set writethrough#define CYGARC_REG_DC_CMD_CW 0x03000000 // clear writethrough#define CYGARC_REG_DC_CMD_SS 0x05000000 // set little endian swap#define CYGARC_REG_DC_CMD_CS 0x07000000 // clear little endian swap#define CYGARC_REG_DC_ADR_SETID_SHIFT 4 // set id is bits 21-27#define CYGARC_REG_DC_ADR_WAY0 0x00000000 // select way0#define CYGARC_REG_DC_ADR_WAY1 0x00001000 // select way1#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define DC_CST CYGARC_REG_DC_CST#define DC_ADR CYGARC_REG_DC_ADR#define DC_DAT CYGARC_REG_DC_DAT#define DC_CMD_CE CYGARC_REG_DC_CMD_CE#define DC_CMD_CD CYGARC_REG_DC_CMD_CD#define DC_CMD_LL CYGARC_REG_DC_CMD_LL#define DC_CMD_UL CYGARC_REG_DC_CMD_UL#define DC_CMD_UA CYGARC_REG_DC_CMD_UA#define DC_CMD_IA CYGARC_REG_DC_CMD_IA#define DC_CMD_FL CYGARC_REG_DC_CMD_FL#define DC_CMD_SW CYGARC_REG_DC_CMD_SW#define DC_CMD_CW CYGARC_REG_DC_CMD_CW#define DC_CMD_SS CYGARC_REG_DC_CMD_SS#define DC_CMD_CS CYGARC_REG_DC_CMD_CS#define DC_ADR_SETID_SHIFT CYGARC_REG_DC_ADR_SETID_SHIFT#define DC_ADR_WAY0 CYGARC_REG_DC_ADR_WAY0#define DC_ADR_WAY1 CYGARC_REG_DC_ADR_WAY1#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS//--------------------------------------------------------------------------// MMU control.#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define M_CASID 793 // current address space id register#define MI_CTR 784 // instruction MMU control#define MI_EPN 787 // instruction MMU effective page num#define MI_TWC 789 // instruction MMU tablewalk count#define MI_RPN 790 // instruction MMU real page num#define MI_DCAM 816 // instruction MMU CAM read#define MI_DRAM0 817 // instruction MMU RAM read 0#define MI_DRAM1 818 // instruction MMU RAM read 1#define MI_EPN_EPNMASK 0xfffff000 // effective page no mask#define MI_EPN_EV 0x00000200 // entry valid#define MI_RPN_RPNMASK 0xfffff000 // real page no mask#define MI_RPN_PPRWRW 0x000008f0 // page protection (rw/rw, page valid)#define MI_RPN_LPS 0x0000000C // large page size#define MI_RPN_SH 0x00000004 // shared page (1 = no ASID cmp)#define MI_RPN_CI 0x00000002 // cache inhibited#define MI_RPN_V 0x00000001 // entry valid#define MI_TWC_PS8MB 0x0000000c // page size = 8MB#define MI_TWC_G 0x00000010 // guarded#define MI_TWC_WT 0x00000002 // writethrough#define MI_TWC_V 0x00000001 // entry valid#define MI_CTR_INDX_SHIFT 8 // the ITLB_INDX starts at bit 23#define MD_CTR 792 // data MMU control#define MD_EPN 795 // data MMU effective page num#define MD_TWC 797 // data MMU tablewalk count#define MD_RPN 798 // data MMU real page num#define MD_DCAM 824 // data MMU CAM read#define MD_DRAM0 825 // data MMU RAM read 0#define MD_DRAM1 826 // data MMU RAM read 1#define MD_RPN_CHANGED 0x00000100 // page changed#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define CYGARC_REG_MI_CTR 784
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?