RE: [tip:x86/microcode] x86/microcode_intel_early.c: Early updateucode on Intel's CPU

From: Yu, Fenghua
Date: Tue Dec 11 2012 - 12:26:32 EST


> -----Original Message-----
> From: yhlu.kernel@xxxxxxxxx [mailto:yhlu.kernel@xxxxxxxxx] On Behalf Of
> Yinghai Lu
> Sent: Tuesday, December 11, 2012 9:16 AM
> To: Borislav Petkov; Yinghai Lu; H. Peter Anvin; Yu, Fenghua;
> mingo@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; tglx@xxxxxxxxxxxxx;
> hpa@xxxxxxxxxxxxxxx; linux-tip-commits@xxxxxxxxxxxxxxx
> Subject: Re: [tip:x86/microcode] x86/microcode_intel_early.c: Early
> update ucode on Intel's CPU
>
> On Tue, Dec 11, 2012 at 9:06 AM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> > On Tue, Dec 11, 2012 at 09:00:55AM -0800, Yinghai Lu wrote:
> >> ok, then next question is how early it should be.
> >>
> >> before early_cpu_init/early_identify_cpu
> >>
> >> or just before check_bugs/identify_cpu
> >
> > Read the code. It's in x86_64_start_kernel on 64-bit.
> >
>
> No, that is not right place. initrd could be loaded anywhere like way
> high by bootloader.
>
> to make code simple, we should have following sequence in setup_arch
>
> early_ioremap_init()
> early_update_microcode()...
> early_cpu_init()
>
> early_update_microcode could use early_ioremap to access initrd ramdisk
> area.

The problem is mainly from 32-bit. We need to load microcode before paging is enabled (I'm changing load_ucode_intel_ap to be called before paging as well). That makes the coding not simple. It's better to load ucode as early as possible in 64-bit as well. I don't want to have two totally different sets of early loading ucode for 64-bit and 32-bit.

Thanks.

-Fenghua
--
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/