diff mbox

[RFC,15/20] acpi: Move ACPI code to xen/common/libacpi

Message ID 1459905949-10358-16-git-send-email-boris.ostrovsky@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Boris Ostrovsky April 6, 2016, 1:25 a.m. UTC
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
 .gitignore                                                        | 8 ++++----
 tools/firmware/hvmloader/Makefile                                 | 3 +--
 tools/firmware/hvmloader/smbios.c                                 | 1 +
 tools/firmware/rombios/32bit/Makefile                             | 2 +-
 tools/firmware/rombios/32bit/tcgbios/Makefile                     | 2 +-
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile    | 6 +++---
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README      | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h   | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c     | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl    | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c   | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl | 0
 .../firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl   | 0
 .../hvmloader/acpi => xen/common/libacpi}/static_tables.c         | 0
 {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h       | 0
 17 files changed, 11 insertions(+), 11 deletions(-)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile (94%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/static_tables.c (100%)
 rename {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h (100%)

diff --git a/tools/firmware/hvmloader/acpi/README b/xen/common/libacpi/README
similarity index 100%
rename from tools/firmware/hvmloader/acpi/README
rename to xen/common/libacpi/README
diff --git a/tools/firmware/hvmloader/acpi/acpi2_0.h b/xen/common/libacpi/acpi2_0.h
similarity index 100%
rename from tools/firmware/hvmloader/acpi/acpi2_0.h
rename to xen/common/libacpi/acpi2_0.h
diff --git a/tools/firmware/hvmloader/acpi/build.c b/xen/common/libacpi/build.c
similarity index 100%
rename from tools/firmware/hvmloader/acpi/build.c
rename to xen/common/libacpi/build.c
diff --git a/tools/firmware/hvmloader/acpi/dsdt.asl b/xen/common/libacpi/dsdt.asl
similarity index 100%
rename from tools/firmware/hvmloader/acpi/dsdt.asl
rename to xen/common/libacpi/dsdt.asl
diff --git a/tools/firmware/hvmloader/acpi/mk_dsdt.c b/xen/common/libacpi/mk_dsdt.c
similarity index 100%
rename from tools/firmware/hvmloader/acpi/mk_dsdt.c
rename to xen/common/libacpi/mk_dsdt.c
diff --git a/tools/firmware/hvmloader/acpi/ssdt_pm.asl b/xen/common/libacpi/ssdt_pm.asl
similarity index 100%
rename from tools/firmware/hvmloader/acpi/ssdt_pm.asl
rename to xen/common/libacpi/ssdt_pm.asl
diff --git a/tools/firmware/hvmloader/acpi/ssdt_s3.asl b/xen/common/libacpi/ssdt_s3.asl
similarity index 100%
rename from tools/firmware/hvmloader/acpi/ssdt_s3.asl
rename to xen/common/libacpi/ssdt_s3.asl
diff --git a/tools/firmware/hvmloader/acpi/ssdt_s4.asl b/xen/common/libacpi/ssdt_s4.asl
similarity index 100%
rename from tools/firmware/hvmloader/acpi/ssdt_s4.asl
rename to xen/common/libacpi/ssdt_s4.asl
diff --git a/tools/firmware/hvmloader/acpi/ssdt_tpm.asl b/xen/common/libacpi/ssdt_tpm.asl
similarity index 100%
rename from tools/firmware/hvmloader/acpi/ssdt_tpm.asl
rename to xen/common/libacpi/ssdt_tpm.asl
diff --git a/tools/firmware/hvmloader/acpi/static_tables.c b/xen/common/libacpi/static_tables.c
similarity index 100%
rename from tools/firmware/hvmloader/acpi/static_tables.c
rename to xen/common/libacpi/static_tables.c
diff --git a/tools/firmware/hvmloader/acpi/x86.h b/xen/common/libacpi/x86.h
similarity index 100%
rename from tools/firmware/hvmloader/acpi/x86.h
rename to xen/common/libacpi/x86.h

Comments

Jan Beulich June 6, 2016, 1:05 p.m. UTC | #1
>>> On 06.04.16 at 03:25, <boris.ostrovsky@oracle.com> wrote:
>  .gitignore                                                        | 8 ++++----
>  tools/firmware/hvmloader/Makefile                                 | 3 +--
>  tools/firmware/hvmloader/smbios.c                                 | 1 +
>  tools/firmware/rombios/32bit/Makefile                             | 2 +-
>  tools/firmware/rombios/32bit/tcgbios/Makefile                     | 2 +-
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile    | 6 +++---
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README      | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h   | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c     | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl    | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c   | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl | 0
>  .../firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl   | 0
>  .../hvmloader/acpi => xen/common/libacpi}/static_tables.c         | 0
>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h       | 0
>  17 files changed, 11 insertions(+), 11 deletions(-)

As mentioned before, new placement subject to determination
whether this is to eventually be used by the hypervisor.

> --- a/tools/firmware/hvmloader/smbios.c
> +++ b/tools/firmware/hvmloader/smbios.c
> @@ -24,6 +24,7 @@
>  #include <xen/version.h>
>  #include "smbios_types.h"
>  #include "util.h"
> +#include "acpi2_0.h"
>  #include "hypercall.h"
>  #include <xen/hvm/hvm_xs_strings.h>

This change doesn't seem to belong here (since you only move
around files, and adjustments get done solely to makefiles).

> --- a/tools/firmware/hvmloader/acpi/Makefile
> +++ b/xen/common/libacpi/Makefile
> @@ -14,13 +14,13 @@
>  # this program; If not, see <http://www.gnu.org/licenses/>.
>  #
>  
> -XEN_ROOT = $(CURDIR)/../../../..
> -include $(XEN_ROOT)/tools/firmware/Rules.mk
> +XEN_ROOT = $(CURDIR)/../../..
> +include $(XEN_ROOT)/Config.mk
>  
>  C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c
>  OBJS  = $(patsubst %.c,%.o,$(C_SRC))
>  
> -CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS_xeninclude = -I$(XEN_ROOT)/tools/include

Where would this now get consumed? This appears to be a tools/
only setting, which should thus no longer be needed here.

Jan
Boris Ostrovsky June 6, 2016, 4:09 p.m. UTC | #2
On 06/06/2016 09:05 AM, Jan Beulich wrote:
>>>> On 06.04.16 at 03:25, <boris.ostrovsky@oracle.com> wrote:
>>  .gitignore                                                        | 8 ++++----
>>  tools/firmware/hvmloader/Makefile                                 | 3 +--
>>  tools/firmware/hvmloader/smbios.c                                 | 1 +
>>  tools/firmware/rombios/32bit/Makefile                             | 2 +-
>>  tools/firmware/rombios/32bit/tcgbios/Makefile                     | 2 +-
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile    | 6 +++---
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README      | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h   | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c     | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl    | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c   | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl | 0
>>  .../firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl   | 0
>>  .../hvmloader/acpi => xen/common/libacpi}/static_tables.c         | 0
>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h       | 0
>>  17 files changed, 11 insertions(+), 11 deletions(-)
> As mentioned before, new placement subject to determination
> whether this is to eventually be used by the hypervisor.


