On Friday 09 January 2009 07:35:33 Len Brown wrote:
> applied
>
> --
> Len Brown, Intel Open Source Technology Center
>
> On Wed, 17 Dec 2008, Zhao Yakui wrote:
> > From: Zhao Yakui <yakui.z...@intel.com>
> >
> > On some boxes there exist both RSDT and XSDT table. But unfortunately
> > sometimes there exists the following error when XSDT table is used:
> >    a. 32/64X address mismatch
> >    b. The 32/64X FACS address mismatch
> >
> >    In such case the boot option of "acpi=rsdt" is provided so that
> > RSDT is tried instead of XSDT table when the system can't work well.

Great, now we still need a dmi blacklist with machines which are known
broken. Then we are at the patchset I posted about a year ago -> scnr.

I am going to post the missing two patches to make R40e and R50e work.

Thanks,

      Thomas
> >
> > http://bugzilla.kernel.org/show_bug.cgi?id=8246
> >
> > Signed-off-by: Zhao Yakui <yakui.z...@intel.com>
> > cc:Thomas Renninger <tr...@suse.de>
> > ---
> >  Documentation/kernel-parameters.txt |    2 ++
> >  arch/ia64/kernel/acpi.c             |    1 +
> >  arch/x86/kernel/acpi/boot.c         |    6 +++++-
> >  drivers/acpi/tables/tbutils.c       |    3 ++-
> >  include/acpi/acpixf.h               |    1 +
> >  5 files changed, 11 insertions(+), 2 deletions(-)
> >
> > Index: linux-2.6/arch/x86/kernel/acpi/boot.c
> > ===================================================================
> > --- linux-2.6.orig/arch/x86/kernel/acpi/boot.c
> > +++ linux-2.6/arch/x86/kernel/acpi/boot.c
> > @@ -47,7 +47,7 @@
> >  #endif
> >
> >  static int __initdata acpi_force = 0;
> > -
> > +u32 acpi_rsdt_forced;
> >  #ifdef     CONFIG_ACPI
> >  int acpi_disabled = 0;
> >  #else
> > @@ -1783,6 +1783,10 @@ static int __init parse_acpi(char *arg)
> >                     disable_acpi();
> >             acpi_ht = 1;
> >     }
> > +   /* acpi=rsdt use RSDT instead of XSDT */
> > +   else if (strcmp(arg, "rsdt") == 0) {
> > +           acpi_rsdt_forced = 1;
> > +   }
> >     /* "acpi=noirq" disables ACPI interrupt routing */
> >     else if (strcmp(arg, "noirq") == 0) {
> >             acpi_noirq_set();
> > Index: linux-2.6/include/acpi/acpixf.h
> > ===================================================================
> > --- linux-2.6.orig/include/acpi/acpixf.h
> > +++ linux-2.6/include/acpi/acpixf.h
> > @@ -48,6 +48,7 @@
> >  #include "actypes.h"
> >  #include "actbl.h"
> >
> > +extern u32 acpi_rsdt_forced;
> >  /*
> >   * Global interfaces
> >   */
> > Index: linux-2.6/drivers/acpi/tables/tbutils.c
> > ===================================================================
> > --- linux-2.6.orig/drivers/acpi/tables/tbutils.c
> > +++ linux-2.6/drivers/acpi/tables/tbutils.c
> > @@ -420,7 +420,8 @@ acpi_tb_parse_root_table(acpi_physical_a
> >
> >     /* Differentiate between RSDT and XSDT root tables */
> >
> > -   if (rsdp->revision > 1 && rsdp->xsdt_physical_address) {
> > +   if (rsdp->revision > 1 && rsdp->xsdt_physical_address
> > +                   && !acpi_rsdt_forced) {
> >             /*
> >              * Root table is an XSDT (64-bit physical addresses). We must 
> > use the
> >              * XSDT if the revision is > 1 and the XSDT pointer is present, 
> > as per
> > Index: linux-2.6/arch/ia64/kernel/acpi.c
> > ===================================================================
> > --- linux-2.6.orig/arch/ia64/kernel/acpi.c
> > +++ linux-2.6/arch/ia64/kernel/acpi.c
> > @@ -65,6 +65,7 @@ EXPORT_SYMBOL(pm_idle);
> >  void (*pm_power_off) (void);
> >  EXPORT_SYMBOL(pm_power_off);
> >
> > +u32 acpi_rsdt_forced;
> >  unsigned int acpi_cpei_override;
> >  unsigned int acpi_cpei_phys_cpuid;
> >
> > Index: linux-2.6/Documentation/kernel-parameters.txt
> > ===================================================================
> > --- linux-2.6.orig/Documentation/kernel-parameters.txt
> > +++ linux-2.6/Documentation/kernel-parameters.txt
> > @@ -139,6 +139,8 @@ and is between 256 and 4096 characters.
> >                     ht -- run only enough ACPI to enable Hyper Threading
> >                     strict -- Be less tolerant of platforms that are not
> >                             strictly ACPI specification compliant.
> > +                   rsdt -- RSDT is used instead of XSDT table when both
> > +                           exits.
> >
> >                     See also Documentation/power/pm.txt, pci=noacpi
> >
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > the body of a message to majord...@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html



------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel

Reply via email to