Re: [PATCH v4 09/11] x86/head64.c: Early update ucode in 64-bit

From: H. Peter Anvin
Date: Fri Dec 21 2012 - 00:48:48 EST


Careful... accessing global varibles is tricky on the 32-bit side.

Yinghai Lu <yinghai@xxxxxxxxxx> wrote:

>Yeah, even better!
>
>32 bit has bootparms copied too
>
>
>On Thursday, December 20, 2012, Yu, Fenghua wrote:
>
>> > > From: yhlu.kernel@xxxxxxxxx <javascript:;> [mailto:
>> yhlu.kernel@xxxxxxxxx <javascript:;>] On Behalf
>> > Of
>> > > Yinghai Lu
>> > > On Thu, Dec 20, 2012 at 11:48 AM, Fenghua Yu
><fenghua.yu@xxxxxxxxx<javascript:;>
>> >
>> > > wrote:
>> > > > From: Fenghua Yu <fenghua.yu@xxxxxxxxx <javascript:;>>
>> > > >
>> > > > This updates ucode on BSP in 64-bit mode. Paging and virtual
>> > address
>> > > are
>> > > > working now.
>> > > >
>> > > > Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx <javascript:;>>
>> > > > ---
>> > > > arch/x86/kernel/head64.c | 6 ++++++
>> > > > 1 file changed, 6 insertions(+)
>> > > >
>> > > > diff --git a/arch/x86/kernel/head64.c
>b/arch/x86/kernel/head64.c
>> > > > index e1cb611..1ccbaf1 100644
>> > > > --- a/arch/x86/kernel/head64.c
>> > > > +++ b/arch/x86/kernel/head64.c
>> > > > @@ -26,6 +26,7 @@
>> > > > #include <asm/kdebug.h>
>> > > > #include <asm/e820.h>
>> > > > #include <asm/bios_ebda.h>
>> > > > +#include <asm/microcode.h>
>> > > >
>> > > > /*
>> > > > * Manage page tables very early on.
>> > > > @@ -179,6 +180,11 @@ void __init x86_64_start_kernel(char *
>> > > real_mode_data)
>> > > > }
>> > > > load_idt((const struct desc_ptr *)&idt_descr);
>> > > >
>> > > > + /*
>> > > > + * Load microcode early on BSP.
>> > > > + */
>> > > > + load_ucode_bsp(__va(real_mode_data));
>> > > > +
>> > > > copy_bootdata(__va(real_mode_data));
>> > >
>> > > can you make load_ucode_bsp take boot_param directly instead of
>> > > real_mode_data. ?
>> > >
>> > > could be
>> > >
>> > >
>> > > copy_bootdata(__va(real_mode_data));
>> > > +
>> > > + /* Load microcode early on BSP. */
>> > > + load_ucode_bsp(&boot_params);
>> > > +
>> > >
>> > > because copy_bootdata, already copy boot_params...
>> > >
>> > > Thanks
>> > >
>> > > Yinghai
>> >
>> > That's right. Will fix this.
>>
>> I'll call load_ucode_bsp(void) though which will access the global
>> boot_params variable.
>>
>> Thanks.
>>
>> -Fenghua
>>

--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/