Roger, when do you think you'll be able to see whether dom0 builder will
use this? I can start working on v1 with assumption that this will be
used by hypervisor. We can drop the last patch (and modify this one to
move acpi to somewhere in tools) if it becomes clear that hypervisor
does not want it.


>
>> --- a/tools/firmware/hvmloader/acpi/Makefile
>> +++ b/xen/common/libacpi/Makefile
>> @@ -14,13 +14,13 @@
>>  # this program; If not, see <http://www.gnu.org/licenses/>.
>>  #
>>  
>> -XEN_ROOT = $(CURDIR)/../../../..
>> -include $(XEN_ROOT)/tools/firmware/Rules.mk
>> +XEN_ROOT = $(CURDIR)/../../..
>> +include $(XEN_ROOT)/Config.mk
>>  
>>  C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c
>>  OBJS  = $(patsubst %.c,%.o,$(C_SRC))
>>  
>> -CFLAGS += $(CFLAGS_xeninclude)
>> +CFLAGS_xeninclude = -I$(XEN_ROOT)/tools/include
> Where would this now get consumed? This appears to be a tools/
> only setting, which should thus no longer be needed here.

This is needed for building mk_dsdt.

-boris
Jan Beulich June 7, 2016, 6:20 a.m. UTC | #3
>>> On 06.06.16 at 18:09, <boris.ostrovsky@oracle.com> wrote:
> On 06/06/2016 09:05 AM, Jan Beulich wrote:
>>>>> On 06.04.16 at 03:25, <boris.ostrovsky@oracle.com> wrote:
>>>  .gitignore                                                        | 8 ++++----
>>>  tools/firmware/hvmloader/Makefile                                 | 3 +--
>>>  tools/firmware/hvmloader/smbios.c                                 | 1 +
>>>  tools/firmware/rombios/32bit/Makefile                             | 2 +-
>>>  tools/firmware/rombios/32bit/tcgbios/Makefile                     | 2 +-
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile    | 6 +++---
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README      | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h   | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c     | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl    | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c   | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl | 0
>>>  .../firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl   | 0
>>>  .../hvmloader/acpi => xen/common/libacpi}/static_tables.c         | 0
>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h       | 0
>>>  17 files changed, 11 insertions(+), 11 deletions(-)
>> As mentioned before, new placement subject to determination
>> whether this is to eventually be used by the hypervisor.
> 
> 
> Roger, when do you think you'll be able to see whether dom0 builder will
> use this? I can start working on v1 with assumption that this will be
> used by hypervisor. We can drop the last patch (and modify this one to
> move acpi to somewhere in tools) if it becomes clear that hypervisor
> does not want it.

