xref: /kvmtool/powerpc/cpu_info.h (revision de494ec5a1b557d4ac61d6cd67d1a62630a5498a)
1d391177aSMatt Evans /*
2d391177aSMatt Evans  * PPC CPU identification
3d391177aSMatt Evans  *
4d391177aSMatt Evans  * Copyright 2012 Matt Evans <matt@ozlabs.org>, IBM Corporation.
5d391177aSMatt Evans  *
6d391177aSMatt Evans  * This program is free software; you can redistribute it and/or modify it
7d391177aSMatt Evans  * under the terms of the GNU General Public License version 2 as published
8d391177aSMatt Evans  * by the Free Software Foundation.
9d391177aSMatt Evans  */
10d391177aSMatt Evans 
11d391177aSMatt Evans #ifndef CPU_INFO_H
12d391177aSMatt Evans #define CPU_INFO_H
13d391177aSMatt Evans 
144a75c603SMichael Ellerman #include <kvm/kvm.h>
154a75c603SMichael Ellerman 
16d391177aSMatt Evans #include <linux/types.h>
17d391177aSMatt Evans #include <linux/kernel.h>
18*de494ec5SMichael Ellerman #include <linux/kvm.h>
19d391177aSMatt Evans 
20d391177aSMatt Evans struct cpu_info {
21d391177aSMatt Evans 	const char	*name;
22d391177aSMatt Evans 	u32 		*segment_sizes_prop;
23d391177aSMatt Evans 	u32		segment_sizes_prop_len;
24d391177aSMatt Evans 	u32		slb_size;
2595477af3SMichael Ellerman 	u32		tb_freq; /* timebase frequency */
2695477af3SMichael Ellerman 	u32		d_bsize; /* d-cache block size */
2795477af3SMichael Ellerman 	u32		i_bsize; /* i-cache block size */
28d391177aSMatt Evans 	u32		flags;
29*de494ec5SMichael Ellerman 	struct kvm_ppc_smmu_info mmu_info;
30d391177aSMatt Evans };
31d391177aSMatt Evans 
32d391177aSMatt Evans struct pvr_info {
33d391177aSMatt Evans 	u32		pvr_mask;
34d391177aSMatt Evans 	u32		pvr;
35d391177aSMatt Evans 	struct cpu_info *cpu_info;
36d391177aSMatt Evans };
37d391177aSMatt Evans 
38d391177aSMatt Evans /* Misc capabilities/CPU properties */
39d391177aSMatt Evans #define CPUINFO_FLAG_DFP	0x00000001
40d391177aSMatt Evans #define CPUINFO_FLAG_VMX	0x00000002
41d391177aSMatt Evans #define CPUINFO_FLAG_VSX	0x00000004
42d391177aSMatt Evans 
434a75c603SMichael Ellerman struct cpu_info *find_cpu_info(struct kvm *kvm);
44d391177aSMatt Evans 
45d391177aSMatt Evans #endif
46