Laszlo, Yes! After I switched to a newer platform the system can boot to Shell very well!
Thank you very much for your patient help. Regards, Ray >-----Original Message----- >From: Laszlo Ersek [mailto:[email protected]] >Sent: Friday, March 18, 2016 3:02 PM >To: Ni, Ruiyu <[email protected]> >Cc: Paolo Bonzini <[email protected]>; Justen, Jordan L ><[email protected]>; [email protected] ><[email protected]> >Subject: Re: [edk2] Software SMI STS bit is not set when writing port B2 in >QEMU Q35 > >On 03/18/16 04:23, Ni, Ruiyu wrote: >> Laszlo, >> I downloaded the stable 4.4.6 and build it myself. >> 1. enable KVM as a module in "make menuconfig" >> 2. "make -j3" >> 2. install the modules/kernel: "sudo make install_modules" and "sudo make >> install" >> 3. update the boot loader "sudo update-grub2" >> 4. reboot to use the new kernel "sudo reboot" >> >> I can confirm that the new kernel is used because in the first time I built >> the kernel, >> I forgot to turn on KVM which resulted the QEMU failed to start. >> After I turned on the KVM in "make menuconfig", the new kernel can start >> QEMU. >> >> However, I got the same result as that when I used the 4.4.1 in ppa. >> The QEMU stops at UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c : >> SmmRelocateBases() >> in the line: while (!mRebased[BspIndex]); >> >> What else did I miss? >> >> Is there any advanced feature requirement to the HOST CPU besides the >> fundamental VT? >> Could it because my HOST CPU is too old? >> Please forgive my ignorance. :( >> I attached the /proc/cpuinfo. > >I think you didn't miss anything. Thank you for going the extra mile and >building your kernel. > >I believe it is possible that your host CPU is too old, but I can't say >for sure. I'd like to ask Paolo for help with that. > >Can you please post the output of the following command: > > tail /sys/module/kvm_intel/parameters/* > >If the output says that "unrestricted_guest" is "N", then it could be a >problem. Paolo should correct me if necessary, but when entering SMM, it >is real mode, and for virtualizing real mode, you need "unrestricted_guest". > >KVM can also emulate some aspects of real mode, if you lack >"unrestricted_guest" (see "emulate_invalid_guest_state" as well in the >output of the above command -- it defaults to Y). > >... Hm, according to wikipedia ><https://en.wikipedia.org/wiki/X86_virtualization>, > > Intel started to include Extended Page Tables (EPT), a technology > for page-table virtualization, since the Nehalem architecture, > released in 2008. In 2010, Westmere added support for launching the > logical processor directly in real mode – a feature called > "unrestricted guest", which requires EPT to work. > >I don't see "ept" in your "cpuinfo.txt" file. > >http://ark.intel.com/products/30784/Intel-Core2-Duo-Processor-E6750-4M-Cache-2_66-GHz-1333-MHz-FSB > >FWIW, my old company workstation, a HP Z400 with "Intel(R) Xeon(R) CPU >W3550", also lacks "unrestricted_guest" (although it does have EPT). > >http://ark.intel.com/products/39720/Intel-Xeon-Processor-W3550-8M-Cache-3_06-GHz-4_80-GTs-Intel-QPI > >I've retested SMM in OVMF just now, on that workstation, and it works >fine. (The host kernel is "4.4.3-201.fc22.x86_64", for the record.) > >So I think your host processor might be too old indeed, but I can't tell >which feature exactly is missing. :( > >... Hm, wait a second, maybe I can. It could be EPT after all. I >reloaded my kvm_intel module with ept=N (i.e., it wouldn't use EPT even >if the host processor provided it), and indeed my guest failed to boot >as well; it got stuck in OVMF while pegging a few host CPU cores. The >last lines I saw in the log were: > >Detect CPU count: 8 >Does not find any HOB stored CPU BIST information! > >Can you try on a less ancient machine? > >Thanks >Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