I guess if it doesn't become clear by then we could still allow for it
to be moved as you do, with the expectation of a follow-up patch
to move it under tools/ if it turns out Dom0 doesn't want/need it.

>>> --- a/tools/firmware/hvmloader/acpi/Makefile
>>> +++ b/xen/common/libacpi/Makefile
>>> @@ -14,13 +14,13 @@
>>>  # this program; If not, see <http://www.gnu.org/licenses/>.
>>>  #
>>>  
>>> -XEN_ROOT = $(CURDIR)/../../../..
>>> -include $(XEN_ROOT)/tools/firmware/Rules.mk
>>> +XEN_ROOT = $(CURDIR)/../../..
>>> +include $(XEN_ROOT)/Config.mk
>>>  
>>>  C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c
>>>  OBJS  = $(patsubst %.c,%.o,$(C_SRC))
>>>  
>>> -CFLAGS += $(CFLAGS_xeninclude)
>>> +CFLAGS_xeninclude = -I$(XEN_ROOT)/tools/include
>> Where would this now get consumed? This appears to be a tools/
>> only setting, which should thus no longer be needed here.
> 
> This is needed for building mk_dsdt.

Which you rename later on. This being a tools/ construct, I'd
appreciate the renaming to happen right away, both to cut the
connection to tools/ and to make the (sole) consumer obvious to
reviewers.

Jan
Roger Pau Monné June 7, 2016, 12:24 p.m. UTC | #4
On Mon, Jun 06, 2016 at 12:09:21PM -0400, Boris Ostrovsky wrote:
> On 06/06/2016 09:05 AM, Jan Beulich wrote:
> >>>> On 06.04.16 at 03:25, <boris.ostrovsky@oracle.com> wrote:
> >>  .gitignore                                                        | 8 ++++----
> >>  tools/firmware/hvmloader/Makefile                                 | 3 +--
> >>  tools/firmware/hvmloader/smbios.c                                 | 1 +
> >>  tools/firmware/rombios/32bit/Makefile                             | 2 +-
> >>  tools/firmware/rombios/32bit/tcgbios/Makefile                     | 2 +-
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile    | 6 +++---
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README      | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h   | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c     | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl    | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c   | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl | 0
> >>  .../firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl   | 0
> >>  .../hvmloader/acpi => xen/common/libacpi}/static_tables.c         | 0
> >>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h       | 0
> >>  17 files changed, 11 insertions(+), 11 deletions(-)
> > As mentioned before, new placement subject to determination
> > whether this is to eventually be used by the hypervisor.
> 
> 
> Roger, when do you think you'll be able to see whether dom0 builder will
> use this? I can start working on v1 with assumption that this will be
> used by hypervisor. We can drop the last patch (and modify this one to
> move acpi to somewhere in tools) if it becomes clear that hypervisor
> does not want it.

