Il 22/02/2013 04:23, Laszlo Ersek ha scritto: > Patches 1 to 6 upgrade the FADT to ACPI 2.0 and present the PIIX3 Reset > Control Register in it. > > Patches 7 and 8 make sure that the ResetSystem(EfiResetCold) runtime > service provided by OVMF utilizes the PIIX3 RCR too. > > The series is bisectable. > > I have tested the end result with Fedora 18, RHEL-6.3, and Windows 8 > guests. At the end of this email the guest-visible FADTs are compared > (dumped in F18). Reset continues to work too when invoked from the Boot > Maintenance Manager. > > Laszlo Ersek (8): > OvmfPkg: bump commonly used ACPI table revision numbers > OvmfPkg: fold macros of unsupported PM1b register blocks into > Facp.aslc > OvmfPkg: fold macros of unsupported PM2 control reg. block into > Facp.aslc > OvmfPkg: fold macros of unsupported GPE1 register block into > Facp.aslc > OvmfPkg: upgrade the FADT to ACPI 2.0 without functional changes > OvmfPkg: report support for the PIIX3 reset register in the FADT > OvmfPkg: attempt to trigger cold reset through PIIX3 reset control > register > OvmfPkg: make sure ResetCold() and ResetWarm() never return > > OvmfPkg/AcpiTables/Platform.h | 34 ++++++++++----- > OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c | 8 +++- > OvmfPkg/AcpiTables/Facp.aslc | 46 +++++++++++++------- > OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf | 2 +- > 4 files changed, 60 insertions(+), 30 deletions(-) > > --- before/FACP.dsl 2013-02-22 02:20:48.000000000 +0100 > +++ after/FACP.dsl 2013-02-22 03:54:30.000000000 +0100 > @@ -1,95 +1,171 @@ > /* > * Intel ACPI Component Architecture > * AML Disassembler version 20090123 > * > - * Disassembly of FACP.aml, Fri Feb 22 02:20:48 2013 > + * Disassembly of FACP.aml, Fri Feb 22 03:54:30 2013 > * > * ACPI Data Table [FACP] > * > * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue > */ > > [000h 000 4] Signature : "FACP" /* Fixed ACPI > Description Table */ > -[004h 004 4] Table Length : 00000074 > -[008h 008 1] Revision : 01 > -[009h 009 1] Checksum : 98 > +[004h 004 4] Table Length : 000000F4 > +[008h 008 1] Revision : 03 > +[009h 009 1] Checksum : 23 > [00Ah 010 6] Oem ID : "OVMF " > [010h 016 8] Oem Table ID : "OVMFEDK2" > -[018h 024 4] Oem Revision : 20120804 > +[018h 024 4] Oem Revision : 20130221 > [01Ch 028 4] Asl Compiler ID : "OVMF" > -[020h 032 4] Asl Compiler Revision : 00000098 > +[020h 032 4] Asl Compiler Revision : 00000099 > > [024h 036 4] FACS Address : 3FB63000 > [028h 040 4] DSDT Address : 3FB5B000 > -[02Ch 044 1] Model : 01 > +[02Ch 044 1] Model : 00 > [02Dh 045 1] PM Profile : 00 > [02Eh 046 2] SCI Interrupt : 0009 > [030h 048 4] SMI Command Port : 000000B2 > [034h 052 1] ACPI Enable Value : F1 > [035h 053 1] ACPI Disable Value : F0 > [036h 054 1] S4BIOS Command : 00 > [037h 055 1] P-State Control : 00 > [038h 056 4] PM1A Event Block Address : 0000B000 > [03Ch 060 4] PM1B Event Block Address : 00000000 > [040h 064 4] PM1A Control Block Address : 0000B004 > [044h 068 4] PM1B Control Block Address : 00000000 > [048h 072 4] PM2 Control Block Address : 00000000 > [04Ch 076 4] PM Timer Block Address : 0000B008 > [050h 080 4] GPE0 Block Address : 0000AFE0 > [054h 084 4] GPE1 Block Address : 00000000 > [058h 088 1] PM1 Event Block Length : 04 > [059h 089 1] PM1 Control Block Length : 02 > [05Ah 090 1] PM2 Control Block Length : 00 > [05Bh 091 1] PM Timer Block Length : 04 > [05Ch 092 1] GPE0 Block Length : 04 > [05Dh 093 1] GPE1 Block Length : 00 > [05Eh 094 1] GPE1 Base Offset : 00 > [05Fh 095 1] _CST Support : 00 > [060h 096 2] C2 Latency : 0065 > [062h 098 2] C3 Latency : 03E9 > [064h 100 2] CPU Cache Size : 0000 > [066h 102 2] Cache Flush Stride : 0000 > [068h 104 1] Duty Cycle Offset : 00 > [069h 105 1] Duty Cycle Width : 00 > [06Ah 106 1] RTC Day Alarm Index : 00 > [06Bh 107 1] RTC Month Alarm Index : 00 > [06Ch 108 1] RTC Century Index : 00 > [06Dh 109 2] Boot Flags (decoded below) : 0000 > Legacy Devices Supported (V2) : 0 > 8042 Present on ports 60/64 (V2) : 0 > VGA Not Present (V4) : 0 > MSI Not Supported (V4) : 0 > PCIe ASPM Not Supported (V4) : 0 > [06Fh 111 1] Reserved : 00 > -[070h 112 4] Flags (decoded below) : 000000A5 > +[070h 112 4] Flags (decoded below) : 000004A5 > WBINVD instruction is operational (V1) : 1 > WBINVD flushes all caches (V1) : 0 > All CPUs support C1 (V1) : 1 > C2 works on MP system (V1) : 0 > Control Method Power Button (V1) : 0 > Control Method Sleep Button (V1) : 1 > RTC wakeup reg not in fixed space (V1) : 0 > RTC can wake system from S4 (V1) : 1 > 32-bit PM Timer (V1) : 0 > Docking Supported (V1) : 0 > - Reset Register Supported (V2) : 0 > + Reset Register Supported (V2) : 1 > Sealed Case (V3) : 0 > Headless - No Video (V3) : 0 > Use native instr after SLP_TYPx (V3) : 0 > PCIEXP_WAK Bits Supported (V4) : 0 > Use Platform Timer (V4) : 0 > RTC_STS valid on S4 wake (V4) : 0 > Remote Power-on capable (V4) : 0 > Use APIC Cluster Model (V4) : 0 > Use APIC Physical Destination Mode (V4) : 0 > > +[074h 116 12] Reset Register : <Generic Address Structure> > +[074h 116 1] Space ID : 01 (SystemIO) > +[075h 117 1] Bit Width : 08 > +[076h 118 1] Bit Offset : 00 > +[077h 119 1] Access Width : 00 > +[078h 120 8] Address : 0000000000000CF9 > + > +[080h 128 1] Value to cause reset : 06 > +[081h 129 3] Reserved : 000000 > +[084h 132 8] FACS Address : 0000000000000000 > +[08Ch 140 8] DSDT Address : 000000003FB5B000 > +[094h 148 12] PM1A Event Block : <Generic Address Structure> > +[094h 148 1] Space ID : 01 (SystemIO) > +[095h 149 1] Bit Width : 20 > +[096h 150 1] Bit Offset : 00 > +[097h 151 1] Access Width : 00 > +[098h 152 8] Address : 000000000000B000 > + > +[0A0h 160 12] PM1B Event Block : <Generic Address Structure> > +[0A0h 160 1] Space ID : 00 (SystemMemory) > +[0A1h 161 1] Bit Width : 00 > +[0A2h 162 1] Bit Offset : 00 > +[0A3h 163 1] Access Width : 00 > +[0A4h 164 8] Address : 0000000000000000 > + > +[0ACh 172 12] PM1A Control Block : <Generic Address Structure> > +[0ACh 172 1] Space ID : 01 (SystemIO) > +[0ADh 173 1] Bit Width : 10 > +[0AEh 174 1] Bit Offset : 00 > +[0AFh 175 1] Access Width : 00 > +[0B0h 176 8] Address : 000000000000B004 > + > +[0B8h 184 12] PM1B Control Block : <Generic Address Structure> > +[0B8h 184 1] Space ID : 00 (SystemMemory) > +[0B9h 185 1] Bit Width : 00 > +[0BAh 186 1] Bit Offset : 00 > +[0BBh 187 1] Access Width : 00 > +[0BCh 188 8] Address : 0000000000000000 > + > +[0C4h 196 12] PM2 Control Block : <Generic Address Structure> > +[0C4h 196 1] Space ID : 00 (SystemMemory) > +[0C5h 197 1] Bit Width : 00 > +[0C6h 198 1] Bit Offset : 00 > +[0C7h 199 1] Access Width : 00 > +[0C8h 200 8] Address : 0000000000000000 > + > +[0D0h 208 12] PM Timer Block : <Generic Address Structure> > +[0D0h 208 1] Space ID : 01 (SystemIO) > +[0D1h 209 1] Bit Width : 20 > +[0D2h 210 1] Bit Offset : 00 > +[0D3h 211 1] Access Width : 00 > +[0D4h 212 8] Address : 000000000000B008 > + > +[0DCh 220 12] GPE0 Block : <Generic Address Structure> > +[0DCh 220 1] Space ID : 01 (SystemIO) > +[0DDh 221 1] Bit Width : 20 > +[0DEh 222 1] Bit Offset : 00 > +[0DFh 223 1] Access Width : 00 > +[0E0h 224 8] Address : 000000000000AFE0 > + > +[0E8h 232 12] GPE1 Block : <Generic Address Structure> > +[0E8h 232 1] Space ID : 00 (SystemMemory) > +[0E9h 233 1] Bit Width : 00 > +[0EAh 234 1] Bit Offset : 00 > +[0EBh 235 1] Access Width : 00 > +[0ECh 236 8] Address : 0000000000000000 > + > + > Raw Table Data > > - 0000: 46 41 43 50 74 00 00 00 01 98 4F 56 4D 46 20 20 FACPt.....OVMF > - 0010: 4F 56 4D 46 45 44 4B 32 04 08 12 20 4F 56 4D 46 OVMFEDK2... OVMF > - 0020: 98 00 00 00 00 30 B6 3F 00 B0 B5 3F 01 00 09 00 .....0.?...?.... > + 0000: 46 41 43 50 F4 00 00 00 03 23 4F 56 4D 46 20 20 FACP.....#OVMF > + 0010: 4F 56 4D 46 45 44 4B 32 21 02 13 20 4F 56 4D 46 OVMFEDK2!.. OVMF > + 0020: 99 00 00 00 00 30 B6 3F 00 B0 B5 3F 00 00 09 00 .....0.?...?.... > 0030: B2 00 00 00 F1 F0 00 00 00 B0 00 00 00 00 00 00 ................ > 0040: 04 B0 00 00 00 00 00 00 00 00 00 00 08 B0 00 00 ................ > 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 ................ > 0060: 65 00 E9 03 00 00 00 00 00 00 00 00 00 00 00 00 e............... > - 0070: A5 00 00 00 .... > + 0070: A5 04 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00 ................ > + 0080: 06 00 00 00 00 00 00 00 00 00 00 00 00 B0 B5 3F ...............? > + 0090: 00 00 00 00 01 20 00 00 00 B0 00 00 00 00 00 00 ..... .......... > + 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00 ................ > + 00B0: 04 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > + 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > + 00D0: 01 20 00 00 08 B0 00 00 00 00 00 00 01 20 00 00 . ........... .. > + 00E0: E0 AF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > + 00F0: 00 00 00 00 .... > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_feb >
Reviewed-by: Paolo Bonzini <[email protected]> ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
