Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Gabriel Somlo e2ab3f819f OvmfPkg: Q35: Use correct ACPI PM control register:bit
On PIIX4, function 3, the PMREGMISC register at offset 0x80, with
default value 0x00 has its bit 0 (PMIOSE) indicate whether the PM
IO space given in the PMBA register (offset 0x40) is enabled.
PMBA must be configured *before* setting this bit.

On Q35/ICH9+, function 0x1f, the equivalent role is fulfilled by
bit 7 (ACPI_EN) in the ACPI Control Register (ACPI_CNTL) at offset
0x44, also with a default value of 0x00.

Currently, OVMF hangs when Q35 reboots, because while PMBA is reset
by QEMU, the register at offset 0x80 (matching PMREGMISC on PIIX4)
is not reset, since it has a completely different meaning on LPC.
As such, the power management initialization logic in OVMF finds
the "PMIOSE" bit enabled after a reboot and decides to skip setting
PMBA. This causes the ACPI timer tick routine to read a constant
value from the wrong register, which in turn causes the ACPI delay
loop to hang indefinitely.

This patch modifies the Base[Rom]AcpiTimerLib constructors and the
PlatformPei ACPI PM init routines to use ACPI_CNTL:ACPI_EN instead
of PMREGMISC:PMIOSE when running on Q35.

Reported-by: Reza Jelveh <reza.jelveh@tuhh.de>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gabriel Somlo <somlo@cmu.edu>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17076 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-26 19:06:07 +00:00
AppPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ArmPkg ArmPkg: DebugPeCoffExtraActionLib: debugger commands are not errors 2015-03-02 16:19:26 +00:00
ArmPlatformPkg ArmVirtualizationPkg/ArmVirtualizationQemu: include XHCI driver 2015-03-16 19:57:06 +00:00
BaseTools NT32Pkg: Fix build errors from building secure boot with NT32 X64 2015-03-23 05:39:51 +00:00
BeagleBoardPkg ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg Pkg-Module: Add Coreboot module Package 2015-03-25 21:11:34 +00:00
CorebootPayloadPkg Pkg-Module: Add Coreboot Payload Package 2015-03-25 21:13:26 +00:00
CryptoPkg Upgrade to OpenSSL-0.9.8zf (released on 19-MAR-2015). 2015-03-25 08:13:32 +00:00
DuetPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Fix 32bit build failure. 2015-03-19 02:09:49 +00:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg ArmVirtualizationPkg: use a HOB to store device tree blob 2015-02-28 20:26:00 +00:00
EmulatorPkg EmulatorPkg: Update web page and wiki urls 2015-02-05 18:25:01 +00:00
FatBinPkg FatBinPkg: Update ARM and AArch64 binaries 2015-02-27 17:27:42 +00:00
IntelFrameworkModulePkg IntelFrameworkModulePkg: Remove a duplicated hardcode string 2015-03-18 00:45:50 +00:00
IntelFrameworkPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
IntelFspPkg Add UINT16/32/64 array and DSC include support. 2015-03-04 01:03:20 +00:00
IntelFspWrapperPkg Fix comments format error.Fsp1.1 update. 2015-02-12 15:13:37 +00:00
MdeModulePkg MdeModulePkg BootScriptExecutorDxe: Fix 32bit build failure. 2015-03-19 02:08:27 +00:00
MdePkg MdePkg: BaseSynchronizationLib: fix Increment/Decrement retvals for ARM 2015-03-20 12:17:02 +00:00
NetworkPkg PXE driver bug fix. 2015-03-26 04:49:30 +00:00
Nt32Pkg NT32Pkg: Fix build errors from building secure boot with NT32 X64 2015-03-23 05:39:51 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
OptionRomPkg OptionRomPkg: Update UndiRuntimeDxe driver. 2015-03-11 05:34:18 +00:00
OvmfPkg OvmfPkg: Q35: Use correct ACPI PM control register:bit 2015-03-26 19:06:07 +00:00
PcAtChipsetPkg PcAtChipsetPkg: Update BaseAcpiTimerLib 2015-02-28 05:34:38 +00:00
PerformancePkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
SecurityPkg SecurityPkg Variable: Reuse scratch data area(at the end of volatile variable store) 2015-03-17 06:41:40 +00:00
ShellBinPkg ShellBinPkg: Arm/AArch64 Shell binary update. 2015-02-27 17:54:29 +00:00
ShellPkg ShellPkg: update smbiosview for SMBIOS 3.0. 2015-03-17 08:12:59 +00:00
SourceLevelDebugPkg PeCoffExtraActionLibDebug: Restore debug registers in PeCoffExtraActionLibDebug 2015-03-25 01:51:23 +00:00
StdLib */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
StdLibPrivateInternalFiles */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UefiCpuPkg UefiCpuPkg/MpSerivce: add volatile qualifiers 2015-03-09 06:45:26 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Add code to identify D0 stepping ValleyView SoC. 2015-03-10 03:16:48 +00:00
Vlv2TbltDevicePkg Add patch-able PCD to support binary modification of MRC module. 2015-03-10 06:50:16 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat Updated version, missed the last two commits and to add the SVN Revision property (last part of the version value). 2014-08-22 16:08:47 +00:00
Maintainers.txt Maintainers.txt: http://tianocore.github.io => http://www.tianocore.org 2015-02-05 18:24:33 +00:00
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when building the Nt32Pkg emulation platform (enabled using the --nt32 flag). 2014-10-30 17:09:25 +00:00
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout 2014-07-28 17:37:40 +00:00