What we need to do is quite similar to what ARM does, and they seem to 
prefer to have different ACPI code for Dom0/DomU, so I'm quite sure we could 
do the same for x86 also. FWIW, when Boris and I discussed this we though it 
would be better to have a single place where all the ACPI code resides, both 
to create tables or to modify them.

Would it be a lot of work to leave it in tools/ for the time being and move 
it later if we see that we could benefit from merging both? Or maybe leave 
it in xen/common without linking it with the hypervisor just yet (but that 
would need sorting out later anyway).

Roger.
Boris Ostrovsky June 7, 2016, 2:32 p.m. UTC | #5
On 06/07/2016 08:24 AM, Roger Pau Monné wrote:
> On Mon, Jun 06, 2016 at 12:09:21PM -0400, Boris Ostrovsky wrote:
>> On 06/06/2016 09:05 AM, Jan Beulich wrote:
>>>>>> On 06.04.16 at 03:25, <boris.ostrovsky@oracle.com> wrote:
>>>>  .gitignore                                                        | 8 ++++----
>>>>  tools/firmware/hvmloader/Makefile                                 | 3 +--
>>>>  tools/firmware/hvmloader/smbios.c                                 | 1 +
>>>>  tools/firmware/rombios/32bit/Makefile                             | 2 +-
>>>>  tools/firmware/rombios/32bit/tcgbios/Makefile                     | 2 +-
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/Makefile    | 6 +++---
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/README      | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/acpi2_0.h   | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/build.c     | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/dsdt.asl    | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/mk_dsdt.c   | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_pm.asl | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s3.asl | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_s4.asl | 0
>>>>  .../firmware/hvmloader/acpi => xen/common/libacpi}/ssdt_tpm.asl   | 0
>>>>  .../hvmloader/acpi => xen/common/libacpi}/static_tables.c         | 0
>>>>  {tools/firmware/hvmloader/acpi => xen/common/libacpi}/x86.h       | 0
>>>>  17 files changed, 11 insertions(+), 11 deletions(-)
>>> As mentioned before, new placement subject to determination
>>> whether this is to eventually be used by the hypervisor.
>>
>> Roger, when do you think you'll be able to see whether dom0 builder will
>> use this? I can start working on v1 with assumption that this will be
>> used by hypervisor. We can drop the last patch (and modify this one to
>> move acpi to somewhere in tools) if it becomes clear that hypervisor
>> does not want it.
> What we need to do is quite similar to what ARM does, and they seem to 
> prefer to have different ACPI code for Dom0/DomU, so I'm quite sure we could 
> do the same for x86 also. FWIW, when Boris and I discussed this we though it 
> would be better to have a single place where all the ACPI code resides, both 
> to create tables or to modify them.
>
> Would it be a lot of work to leave it in tools/ for the time being and move 
> it later if we see that we could benefit from merging both? 

It's not a whole lot of work to keep it in tools. It will probably make
things easier, in fact.

-boris

> Or maybe leave 
> it in xen/common without linking it with the hypervisor just yet (but that 
> would need sorting out later anyway).
diff mbox

Patch

