diff options
author | Anton Kochkov <anton.kochkov@gmail.com> | 2012-07-21 07:29:48 +0400 |
---|---|---|
committer | Peter Stuge <peter@stuge.se> | 2012-07-21 17:35:46 +0200 |
commit | 59b36f1026090ea9b39ca2bc8386c8addf1b03d6 (patch) | |
tree | 544cf2d39f7bd51c7004aa0a8e133def13e52a0e /util/msrtool/msrtool.h | |
parent | c7fc4422a0039b6fd6c44bd98050ec648ee0312a (diff) |
msrtool: Factor out cpuid() from target probe functions into main()
Almost all probe functions called cpuid(). Those calls are replaced
by a single cpuid() call in main() and a new parameter to the target
probe functions with the cpuid() result.
The vendor_t and struct cpuid_t definitions are moved closer to the
top of msrtool.h and the vendor_t enum is reformatted to simplify
addition of further values.
Change-Id: Icd615636207499cfa46b8b99bf819ef8ca2d97c0
Signed-off-by: Anton Kochkov <anton.kochkov@gmail.com>
Signed-off-by: Peter Stuge <peter@stuge.se>
Reviewed-on: http://review.coreboot.org/1259
Tested-by: build bot (Jenkins)
Diffstat (limited to 'util/msrtool/msrtool.h')
-rw-r--r-- | util/msrtool/msrtool.h | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/util/msrtool/msrtool.h b/util/msrtool/msrtool.h index 73671e5ad3..2c13862bf0 100644 --- a/util/msrtool/msrtool.h +++ b/util/msrtool/msrtool.h @@ -97,10 +97,24 @@ struct msrdef { #define MAX_CORES 8 +typedef enum { + VENDOR_INTEL = 1, + VENDOR_AMD = 2, +} vendor_t; + +struct cpuid_t { + uint8_t family; + uint8_t model; + uint8_t stepping; + uint8_t ext_family; + uint8_t ext_model; + vendor_t vendor; +}; + struct targetdef { const char *name; const char *prettyname; - int (*probe)(const struct targetdef *target); + int (*probe)(const struct targetdef *target, const struct cpuid_t *id); const struct msrdef *msrs; }; @@ -126,18 +140,6 @@ struct sysdef { #define SYSTEM_EOT .name = NULL #define SYSTEM_ISEOT(s) (NULL == (s).name) -typedef enum { VENDOR_INTEL = 1, VENDOR_AMD = 2 } vendor_t; - -struct cpuid_t { - uint8_t family; - uint8_t model; - uint8_t stepping; - uint8_t ext_family; - uint8_t ext_model; - vendor_t vendor; -}; - - extern const struct sysdef *sys; extern uint8_t targets_found; @@ -201,51 +203,51 @@ extern int freebsd_rdmsr(uint8_t cpu, uint32_t addr, struct msr *val); /** target externs **/ /* geodegx2.c */ -extern int geodegx2_probe(const struct targetdef *t); +extern int geodegx2_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef geodegx2_msrs[]; /* geodelx.c */ -extern int geodelx_probe(const struct targetdef *t); +extern int geodelx_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef geodelx_msrs[]; /* cs5536.c */ -extern int cs5536_probe(const struct targetdef *t); +extern int cs5536_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef cs5536_msrs[]; /* k8.c */ -extern int k8_probe(const struct targetdef *t); +extern int k8_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef k8_msrs[]; /* intel_pentium3_early.c */ -extern int intel_pentium3_early_probe(const struct targetdef *t); +extern int intel_pentium3_early_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_pentium3_early_msrs[]; /* intel_pentium3.c */ -extern int intel_pentium3_probe(const struct targetdef *t); +extern int intel_pentium3_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_pentium3_msrs[]; /* intel_core1.c */ -extern int intel_core1_probe(const struct targetdef *t); +extern int intel_core1_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_core1_msrs[]; /* intel_core2_early.c */ -extern int intel_core2_early_probe(const struct targetdef *t); +extern int intel_core2_early_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_core2_early_msrs[]; /* intel_core2_later.c */ -extern int intel_core2_later_probe(const struct targetdef *t); +extern int intel_core2_later_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_core2_later_msrs[]; /* intel_pentium4_early.c */ -extern int intel_pentium4_early_probe(const struct targetdef *t); +extern int intel_pentium4_early_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_pentium4_early_msrs[]; /* intel_pentium4_later.c */ -extern int intel_pentium4_later_probe(const struct targetdef *t); +extern int intel_pentium4_later_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_pentium4_later_msrs[]; /* intel_nehalem.c */ -extern int intel_nehalem_probe(const struct targetdef *t); +extern int intel_nehalem_probe(const struct targetdef *t, const struct cpuid_t *id); extern const struct msrdef intel_nehalem_msrs[]; #endif /* MSRTOOL_H */ |