# HG changeset patch # User Akshat Kumar # Date 1326919609 28800 # Node ID ad15087848d427a3480da063cd6fe905302e31ad # Parent 731d41fbe3944407ff5d96f2987bc25bbc21f993 devacpi: bogus xdsdt in ACPI table A bogus xdsdt address in the ACPI table seemed to be rendering my system unbootable. Using the dsdt seems to have resolved the issue. In the general case, I have followed the ACPICA: match the 32-bit address with the 64-bit address, and prefer the 32-bit address. Unlike facs vs. xfacs (where one is necessarily 0), the ACPI spec sheet (4.0a) does not specify what happens between dsdt vs xdsdt. This case seems to show that in implementation, it is not necessary that one is 0. R=nix-dev, nemo, john CC=nix-dev http://codereview.appspot.com/5556048 Committer: John Floren diff -r 731d41fbe394 -r ad15087848d4 sys/src/nix/k10/devacpi.c --- a/sys/src/nix/k10/devacpi.c Tue Jan 17 13:33:37 2012 -0800 +++ b/sys/src/nix/k10/devacpi.c Wed Jan 18 12:46:49 2012 -0800 @@ -609,7 +609,8 @@ loadfacs(fp->xfacs); else loadfacs(fp->facs); - if(fp->xdsdt != 0) + + if(fp->xdsdt == ((u64int)fp->dsdt)) /* acpica */ loaddsdt(fp->xdsdt); else loaddsdt(fp->dsdt);