diff --git a/.gitignore b/.gitignore
index 91f690c..15d3705 100644
--- a/.gitignore
+++ b/.gitignore
@@ -123,10 +123,6 @@  tools/firmware/*bios/*bios*.txt
 tools/firmware/etherboot/gpxe/*
 tools/firmware/extboot/extboot.img
 tools/firmware/extboot/signrom
-tools/firmware/hvmloader/acpi/mk_dsdt
-tools/firmware/hvmloader/acpi/dsdt*.c
-tools/firmware/hvmloader/acpi/dsdt_*.asl
-tools/firmware/hvmloader/acpi/ssdt_*.h
 tools/firmware/hvmloader/hvmloader
 tools/firmware/hvmloader/roms.h
 tools/firmware/hvmloader/roms.inc
@@ -259,6 +255,10 @@  xen/include/public/public
 xen/include/xen/*.new
 xen/include/xen/acm_policy.h
 xen/include/xen/compile.h
+xen/common/libacpi/mk_dsdt
+xen/common/libacpi/dsdt*.c
+xen/common/libacpi/dsdt_*cpu*.asl
+xen/common/libacpi/ssdt_*.h
 xen/tools/kconfig/.tmp_gtkcheck
 xen/tools/kconfig/.tmp_qtcheck
 xen/tools/symbols
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index c778174..cbc4ae0 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -32,7 +32,7 @@  CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__
 
 # ACPI table builder
-ACPI_PATH = $(XEN_ROOT)/tools/firmware/hvmloader/acpi
+ACPI_PATH = $(XEN_ROOT)/xen/common/libacpi
 vpath %.c $(ACPI_PATH)
 ACPI_FILES = dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c build.c
 ACPI_SRC = $(patsubst %.c,$(ACPI_PATH)/%.c,$(ACPI_FILES))
@@ -153,7 +153,6 @@  endif
 clean: subdirs-clean
 	rm -f roms.inc roms.inc.new acpi.h
 	rm -f hvmloader hvmloader.tmp *.o $(DEPS)
-	$(MAKE) -C $(ACPI_PATH) clean
 
 .PHONY: distclean
 distclean: clean
diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index 210c7b0..bfe8562 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -24,6 +24,7 @@ 
 #include <xen/version.h>
 #include "smbios_types.h"
 #include "util.h"
+#include "acpi2_0.h"
 #include "hypercall.h"
 #include <xen/hvm/hvm_xs_strings.h>
 
diff --git a/tools/firmware/rombios/32bit/Makefile b/tools/firmware/rombios/32bit/Makefile
index 9b523bd..9795960 100644
--- a/tools/firmware/rombios/32bit/Makefile
+++ b/tools/firmware/rombios/32bit/Makefile
@@ -3,7 +3,7 @@  include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 TARGET = 32bitbios_flat.h
 
-CFLAGS += $(CFLAGS_xeninclude) -I.. -I$(XEN_ROOT)/tools/firmware/hvmloader/acpi/
+CFLAGS += $(CFLAGS_xeninclude) -I.. -I$(XEN_ROOT)/xen/common/libacpi
 
 SUBDIRS = tcgbios
 
diff --git a/tools/firmware/rombios/32bit/tcgbios/Makefile b/tools/firmware/rombios/32bit/tcgbios/Makefile
index 6555028..4ce25e3 100644
--- a/tools/firmware/rombios/32bit/tcgbios/Makefile
+++ b/tools/firmware/rombios/32bit/tcgbios/Makefile
@@ -3,7 +3,7 @@  include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 TARGET  = tcgbiosext.o
 
-CFLAGS += $(CFLAGS_xeninclude) -I.. -I../.. -I$(XEN_ROOT)/tools/firmware/hvmloader/acpi/
+CFLAGS += $(CFLAGS_xeninclude) -I.. -I../.. -I$(XEN_ROOT)/xen/common/libacpi
 
 .PHONY: all
 all: $(TARGET)
diff --git a/tools/firmware/hvmloader/acpi/Makefile b/xen/common/libacpi/Makefile
similarity index 94%
rename from tools/firmware/hvmloader/acpi/Makefile
rename to xen/common/libacpi/Makefile
index 4d84e4c..efef589 100644
--- a/tools/firmware/hvmloader/acpi/Makefile
+++ b/xen/common/libacpi/Makefile
@@ -14,13 +14,13 @@ 
 # this program; If not, see <http://www.gnu.org/licenses/>.
 #
 
-XEN_ROOT = $(CURDIR)/../../../..
-include $(XEN_ROOT)/tools/firmware/Rules.mk
+XEN_ROOT = $(CURDIR)/../../..
+include $(XEN_ROOT)/Config.mk
 
 C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c
 OBJS  = $(patsubst %.c,%.o,$(C_SRC))
 
-CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS_xeninclude = -I$(XEN_ROOT)/tools/include
 
 vpath iasl $(PATH)
 all: $(C_SRC) ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h