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.zhao@xxxxxxxxx> > > > > 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.zhao@xxxxxxxxx> > > cc:Thomas Renninger <trenn@xxxxxxx> > > --- > > 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 majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html