
Hi Simon,
On Sat, Mar 12, 2016 at 1:04 PM, Simon Glass sjg@chromium.org wrote:
Hi Bin,
On 10 March 2016 at 21:52, Bin Meng bmeng.cn@gmail.com wrote:
Hi Simon,
On Mon, Mar 7, 2016 at 10:27 AM, Simon Glass sjg@chromium.org wrote:
These two identifiers can be useful for drivers which need to adjust their behaviour depending on the CPU family or stepping (revision).
Signed-off-by: Simon Glass sjg@chromium.org
arch/x86/cpu/cpu.c | 10 ++++++++++ arch/x86/include/asm/cpu.h | 14 ++++++++++++++ 2 files changed, 24 insertions(+)
diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c index 8800e09..e2aad19 100644 --- a/arch/x86/cpu/cpu.c +++ b/arch/x86/cpu/cpu.c @@ -333,6 +333,16 @@ static inline void get_fms(struct cpuinfo_x86 *c, uint32_t tfms) c->x86_model += ((tfms >> 16) & 0xF) << 4; }
+u32 cpu_get_family_model(void) +{
return gd->arch.x86_device & 0x0fff0ff0;
The decrypted family and model are stored in gd->arch.x86 and gd->arch.x86_model. Returning raw data would still need the caller to parse it. Why not just return these directly?
I want to compare them in one shot to BROADWELL_FAMILY_ULT, etc.
What exactly are you suggesting?
I guess we can also break BROADWELL_FAMILY_ULT down to values and have them compared to gd->arch.x86 and gd->arch.x86_model. But I suppose you have your logic already working, so this is fine.
+}
+u32 cpu_get_stepping(void) +{
return gd->arch.x86_device & 0xf;
This is gd->arch.x86_mask.
OK. That's a funny name for stepping.
Yep, we can rename this to stepping in the future.
[snip]
Regards, Bin