[U-Boot] [PATCH 15/69] x86: cpu: Add functions to return the family and stepping

Bin Meng bmeng.cn at gmail.com
Mon Mar 14 05:22:54 CET 2016


Hi Simon,

On Sat, Mar 12, 2016 at 1:04 PM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 10 March 2016 at 21:52, Bin Meng <bmeng.cn at gmail.com> wrote:
>> Hi Simon,
>>
>> On Mon, Mar 7, 2016 at 10:27 AM, Simon Glass <sjg at 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 at 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


More information about the U-Boot mailing list