xref: /kvmtool/powerpc/cpu_info.h (revision d391177a7181c1ca48b76f4905740079e0226e4e)
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