1*d391177aSMatt Evans /* 2*d391177aSMatt Evans * PPC CPU identification 3*d391177aSMatt Evans * 4*d391177aSMatt Evans * Copyright 2012 Matt Evans <matt@ozlabs.org>, IBM Corporation. 5*d391177aSMatt Evans * 6*d391177aSMatt Evans * This program is free software; you can redistribute it and/or modify it 7*d391177aSMatt Evans * under the terms of the GNU General Public License version 2 as published 8*d391177aSMatt Evans * by the Free Software Foundation. 9*d391177aSMatt Evans */ 10*d391177aSMatt Evans 11*d391177aSMatt Evans #ifndef CPU_INFO_H 12*d391177aSMatt Evans #define CPU_INFO_H 13*d391177aSMatt Evans 14*d391177aSMatt Evans #include <linux/types.h> 15*d391177aSMatt Evans #include <linux/kernel.h> 16*d391177aSMatt Evans 17*d391177aSMatt Evans struct cpu_info { 18*d391177aSMatt Evans const char *name; 19*d391177aSMatt Evans u32 *page_sizes_prop; 20*d391177aSMatt Evans u32 page_sizes_prop_len; 21*d391177aSMatt Evans u32 *segment_sizes_prop; 22*d391177aSMatt Evans u32 segment_sizes_prop_len; 23*d391177aSMatt Evans u32 slb_size; 24*d391177aSMatt Evans u32 tb_freq; 25*d391177aSMatt Evans u32 d_bsize; 26*d391177aSMatt Evans u32 i_bsize; 27*d391177aSMatt Evans u32 flags; 28*d391177aSMatt Evans }; 29*d391177aSMatt Evans 30*d391177aSMatt Evans struct pvr_info { 31*d391177aSMatt Evans u32 pvr_mask; 32*d391177aSMatt Evans u32 pvr; 33*d391177aSMatt Evans struct cpu_info *cpu_info; 34*d391177aSMatt Evans }; 35*d391177aSMatt Evans 36*d391177aSMatt Evans /* Misc capabilities/CPU properties */ 37*d391177aSMatt Evans #define CPUINFO_FLAG_DFP 0x00000001 38*d391177aSMatt Evans #define CPUINFO_FLAG_VMX 0x00000002 39*d391177aSMatt Evans #define CPUINFO_FLAG_VSX 0x00000004 40*d391177aSMatt Evans 41*d391177aSMatt Evans struct cpu_info *find_cpu_info(u32 pvr); 42*d391177aSMatt Evans 43*d391177aSMatt Evans #endif 44