Messages in this thread | | | Subject | Re: [PATCH v4 09/11] x86/head64.c: Early update ucode in 64-bit | From | "H. Peter Anvin" <> | Date | Thu, 20 Dec 2012 21:48:32 -0800 |
| |
Careful... accessing global varibles is tricky on the 32-bit side.
Yinghai Lu <yinghai@kernel.org> wrote:
>Yeah, even better! > >32 bit has bootparms copied too > > >On Thursday, December 20, 2012, Yu, Fenghua wrote: > >> > > From: yhlu.kernel@gmail.com <javascript:;> [mailto: >> yhlu.kernel@gmail.com <javascript:;>] On Behalf >> > Of >> > > Yinghai Lu >> > > On Thu, Dec 20, 2012 at 11:48 AM, Fenghua Yu ><fenghua.yu@intel.com<javascript:;> >> > >> > > wrote: >> > > > From: Fenghua Yu <fenghua.yu@intel.com <javascript:;>> >> > > > >> > > > This updates ucode on BSP in 64-bit mode. Paging and virtual >> > address >> > > are >> > > > working now. >> > > > >> > > > Signed-off-by: Fenghua Yu <fenghua.yu@intel.com <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.
| |