WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH]ACPI: workaround for S3 fail in two facs tables c

To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>, "Gang Wei" <gang.wei@xxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH]ACPI: workaround for S3 fail in two facs tables case
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Thu, 25 Feb 2010 13:17:17 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 25 Feb 2010 05:18:31 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C7AC1662.B5A7%keir.fraser@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <E6467867A6B05E4FA831B7DF29925F5C40BBA48B@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <C7AC1662.B5A7%keir.fraser@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> Keir Fraser <keir.fraser@xxxxxxxxxxxxx> 25.02.10 12:58 >>>
>What do you think? And I was looking at Linux 2.6.27 -- has behaviour there
>chanegd since then?

Not much, but it got improved - 2.6.33 has

        /*
         * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
         * Later code will always use the X 64-bit field. Also, check for an
         * address mismatch between the 32-bit and 64-bit address fields
         * (FIRMWARE_CTRL/X_FIRMWARE_CTRL, DSDT/X_DSDT) which would indicate
         * the presence of two FACS or two DSDT tables.
         */
        if (!acpi_gbl_FADT.Xfacs) {
                acpi_gbl_FADT.Xfacs = (u64) acpi_gbl_FADT.facs;
        } else if (acpi_gbl_FADT.facs &&
                   (acpi_gbl_FADT.Xfacs != (u64) acpi_gbl_FADT.facs)) {
                ACPI_WARNING((AE_INFO,
                    "32/64 FACS address mismatch in FADT - two FACS tables!"));
        }

and

        /*
         * Check for FACS and DSDT address mismatches. An address mismatch 
between
         * the 32-bit and 64-bit address fields (FIRMWARE_CTRL/X_FIRMWARE_CTRL 
and
         * DSDT/X_DSDT) would indicate the presence of two FACS or two DSDT 
tables.
         */
        if (acpi_gbl_FADT.facs &&
            (acpi_gbl_FADT.Xfacs != (u64) acpi_gbl_FADT.facs)) {
                ACPI_WARNING((AE_INFO,
                              "32/64X FACS address mismatch in FADT - "
                              "%8.8X/%8.8X%8.8X, using 32",
                              acpi_gbl_FADT.facs,
                              ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xfacs)));

                acpi_gbl_FADT.Xfacs = (u64) acpi_gbl_FADT.facs;
        }

(and as the comments say, each repeated for the DSDT).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel