On Thu, Feb 21, 2013 at 7:23 PM, Laszlo Ersek <[email protected]> wrote:
> Patches 1 to 6 upgrade the FADT to ACPI 2.0 and present the PIIX3 Reset
> Control Register in it.

I think maybe 1 should be moved to follow 6.

Series Reviewed-by: Jordan Justen <[email protected]>

> 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
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
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

Reply via email to