On 2015-11-03 13:01:17, Laszlo Ersek wrote:
> Cc: Paolo Bonzini <pbonz...@redhat.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
> ---
> 
> Notes:
>     v4:
>     - update to current test results
>     
>     v3:
>     - this documentation is not accurate any longer, but since Paolo and
>       myself are getting different test results, I'm not bothering updating
>       this until our results converge
>     
>     v2:
>     - documented "-nx" VCPU feature flag
>       <http://thread.gmane.org/gmane.comp.bios.edk2.devel/952/focus=978>
> 
>  OvmfPkg/README | 53 ++++++++++++++++++++
>  1 file changed, 53 insertions(+)
> 
> diff --git a/OvmfPkg/README b/OvmfPkg/README
> index 147e6e0..575dfe8 100644
> --- a/OvmfPkg/README
> +++ b/OvmfPkg/README
> @@ -118,6 +118,59 @@ $ OvmfPkg/build.sh -a X64 qemu -cdrom 
> /path/to/disk-image.iso
>  To build a 32-bit OVMF without debug messages using GCC 4.5:
>  $ OvmfPkg/build.sh -a IA32 -b RELEASE -t GCC45
>  
> +=== SMM support ===
> +
> +OVMF is capable of utilizing SMM if the underlying QEMU or KVM hypervisor
> +emulates SMM. SMM is put to use in the S3 suspend and resume infrastructure,
> +and in the UEFI variable driver stack. The purpose is (virtual) hardware
> +separation between the runtime guest OS and the firmware (OVMF), with the
> +intent to make Secure Boot actually secure, by preventing the runtime guest 
> OS
> +from tampering with the variable store and S3 areas.
> +
> +For SMM support, OVMF must be built with the "-D SMM_REQUIRE" option. The
> +resultant firmware binary will check if QEMU actually provides SMM emulation;
> +if it doesn't, then OVMF will log an error and trigger an assertion failure
> +during boot (even in RELEASE builds). Both the naming of the flag 
> (SMM_REQUIRE,
> +instead of SMM_ENABLE), and this behavior are consistent with the goal
> +described above: this is supposed to be a security feature, and fallbacks are
> +not allowed. Similarly, a pflash-backed variable store is a requirement.
> +
> +QEMU should be started with the options listed below (in addition to any 
> other
> +guest-specific flags). The command line should be gradually composed from the
> +hints below. The minimum required QEMU release (and Q35 machine type) is 2.5.
> +
> +* QEMU binary and options specific to 32-bit guests:
> +

Should we add this?

'\' is used to extend the command line to multiple lines, and '^' can
be used on windows.

> +  qemu-system-i386 -cpu coreduo,-nx \

Sometimes we put '$' before a command prompt. I know there is no
standard prompt, but that is the one that I usually use in examples.

> +
> +  or
> +
> +  qemu-system-x86_64 -cpu <MODEL>,-lm,-nx \
> +
> +* QEMU binary for running 64-bit guests (no particular options):
> +
> +  qemu-system-x86_64 \
> +
> +* Flags common to all SMM scenarios (only the Q35 machine type is supported):
> +
> +  -machine q35,smm=on,accel=(tcg|kvm) \
> +  -m ... \
> +  -smp ... \
> +  -global driver=cfi.pflash01,property=secure,value=on \
> +  -drive if=pflash,format=raw,unit=0,file=OVMF_CODE.fd,readonly=on \
> +  -drive if=pflash,format=raw,unit=1,file=copy_of_OVMF_VARS.fd \
> +
> +* In order to enable S3, add:
> +
> +  -global ICH9-LPC.disable_s3=0 \
> +
> +For KVM acceleration, a v4.4 or later Linux kernel is required on the host.

I think maybe we should put the linux + qemu requirements at the top
of the SMM section. Something like:

SMM support requires QEMU 2.5. SMM with KVM requires Linux 4.4 (host).

> +
> +Dependent on the development status of the
> +"UefiCpuPkg/Universal/Acpi/S3Resume2Pei" module, S3 resume may not work in
> +OvmfPkg/OvmfPkgX64.dsc builds. In such cases, OvmfPkg/OvmfPkgIa32X64.dsc is
> +recommended for running X64 guests.

Is this paragraph needed? I don't think we should have to say that
UefiCpuPkg/S3Resume2Pei might be broken. Is it still broken?

Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com>

> +
>  === Network Support ===
>  
>  OVMF provides a UEFI network stack by default. Its lowest level driver is the
> -- 
> 1.8.3.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to