Messages in this thread | | | Subject | Re: [3.9-rc1] Bug in bootup code or debug code? | From | Tetsuo Handa <> | Date | Thu, 14 Mar 2013 05:45:55 +0900 |
| |
H. Peter Anvin wrote: > On 03/13/2013 08:22 AM, Yu, Fenghua wrote: > >> > >> I found the location of "hardware reset" trigger. > >> > >> It is __pa_symbol(&boot_params) call, for I don't encounter "hardware > >> reset" if > >> I remove the "//" from below debug patch. > >> > >> This bug is not yet fixed as of 3.9.0-rc2-00188-g6c23cbb . > >> > >> --- a/arch/x86/kernel/microcode_intel_early.c > >> +++ b/arch/x86/kernel/microcode_intel_early.c > >> @@ -741,7 +741,9 @@ load_ucode_intel_bsp(void) > >> #ifdef CONFIG_X86_32 > >> struct boot_params *boot_params_p; > >> > >> + //while (1); > >> boot_params_p = (struct boot_params *)__pa_symbol(&boot_params); > >> + while (1); > >> ramdisk_image = boot_params_p->hdr.ramdisk_image; > >> ramdisk_size = boot_params_p->hdr.ramdisk_size; > >> initrd_start_early = ramdisk_image; > > > > Tetsuo and Dave, > > > > That's the place where we suspected to cause the problem. > > > > My question is: how to access global variable in linear mode in virtualization? __pa_symbol() is not a problem for native. > > > > What kind of virtualization are we talking about here? We should not be > running this code under any paravirtualized code path -- this is the > hypervisor's job to take care of this. For HVM, this should just work > the same way. > > -hpa > H. Peter Anvin wrote: > This is a CONFIG_DEBUG_VIRTUAL configuration, isn't it?
Yes. CONFIG_MICROCODE_INTEL_EARLY=y && CONFIG_64BIT=n && CONFIG_DEBUG_VIRTUAL=y on VMware Workstation/Player environment.
| |