cputable.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
- /*
- * BK Id: SCCS/s.cputable.h 1.3 08/19/01 22:31:46 paulus
- */
- /*
- * include/asm-ppc/cputable.h
- *
- * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
- *
- * This program 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 of the License, or (at your option) any later version.
- */
- #ifndef __ASM_PPC_CPUTABLE_H
- #define __ASM_PPC_CPUTABLE_H
- /* Exposed to userland CPU features */
- #define PPC_FEATURE_32 0x80000000
- #define PPC_FEATURE_64 0x40000000
- #define PPC_FEATURE_601_INSTR 0x20000000
- #define PPC_FEATURE_HAS_ALTIVEC 0x10000000
- #define PPC_FEATURE_HAS_FPU 0x08000000
- #define PPC_FEATURE_HAS_MMU 0x04000000
- #define PPC_FEATURE_HAS_4xxMAC 0x02000000
- #define PPC_FEATURE_UNIFIED_CACHE 0x01000000
- #ifdef __KERNEL__
- #ifndef __ASSEMBLY__
- /* This structure can grow, it's real size is used by head.S code
- * via the mkdefs mecanism.
- */
- struct cpu_spec {
- /* CPU is matched via (PVR & pvr_mask) == pvr_value */
- unsigned int pvr_mask;
- unsigned int pvr_value;
- char *cpu_name;
- unsigned int cpu_features; /* Kernel features */
- unsigned int cpu_user_features; /* Userland features */
- /* cache line sizes */
- unsigned int icache_bsize;
- unsigned int dcache_bsize;
- /* this is called to initialize various CPU bits like L1 cache,
- * BHT, SPD, etc... from head.S before branching to identify_machine
- */
- void (*cpu_setup)(int cpu_nr);
- };
- extern struct cpu_spec cpu_specs[];
- extern struct cpu_spec *cur_cpu_spec[];
- #endif /* __ASSEMBLY__ */
- /* CPU kernel features */
- #define CPU_FTR_SPLIT_ID_CACHE 0x00000001
- #define CPU_FTR_L2CR 0x00000002
- #define CPU_FTR_SPEC7450 0x00000004
- #define CPU_FTR_ALTIVEC 0x00000008
- #define CPU_FTR_TAU 0x00000010
- #define CPU_FTR_CAN_DOZE 0x00000020
- #define CPU_FTR_USE_TB 0x00000040
- #define CPU_FTR_604_PERF_MON 0x00000080
- #define CPU_FTR_601 0x00000100
- #define CPU_FTR_HPTE_TABLE 0x00000200
- #ifdef __ASSEMBLY__
- #define BEGIN_FTR_SECTION 98:
- #define END_FTR_SECTION(msk, val)
- 99:
- .section __ftr_fixup,"a";
- .align 2;
- .long msk;
- .long val;
- .long 98b;
- .long 99b;
- .previous
- #define END_FTR_SECTION_IFSET(msk) END_FTR_SECTION((msk), (msk))
- #define END_FTR_SECTION_IFCLR(msk) END_FTR_SECTION((msk), 0)
- #endif /* __ASSEMBLY__ */
- #endif /* __ASM_PPC_CPUTABLE_H */
- #endif /* __KERNEL__ */