So, this apparently comes down to a problem where the FADT contains two different addresses for the FACS in the FIRMWARE_CTRL and X_FIRMWARE_CTRL fields. It would be a relatively simple fix to write the wake vector to both tables if necessary. I don't see a need to go back to the RSDT for this case. A couple of global comments: 1) In general, it seems like a lot of overhead to load a second set of "inactive" tables from the RSDT -- especially if this is for debug only. Not only the code to do it, but the dynamic memory for the second root table list and the memory mappings, potentially one for each table in the RSDT. 2) As far as acpidump -- I have plans to enhance this utility so that it is OS-independent and will run on any host. The current version of acpidump is Linux-specific. So, I don't think acpidump is going away. If we need a dump of both the XSDT tables and the RSDT tables, we should be able to modify acpidump to perform this, and we will not need to add kernel code or use kernel resources. Bob >-----Original Message----- >From: Zhang, Rui >Sent: Monday, October 13, 2008 6:01 PM >To: Moore, Robert >Cc: Len Brown; linux-acpi >Subject: RE: [PATCH 0/6] ACPI: acpi table management enhancement > >On Mon, 2008-10-13 at 11:02 -0600, Moore, Robert wrote: >> >I found that there are two FACS tables on this platform, >> >XSDT-->FADT1-->Xfacs-->FACS1 >> > |----->facs-| >> > |->FACS2 >> >RSDT-->FADT2-->facs-| >> >Linux uses XSDT on this platform and sets the waking vector in FACS1 >> >when suspending. >> >But it seems that the BIOS only cares for the waking vector in FACS2, >> >> >> Is this possibly an issue of using the 32-bit wake vector versus the 64- >bit wake vector? (For example, perhaps the FACS1 has both vectors and the >64-bit vector is used but fails. But the FACS2 only has the 32-bit vector >so it is used, and this works correctly with the BIOS.) >No, I tested the patch from Rafael, which is the same from the one >here: >http://www.acpica.org/bugzilla/attachment.cgi?id=813&action=view >It doesn't work. > >> Or, is it actually the case where the two FACS tables have different wake >vectors? Both the 32-bit vectors and the 64-bit vectors are different? >the wake vector is just a memory address where BIOS passes the control >to OS. >As there are two different FACS tables located at different addresses, >surely the wake vectors are different. :) > >thanks, >rui > ��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f