diff --git a/src/mainboard/amd/bimini_fam10/acpi/debug.asl b/src/mainboard/amd/bimini_fam10/acpi/debug.asl
deleted file mode 100644
index 8ce9e86..0000000
--- a/src/mainboard/amd/bimini_fam10/acpi/debug.asl
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2010 Advanced Micro Devices, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-/*
-	DefinitionBlock (
-		"DSDT.AML",
-		"DSDT",
-		0x01,
-		"XXXXXX",
-		"XXXXXXXX",
-		0x00010001
-		)
-	{
-		#include "debug.asl"
-	}
-*/
-
-/*
-* 0x80: POST_BASE
-* 0x3F8: DEBCOM_BASE
-* X80: POST_REGION
-* P80: PORT80
-*
-* CREG: DEBCOM_REGION
-* CUAR: DEBCOM_UART
-* CDAT: DEBCOM_DATA
-* CDLM: DEBCOM_DLM
-* DLCR: DEBCOM_LCR
-* CMCR: DEBCOM_MCR
-* CLSR: DEBCOM_LSR
-*
-* DEBUG_INIT	DINI
-*/
-
-OperationRegion(X80, SystemIO, 0x80, 1)
-	Field(X80, ByteAcc, NoLock, Preserve)
-{
-	P80, 8
-}
-
-OperationRegion(CREG, SystemIO, 0x3F8, 8)
-	Field(CREG, ByteAcc, NoLock, Preserve)
-{
-	CDAT, 8,
-	CDLM, 8,, 8, DLCR, 8, CMCR, 8, CLSR, 8
-}
-
-/*
-* DINI
-* Initialize the COM port to 115,200 8-N-1
-*/
-Method(DINI)
-{
-	store(0x83, DLCR)
-	store(0x01, CDAT)	/* 115200 baud (low) */
-	store(0x00, CDLM)	/* 115200 baud (high) */
-	store(0x03, DLCR)	/* word=8 stop=1 parity=none */
-	store(0x03, CMCR)	/* DTR=1 RTS=1 Out2=Off Loop=Off */
-	store(0x00, CDLM)	/* turn off interrupts */
-}
-
-/*
-* THRE
-* Wait for COM port transmitter holding register to go empty
-*/
-Method(THRE)
-{
-	and(CLSR, 0x20, local0)
-	while (Lequal(local0, Zero)) {
-		and(CLSR, 0x20, local0)
-	}
-}
-
-/*
-* OUTX
-* Send a single raw character
-*/
-Method(OUTX, 1)
-{
-	THRE()
-	store(Arg0, CDAT)
-}
-
-/*
-* OUTC
-* Send a single character, expanding LF into CR/LF
-*/
-Method(OUTC, 1)
-{
-	if (LEqual(Arg0, 0x0a)) {
-		OUTX(0x0d)
-	}
-	OUTX(Arg0)
-}
-
-/*
-* DBGN
-* Send a single hex nibble
-*/
-Method(DBGN, 1)
-{
-	and(Arg0, 0x0f, Local0)
-	if (LLess(Local0, 10)) {
-		add(Local0, 0x30, Local0)
-	} else {
-		add(Local0, 0x37, Local0)
-	}
-	OUTC(Local0)
-}
-
-/*
-* DBGB
-* Send a hex byte
-*/
-Method(DBGB, 1)
-{
-	ShiftRight(Arg0, 4, Local0)
-	DBGN(Local0)
-	DBGN(Arg0)
-}
-
-/*
-* DBGW
-* Send a hex word
-*/
-Method(DBGW, 1)
-{
-	ShiftRight(Arg0, 8, Local0)
-	DBGB(Local0)
-	DBGB(Arg0)
-}
-
-/*
-* DBGD
-* Send a hex Dword
-*/
-Method(DBGD, 1)
-{
-	ShiftRight(Arg0, 16, Local0)
-	DBGW(Local0)
-	DBGW(Arg0)
-}
-
-/*
-* DBGO
-* Send either a string or an integer
-*/
-Method(DBGO, 1)
-{
-	/* DINI() */
-	if (LEqual(ObjectType(Arg0), 1)) {
-		if (LGreater(Arg0, 0xffff)) {
-			DBGD(Arg0)
-		} else {
-			if (LGreater(Arg0, 0xff)) {
-				DBGW(Arg0)
-			} else {
-				DBGB(Arg0)
-			}
-		}
-	} else {
-		Name(BDBG, Buffer(80) {})
-		store(Arg0, BDBG)
-		store(0, Local1)
-		while (One) {
-			store(GETC(BDBG, Local1), Local0)
-			if (LEqual(Local0, 0)) {
-				return (0)
-			}
-			OUTC(Local0)
-			Increment(Local1)
-		}
-	}
-	return (0)
-}
-
-/* Get a char from a string */
-Method(GETC, 2)
-{
-	CreateByteField(Arg0, Arg1, DBGC)
-	return (DBGC)
-}
diff --git a/src/mainboard/amd/bimini_fam10/acpi/globutil.asl b/src/mainboard/amd/bimini_fam10/acpi/globutil.asl
deleted file mode 100644
index 782fab28..0000000
--- a/src/mainboard/amd/bimini_fam10/acpi/globutil.asl
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2010 Advanced Micro Devices, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-/*
-Scope(\_SB) {
-	#include "globutil.asl"
-}
-*/
-
-/* string compare functions */
-Method(MIN, 2)
-{
-	if (LLess(Arg0, Arg1)) {
-		Return(Arg0)
-	} else {
-		Return(Arg1)
-	}
-}
-
-Method(SLEN, 1)
-{
-	Store(Arg0, Local0)
-	Return(Sizeof(Local0))
-}
-
-Method(S2BF, 1)
-{
-	Add(SLEN(Arg0), One, Local0)
-	Name(BUFF, Buffer(Local0) {})
-	Store(Arg0, BUFF)
-	Return(BUFF)
-}
-
-/* Strong string compare.  Checks both length and content */
-Method(SCMP, 2)
-{
-	Store(S2BF(Arg0), Local0)
-	Store(S2BF(Arg1), Local1)
-	Store(Zero, Local4)
-	Store(SLEN(Arg0), Local5)
-	Store(SLEN(Arg1), Local6)
-	Store(MIN(Local5, Local6), Local7)
-
-	While(LLess(Local4, Local7)) {
-		Store(Derefof(Index(Local0, Local4)), Local2)
-		Store(Derefof(Index(Local1, Local4)), Local3)
-		if (LGreater(Local2, Local3)) {
-			Return(One)
-		} else {
-			if (LLess(Local2, Local3)) {
-				Return(Ones)
-			}
-		}
-		Increment(Local4)
-	}
-	if (LLess(Local4, Local5)) {
-		Return(One)
-	} else {
-		if (LLess(Local4, Local6)) {
-			Return(Ones)
-		} else {
-			Return(Zero)
-		}
-	}
-}
-
-/* Weak string compare.  Checks to find Arg1 at beginning of Arg0.
-* Fails if length(Arg0) < length(Arg1).  Returns 0 on Fail, 1 on
-* Pass.
-*/
-Method(WCMP, 2)
-{
-	Store(S2BF(Arg0), Local0)
-	Store(S2BF(Arg1), Local1)
-	if (LLess(SLEN(Arg0), SLEN(Arg1))) {
-		Return(0)
-	}
-	Store(Zero, Local2)
-	Store(SLEN(Arg1), Local3)
-
-	While(LLess(Local2, Local3)) {
-		if (LNotEqual(Derefof(Index(Local0, Local2)),
-			Derefof(Index(Local1, Local2)))) {
-			Return(0)
-		}
-		Increment(Local2)
-	}
-	Return(One)
-}
-
-/* ARG0 = IRQ Number(0-15)
-* Returns Bit Map
-*/
-Method(I2BM, 1)
-{
-	Store(0, Local0)
-	if (LNotEqual(ARG0, 0)) {
-		Store(1, Local1)
-		ShiftLeft(Local1, ARG0, Local0)
-	}
-	Return(Local0)
-}
diff --git a/src/mainboard/amd/bimini_fam10/acpi/statdef.asl b/src/mainboard/amd/bimini_fam10/acpi/statdef.asl
deleted file mode 100644
index a68a579..0000000
--- a/src/mainboard/amd/bimini_fam10/acpi/statdef.asl
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2010 Advanced Micro Devices, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-
-/* Status and notification definitions */
-
-#define STA_MISSING			    0x00
-#define STA_PRESENT			    0x01
-#define	STA_ENABLED			    0x03
-#define STA_DISABLED		    0x09
-#define	STA_INVISIBLE		    0x0B
-#define	STA_UNAVAILABLE		    0x0D
-#define	STA_VISIBLE			    0x0F
-
-/* SMBus status codes */
-#define SMB_OK                  0x00
-#define SMB_UnknownFail         0x07
-#define SMB_DevAddrNAK          0x10
-#define SMB_DeviceError         0x11
-#define SMB_DevCmdDenied        0x12
-#define SMB_UnknownErr          0x13
-#define SMB_DevAccDenied        0x17
-#define SMB_Timeout             0x18
-#define SMB_HstUnsuppProtocol   0x19
-#define SMB_Busy                0x1A
-#define SMB_PktChkError         0x1F
-
-/* Device Object Notification Values */
-#define	NOTIFY_BUS_CHECK		0x00
-#define	NOTIFY_DEVICE_CHECK		0x01
-#define	NOTIFY_DEVICE_WAKE		0x02
-#define	NOTIFY_EJECT_REQUEST	0x03
-#define	NOTIFY_DEVICE_CHECK_JR	0x04
-#define	NOTIFY_FREQUENCY_ERROR	0x05
-#define	NOTIFY_BUS_MODE			0x06
-#define	NOTIFY_POWER_FAULT		0x07
-#define	NOTIFY_CAPABILITIES		0x08
-#define	NOTIFY_PLD_CHECK		0x09
-#define	NOTIFY_SLIT_UPDATE		0x0B
-
-/* Battery Device Notification Values */
-#define	NOTIFY_BAT_STATUSCHG	0x80
-#define	NOTIFY_BAT_INFOCHG  	0x81
-#define	NOTIFY_BAT_MAINTDATA    0x82
-
-/* Power Source Object Notification Values */
-#define	NOTIFY_PWR_STATUSCHG	0x80
-
-/* Thermal Zone Object Notification Values */
-#define	NOTIFY_TZ_STATUSCHG	    0x80
-#define	NOTIFY_TZ_TRIPPTCHG	    0x81
-#define	NOTIFY_TZ_DEVLISTCHG	0x82
-#define	NOTIFY_TZ_RELTBLCHG 	0x83
-
-/* Power Button Notification Values */
-#define	NOTIFY_POWER_BUTTON		0x80
-
-/* Sleep Button Notification Values */
-#define	NOTIFY_SLEEP_BUTTON		0x80
-
-/* Lid Notification Values */
-#define	NOTIFY_LID_STATUSCHG	0x80
-
-/* Processor Device Notification Values */
-#define	NOTIFY_CPU_PPCCHG   	0x80
-#define	NOTIFY_CPU_CSTATECHG  	0x81
-#define	NOTIFY_CPU_THROTLCHG    0x82
-
-/* User Presence Device Notification Values */
-#define	NOTIFY_USR_PRESNCECHG	0x80
-
-/* Battery Device Notification Values */
-#define	NOTIFY_ALS_ILLUMCHG 	0x80
-#define	NOTIFY_ALS_COLORTMPCHG 	0x81
-#define	NOTIFY_ALS_RESPCHG      0x82
-
-
diff --git a/src/mainboard/amd/bimini_fam10/dsdt.asl b/src/mainboard/amd/bimini_fam10/dsdt.asl
index 039a1c5..3ff6dab 100644
--- a/src/mainboard/amd/bimini_fam10/dsdt.asl
+++ b/src/mainboard/amd/bimini_fam10/dsdt.asl
@@ -27,7 +27,7 @@
 	0x00010001	/* OEM Revision */
 	)
 {	/* Start of ASL file */
-	/* #include "acpi/debug.asl" */		/* Include global debug methods if needed */
+	/* #include "../../../arch/x86/acpi/debug.asl" */		/* Include global debug methods if needed */
 
 	/* Data to be patched by the BIOS during POST */
 	/* FIXME the patching is not done yet! */
@@ -1156,7 +1156,7 @@
 
 	/* South Bridge */
 	Scope(\_SB) { /* Start \_SB scope */
-		#include "acpi/globutil.asl" /* global utility methods expected within the \_SB scope */
+		#include "../../../arch/x86/acpi/globutil.asl" /* global utility methods expected within the \_SB scope */
 
 		/*  _SB.PCI0 */
 		/* Note: Only need HID on Primary Bus */
