[coreboot] r3986 - in trunk/coreboot-v2/src: arch/i386/boot arch/i386/include/arch mainboard/amd/serengeti_cheetah/dx mainboard/amd/serengeti_cheetah_fam10/dx mainboard/asus/m2v-mx_se mainboard/iwill/dk8_htx/dx northbridge/amd/amdfam10 northbridge/amd/amdk8

svn at coreboot.org svn at coreboot.org
Tue Mar 10 19:06:48 CET 2009


Author: myles
Date: 2009-03-10 19:06:47 +0100 (Tue, 10 Mar 2009)
New Revision: 3986

Added:
   trunk/coreboot-v2/src/northbridge/amd/amdfam10/amdfam10_util.asl
   trunk/coreboot-v2/src/northbridge/amd/amdk8/amdk8_util.asl
Removed:
   trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/amdk8_util.asl
   trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/amdfam10_util.asl
   trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/amdk8_util.asl
   trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/amdk8_util.asl
Modified:
   trunk/coreboot-v2/src/arch/i386/boot/acpi.c
   trunk/coreboot-v2/src/arch/i386/include/arch/acpi.h
   trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/dsdt_lb.dsl
   trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/dsdt_lb.dsl
   trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/dsdt.asl
   trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/dsdt_lb.dsl
Log:
This patch makes the boards use a single amdk8_util.asl.  There are only
whitespace differences between this file and the amdk8_util.asl from
asus/m2v_mxe.

It also enables SLIT filling if you have one, zeroes the unused fields in the
srat_lapic structure, and adds some declarations in acpi.h.

Signed-off-by: Myles Watson <mylesgw at gmail.com>
Acked-by: Rudolf Marek <r.marek at assembler.cz>


Modified: trunk/coreboot-v2/src/arch/i386/boot/acpi.c
===================================================================
--- trunk/coreboot-v2/src/arch/i386/boot/acpi.c	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/arch/i386/boot/acpi.c	2009-03-10 18:06:47 UTC (rev 3986)
@@ -212,6 +212,7 @@
 
 int acpi_create_srat_lapic(acpi_srat_lapic_t *lapic, u8 node, u8 apic)
 {
+	memset((void *)lapic, 0, sizeof(acpi_srat_lapic_t));
         lapic->type=0;
         lapic->length=sizeof(acpi_srat_lapic_t);
         lapic->flags=1;
@@ -284,7 +285,7 @@
         header->length = sizeof(acpi_slit_t);
         header->revision = 1;
 
-//        current = acpi_fill_slit(current);
+        current = acpi_fill_slit(current);
 
         /* recalculate length */
         header->length= current - (unsigned long)slit;

Modified: trunk/coreboot-v2/src/arch/i386/include/arch/acpi.h
===================================================================
--- trunk/coreboot-v2/src/arch/i386/include/arch/acpi.h	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/arch/i386/include/arch/acpi.h	2009-03-10 18:06:47 UTC (rev 3986)
@@ -292,7 +292,8 @@
 unsigned long write_acpi_tables(unsigned long addr);
 unsigned long acpi_fill_madt(unsigned long current);
 unsigned long acpi_fill_mcfg(unsigned long current);
-unsigned long acpi_fill_srat(unsigned long current); 
+unsigned long acpi_fill_srat(unsigned long current);
+unsigned long acpi_fill_slit(unsigned long current);
 unsigned long acpi_fill_ssdt_generator(unsigned long current, char *oem_table_id);
 void acpi_create_ssdt_generator(acpi_header_t *ssdt, char *oem_table_id);
 void acpi_create_fadt(acpi_fadt_t *fadt,acpi_facs_t *facs,void *dsdt);

Deleted: trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/amdk8_util.asl
===================================================================
--- trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/amdk8_util.asl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/amdk8_util.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -1,315 +0,0 @@
-/*
- * Copyright 2005 AMD
- */
-
-//AMD k8 util for BUSB and res range
-
-    Scope (\_SB)
-    {
-
-        Name (OSTB, Ones)
-        Method (OSTP, 0, NotSerialized)
-        {
-            If (LEqual (^OSTB, Ones))
-            {
-                Store (0x00, ^OSTB)
-            }
-
-            Return (^OSTB)
-        }
-
-       Method (SEQL, 2, Serialized)
-        {
-            Store (SizeOf (Arg0), Local0)
-            Store (SizeOf (Arg1), Local1)
-            If (LNot (LEqual (Local0, Local1))) { Return (Zero) }
-
-            Name (BUF0, Buffer (Local0) {})
-            Store (Arg0, BUF0)
-            Name (BUF1, Buffer (Local0) {})
-            Store (Arg1, BUF1)
-            Store (Zero, Local2)
-            While (LLess (Local2, Local0))
-            {
-                Store (DerefOf (Index (BUF0, Local2)), Local3)
-                Store (DerefOf (Index (BUF1, Local2)), Local4)
-                If (LNot (LEqual (Local3, Local4))) { Return (Zero) }
-
-                Increment (Local2)
-            }
-
-            Return (One)
-        }
-
-
-        Method (DADD, 2, NotSerialized)
-        {
-                Store( Arg1, Local0)
-                Store( Arg0, Local1)
-                Add( ShiftLeft(Local1,16), Local0, Local0)
-                Return (Local0)
-        }
-
-
-	Method (GHCE, 1, NotSerialized) // check if the HC enabled
-	{
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-                if(LEqual ( And(Local1, 0x01), 0x01)) { Return (0x0F) }
-                Else { Return (0x00) }
-	}
-
-        Method (GHCN, 1, NotSerialized) // get the node num for the HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-		Store (ShiftRight( And (Local1, 0xf0), 0x04), Local0)
-		Return (Local0)
-        }
-
-        Method (GHCL, 1, NotSerialized) // get the link num on node for the HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-                Store (ShiftRight( And (Local1, 0xf00), 0x08), Local0)
-                Return (Local0)
-        }
-
-        Method (GHCD, 2, NotSerialized) // get the unit id base for the HT device in HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCDN, Arg0)), Local1)
-		Store (Arg1, Local2) // Arg1 could be 3, 2, 1, 0
-		Multiply (Local2, 0x08, Local2) // change to 24, 16, 8, 0
-                Store (And (ShiftRight( Local1, Local2), 0xff), Local0)
-                Return (Local0)
-        }
-
-        Method (GBUS, 2, NotSerialized)
-        {
-            Store (0x00, Local0)
-            While (LLess (Local0, 0x04))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
-                        {
-                            Return (ShiftRight (And (Local1, 0x00FF0000), 0x10))
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            Return (0x00)
-        }
-
-        Method (GWBN, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
-                    0x0000, // Address Space Granularity
-                    0x0000, // Address Range Minimum
-                    0x0000, // Address Range Maximum
-                    0x0000, // Address Translation Offset
-                    0x0000,,,)
-            })
-            CreateWordField (BUF0, 0x08, BMIN)
-            CreateWordField (BUF0, 0x0A, BMAX)
-            CreateWordField (BUF0, 0x0E, BLEN)
-            Store (0x00, Local0)
-            While (LLess (Local0, 0x04))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
-                        {
-                            Store (ShiftRight (And (Local1, 0x00FF0000), 0x10), BMIN)
-                            Store (ShiftRight (Local1, 0x18), BMAX)
-                            Subtract (BMAX, BMIN, BLEN)
-                            Increment (BLEN)
-                            Return (RTAG (BUF0))
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            Return (RTAG (BUF0))
-        }
-
-        Method (GMEM, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
-                    0x00000000, // Address Space Granularity
-                    0x00000000, // Address Range Minimum
-                    0x00000000, // Address Range Maximum
-                    0x00000000, // Address Translation Offset
-                    0x00000000,,,
-                    , AddressRangeMemory, TypeStatic)
-            })
-            CreateDWordField (BUF0, 0x0A, MMIN)
-            CreateDWordField (BUF0, 0x0E, MMAX)
-            CreateDWordField (BUF0, 0x16, MLEN)
-            Store (0x00, Local0)
-            Store (0x00, Local4)
-	    Store (0x00, Local3)
-            While (LLess (Local0, 0x10))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local1)
-                Increment (Local0)
-                Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local2)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, And (Local2, 0x07)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
-                        {
-                            Store (ShiftLeft (And (Local1, 0xFFFFFF00), 0x08), MMIN)
-                            Store (ShiftLeft (And (Local2, 0xFFFFFF00), 0x08), MMAX)
-                            Or (MMAX, 0xFFFF, MMAX)
-                            Subtract (MMAX, MMIN, MLEN)
-
-                            If (Local4)
-                            {
-                                Concatenate (RTAG (BUF0), Local3, Local5)
-                               	Store (Local5, Local3)
-                            }
-                            Else
-                            {
-                                If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-                                {
-                                    Store (\_SB.PCI0.TOM1, MMIN)
-                                    Subtract (MMAX, MMIN, MLEN)
-                                    Increment (MLEN)
-                                }
-
-                                Store (RTAG (BUF0), Local3)
-                            }
-
-                            Increment (Local4)
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            If (LNot (Local4))
-            {
-                Store (BUF0, Local3)
-            }
-
-            Return (Local3)
-        }
-
-        Method (GIOR, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
-                    0x00000000, // Address Space Granularity
-                    0x00000000, // Address Range Minimum
-                    0x00000000, // Address Range Maximum
-                    0x00000000, // Address Translation Offset
-                    0x00000000,,,
-                    , TypeStatic)
-            })
-            CreateDWordField (BUF0, 0x0A, PMIN)
-            CreateDWordField (BUF0, 0x0E, PMAX)
-            CreateDWordField (BUF0, 0x16, PLEN)
-            Store (0x00, Local0)
-            Store (0x00, Local4)
-	    Store (0x00, Local3)
-            While (LLess (Local0, 0x08))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local1)
-                Increment (Local0)
-                Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local2)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, And (Local2, 0x07)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
-                        {
-                            Store (And (Local1, 0x01FFF000), PMIN)
-                            Store (And (Local2, 0x01FFF000), PMAX)
-                            Or (PMAX, 0x0FFF, PMAX)
-                            Subtract (PMAX, PMIN, PLEN)
-                            Increment (PLEN)
-
-                            If (Local4)
-                            {
-                                Concatenate (RTAG (BUF0), Local3, Local5)
-       	                        Store (Local5, Local3)
-                            }
-                            Else
-                            {
-                                If (LGreater (PMAX, PMIN))
-                                {
-                                    If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-                                    {
-                                        Store (0x0D00, PMIN)
-                                        Subtract (PMAX, PMIN, PLEN)
-                                        Increment (PLEN)
-                                    }
-
-                                    Store (RTAG (BUF0), Local3)
-                                    Increment (Local4)
-                                }
-
-                                If (And (Local1, 0x10))
-                                {
-                                    Store (0x03B0, PMIN)
-                                    Store (0x03DF, PMAX)
-                                    Store (0x30, PLEN)
-                                    If (Local4)
-                                    {
-                                        Concatenate (RTAG (BUF0), Local3, Local5)
-                                        Store (Local5, Local3)
-                                    }
-                                    Else
-                                    {
-                                        Store (RTAG (BUF0), Local3)
-                                    }
-                                }
-                            }
-
-                            Increment (Local4)
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            If (LNot (Local4))
-            {
-                Store (RTAG (BUF0), Local3)
-            }
-
-            Return (Local3)
-        }
-
-        Method (RTAG, 1, NotSerialized)
-        {
-            Store (Arg0, Local0)
-            Store (SizeOf (Local0), Local1)
-            Subtract (Local1, 0x02, Local1)
-            Multiply (Local1, 0x08, Local1)
-            CreateField (Local0, 0x00, Local1, RETB)
-            Store (RETB, Local2)
-            Return (Local2)
-        }
-    }
-

Modified: trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/dsdt_lb.dsl
===================================================================
--- trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/dsdt_lb.dsl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah/dx/dsdt_lb.dsl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -206,7 +206,7 @@
         Z00A,   8
     }
 
-    Include ("amdk8_util.asl")
+    Include ("../../../../../src/northbridge/amd/amdk8/amdk8_util.asl")
 
 }
 

Deleted: trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/amdfam10_util.asl
===================================================================
--- trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/amdfam10_util.asl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/amdfam10_util.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -1,329 +0,0 @@
-//
-// This file is part of the coreboot project.
-//
-// Copyright (C) 2007 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
-//
-
-//AMD FAM10 util for BUSB and res range
-
-Scope (\_SB)
-{
-
-	Name (OSTB, Ones)
-	Method (OSTP, 0, NotSerialized)
-	{
-		If (LEqual (^OSTB, Ones))
-		{
-			Store (0x00, ^OSTB)
-		}
-
-		Return (^OSTB)
-	}
-
-	Method (SEQL, 2, Serialized)
-	{
-		Store (SizeOf (Arg0), Local0)
-		Store (SizeOf (Arg1), Local1)
-		If (LNot (LEqual (Local0, Local1))) { Return (Zero) }
-
-		Name (BUF0, Buffer (Local0) {})
-		Store (Arg0, BUF0)
-		Name (BUF1, Buffer (Local0) {})
-		Store (Arg1, BUF1)
-		Store (Zero, Local2)
-		While (LLess (Local2, Local0))
-		{
-			Store (DerefOf (Index (BUF0, Local2)), Local3)
-			Store (DerefOf (Index (BUF1, Local2)), Local4)
-			If (LNot (LEqual (Local3, Local4))) { Return (Zero) }
-
-		Increment (Local2)
-		}
-
-		Return (One)
-	}
-
-
-	Method (DADD, 2, NotSerialized)
-	{
-		Store( Arg1, Local0)
-		Store( Arg0, Local1)
-		Add( ShiftLeft(Local1,16), Local0, Local0)
-		Return (Local0)
-	}
-
-
-	Method (GHCE, 1, NotSerialized) // check if the HC enabled
-	{
-		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-		if(LEqual ( And(Local1, 0x01), 0x01)) { Return (0x0F) }
-		Else { Return (0x00) }
-	}
-
-	Method (GHCN, 1, NotSerialized) // get the node num for the HC
-	{
-		Store (0x00, Local0)
-		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-		Store (ShiftRight( And (Local1, 0xfc), 0x02), Local0)
-		Return (Local0)
-	}
-
-	Method (GHCL, 1, NotSerialized) // get the link num on node for the HC
-	{
-		Store (0x00, Local0)
-		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-		Store (ShiftRight( And (Local1, 0x700), 0x08), Local0)
-		Return (Local0)
-	}
-
-	Method (GHCD, 2, NotSerialized) // get the unit id base for the HT device in HC
-	{
-		Store (0x00, Local0)
-		Store (DerefOf (Index (\_SB.PCI0.HCDN, Arg0)), Local1)
-		Store (Arg1, Local2) // Arg1 could be 3, 2, 1, 0
-		Multiply (Local2, 0x08, Local2) // change to 24, 16, 8, 0
-		Store (And (ShiftRight( Local1, Local2), 0xff), Local0)
-		Return (Local0)
-	}
-
-	Method (GBUS, 2, NotSerialized)
-	{
-		Store (0x00, Local0)
-		While (LLess (Local0, 0x20)) // 32 ht links
-		{
-			Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-			If (LEqual (And (Local1, 0x03), 0x03))
-			{
-				If (LEqual (Arg0, ShiftRight (And (Local1, 0xfc), 0x02)))
-				{
-					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0700), 0x08))))
-					{
-						Return (ShiftRight (And (Local1, 0x000FF000), 0x0c))
-					}
-				}
-			}
-
-			Increment (Local0)
-		}
-
-		Return (0x00)
-	}
-
-	Method (GWBN, 2, NotSerialized)
-	{
-		Name (BUF0, ResourceTemplate ()
-		{
-			WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
-				0x0000, // Address Space Granularity
-				0x0000, // Address Range Minimum
-				0x0000, // Address Range Maximum
-				0x0000, // Address Translation Offset
-				0x0000,,,)
-		})
-		CreateWordField (BUF0, 0x08, BMIN)
-		CreateWordField (BUF0, 0x0A, BMAX)
-		CreateWordField (BUF0, 0x0E, BLEN)
-		Store (0x00, Local0)
-		While (LLess (Local0, 0x20))
-		{
-			Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-			If (LEqual (And (Local1, 0x03), 0x03))
-			{
-				If (LEqual (Arg0, ShiftRight (And (Local1, 0xfc), 0x02)))
-				{
-					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0700), 0x08))))
-					{
-						Store (ShiftRight (And (Local1, 0x000FF000), 0x0c), BMIN)
-						Store (ShiftRight (Local1, 0x14), BMAX)
-						Subtract (BMAX, BMIN, BLEN)
-						Increment (BLEN)
-						Return (RTAG (BUF0))
-					}
-				}
-			}
-
-			Increment (Local0)
-		}
-
-		Return (RTAG (BUF0))
-	}
-
-	Method (GMEM, 2, NotSerialized)
-	{
-		Name (BUF0, ResourceTemplate ()
-		{
-			DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
-				0x00000000, // Address Space Granularity
-				0x00000000, // Address Range Minimum
-				0x00000000, // Address Range Maximum
-				0x00000000, // Address Translation Offset
-				0x00000000,,,
-				, AddressRangeMemory, TypeStatic)
-		})
-		CreateDWordField (BUF0, 0x0A, MMIN)
-		CreateDWordField (BUF0, 0x0E, MMAX)
-		CreateDWordField (BUF0, 0x16, MLEN)
-		Store (0x00, Local0)
-		Store (0x00, Local4)
-		Store (0x00, Local3)
-		While (LLess (Local0, 0x80)) // 0x20 links * 2(mem, prefmem ) *2 ( base, limit )
-		{
-			Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local1)
-			Increment (Local0)
-			Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local2)
-			If (LEqual (And (Local1, 0x03), 0x03))
-			{
-				If (LEqual (Arg0, And (Local2, 0x3f)))
-				{
-					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x70), 0x04))))
-					{
-						Store (ShiftLeft (And (Local1, 0xFFFFFF00), 0x08), MMIN)
-						Store (ShiftLeft (And (Local2, 0xFFFFFF00), 0x08), MMAX)
-						Or (MMAX, 0xFFFF, MMAX)
-						Subtract (MMAX, MMIN, MLEN)
-
-						If (Local4)
-						{
-							Concatenate (RTAG (BUF0), Local3, Local5)
-							Store (Local5, Local3)
-						}
-						Else
-						{
-							If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-							{
-								Store (\_SB.PCI0.TOM1, MMIN)
-								Subtract (MMAX, MMIN, MLEN)
-								Increment (MLEN)
-							}
-
-							Store (RTAG (BUF0), Local3)
-						}
-
-						Increment (Local4)
-					}
-				}
-			}
-
-			Increment (Local0)
-		}
-
-		If (LNot (Local4))
-		{
-			Store (BUF0, Local3)
-		}
-
-		Return (Local3)
-	}
-
-	Method (GIOR, 2, NotSerialized)
-	{
-		Name (BUF0, ResourceTemplate ()
-		{
-			DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
-				0x00000000, // Address Space Granularity
-				0x00000000, // Address Range Minimum
-				0x00000000, // Address Range Maximum
-				0x00000000, // Address Translation Offset
-				0x00000000,,,
-				, TypeStatic)
-		})
-		CreateDWordField (BUF0, 0x0A, PMIN)
-		CreateDWordField (BUF0, 0x0E, PMAX)
-		CreateDWordField (BUF0, 0x16, PLEN)
-		Store (0x00, Local0)
-		Store (0x00, Local4)
-		Store (0x00, Local3)
-		While (LLess (Local0, 0x40)) // 0x20 ht links  * 2 ( base, limit)
-		{
-			Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local1)
-			Increment (Local0)
-			Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local2)
-			If (LEqual (And (Local1, 0x03), 0x03))
-			{
-				If (LEqual (Arg0, And (Local2, 0x3f)))
-				{
-					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x70), 0x04))))
-					{
-						Store (And (Local1, 0x01FFF000), PMIN)
-						Store (And (Local2, 0x01FFF000), PMAX)
-						Or (PMAX, 0x0FFF, PMAX)
-						Subtract (PMAX, PMIN, PLEN)
-						Increment (PLEN)
-
-						If (Local4)
-						{
-							Concatenate (RTAG (BUF0), Local3, Local5)
-							Store (Local5, Local3)
-						}
-						Else
-						{
-							If (LGreater (PMAX, PMIN))
-							{
-								If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-								{
-									Store (0x0D00, PMIN)
-									Subtract (PMAX, PMIN, PLEN)
-									Increment (PLEN)
-								}
-
-								Store (RTAG (BUF0), Local3)
-								Increment (Local4)
-							}
-
-							If (And (Local1, 0x10))
-							{
-								Store (0x03B0, PMIN)
-								Store (0x03DF, PMAX)
-								Store (0x30, PLEN)
-								If (Local4)
-								{
-									Concatenate (RTAG (BUF0), Local3, Local5)
-									Store (Local5, Local3)
-								}
-								Else
-								{
-									Store (RTAG (BUF0), Local3)
-								}
-							}
-						}
-
-						Increment (Local4)
-					}
-				}
-			}
-
-			Increment (Local0)
-		}
-
-		If (LNot (Local4))
-		{
-			Store (RTAG (BUF0), Local3)
-		}
-
-		Return (Local3)
-	}
-
-	Method (RTAG, 1, NotSerialized)
-	{
-		Store (Arg0, Local0)
-		Store (SizeOf (Local0), Local1)
-		Subtract (Local1, 0x02, Local1)
-		Multiply (Local1, 0x08, Local1)
-		CreateField (Local0, 0x00, Local1, RETB)
-		Store (RETB, Local2)
-		Return (Local2)
-	}
-}
\ No newline at end of file

Modified: trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/dsdt_lb.dsl
===================================================================
--- trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/dsdt_lb.dsl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/amd/serengeti_cheetah_fam10/dx/dsdt_lb.dsl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -238,5 +238,5 @@
 		Z00A, 8
 	}
 
-	Include ("amdfam10_util.asl")
-}
\ No newline at end of file
+	Include ("../../../../../src/northbridge/amd/amdfam10/amdfam10_util.asl")
+}

Deleted: trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/amdk8_util.asl
===================================================================
--- trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/amdk8_util.asl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/amdk8_util.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -1,307 +0,0 @@
-/*
- * Copyright 2005 AMD
- */
-
-//AMD k8 util for BUSB and res range
-
-    Scope (\_SB)
-    {
-
-        Name (OSTB, Ones)
-        Method (OSTP, 0, NotSerialized)
-        {
-            If (LEqual (^OSTB, Ones))
-            {
-                Store (0x00, ^OSTB)
-            }
-
-            Return (^OSTB)
-        }
-
-       Method (SEQL, 2, Serialized)
-        {
-            Store (SizeOf (Arg0), Local0)
-            Store (SizeOf (Arg1), Local1)
-            If (LNot (LEqual (Local0, Local1))) { Return (Zero) }
-
-            Name (BUF0, Buffer (Local0) {})
-            Store (Arg0, BUF0)
-            Name (BUF1, Buffer (Local0) {})
-            Store (Arg1, BUF1)
-            Store (Zero, Local2)
-            While (LLess (Local2, Local0))
-            {
-                Store (DerefOf (Index (BUF0, Local2)), Local3)
-                Store (DerefOf (Index (BUF1, Local2)), Local4)
-                If (LNot (LEqual (Local3, Local4))) { Return (Zero) }
-
-                Increment (Local2)
-            }
-
-            Return (One)
-        }
-
-
-        Method (DADD, 2, NotSerialized)
-        {
-                Store( Arg1, Local0)
-                Store( Arg0, Local1)
-                Add( ShiftLeft(Local1,16), Local0, Local0)
-                Return (Local0)
-        }
-
-
-	Method (GHCE, 1, NotSerialized) // check if the HC enabled
-	{
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-                if(LEqual ( And(Local1, 0x01), 0x01)) { Return (0x0F) }
-                Else { Return (0x00) }
-	}
-
-        Method (GHCN, 1, NotSerialized) // get the node num for the HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-		Store (ShiftRight( And (Local1, 0xf0), 0x04), Local0)
-		Return (Local0)
-        }
-
-        Method (GHCL, 1, NotSerialized) // get the link num on node for the HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-                Store (ShiftRight( And (Local1, 0xf00), 0x08), Local0)
-                Return (Local0)
-        }
-
-        Method (GHCD, 2, NotSerialized) // get the unit id base for the HT device in HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCDN, Arg0)), Local1)
-		Store (Arg1, Local2) // Arg1 could be 3, 2, 1, 0
-		Multiply (Local2, 0x08, Local2) // change to 24, 16, 8, 0
-                Store (And (ShiftRight( Local1, Local2), 0xff), Local0)
-                Return (Local0)
-        }
-
-        Method (GBUS, 2, NotSerialized)
-        {
-            Store (0x00, Local0)
-            While (LLess (Local0, 0x04))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
-                        {
-                            Return (ShiftRight (And (Local1, 0x00FF0000), 0x10))
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            Return (0x00)
-        }
-
-        Method (GWBN, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
-                    0x0000, // Address Space Granularity
-                    0x0000, // Address Range Minimum
-                    0x0000, // Address Range Maximum
-                    0x0000, // Address Translation Offset
-                    0x0000,,,)
-            })
-            CreateWordField (BUF0, 0x08, BMIN)
-            CreateWordField (BUF0, 0x0A, BMAX)
-            CreateWordField (BUF0, 0x0E, BLEN)
-            Store (0x00, Local0)
-            While (LLess (Local0, 0x04))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
-                        {
-                            Store (ShiftRight (And (Local1, 0x00FF0000), 0x10), BMIN)
-                            Store (ShiftRight (Local1, 0x18), BMAX)
-                            Subtract (BMAX, BMIN, BLEN)
-                            Increment (BLEN)
-                            Return (RTAG (BUF0))
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            Return (RTAG (BUF0))
-        }
-
-        Method (GMEM, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
-                    0x00000000, // Address Space Granularity
-                    0x00000000, // Address Range Minimum
-                    0x00000000, // Address Range Maximum
-                    0x00000000, // Address Translation Offset
-                    0x00000000,,,
-                    , AddressRangeMemory, TypeStatic)
-            })
-            CreateDWordField (BUF0, 0x0A, MMIN)
-            CreateDWordField (BUF0, 0x0E, MMAX)
-            CreateDWordField (BUF0, 0x16, MLEN)
-            Store (0x00, Local0)
-            Store (0x00, Local4)
-	    Store (0x00, Local3)
-            While (LLess (Local0, 0x10))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local1)
-                Increment (Local0)
-                Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local2)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, And (Local2, 0x07)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
-                        {
-                            Store (ShiftLeft (And (Local1, 0xFFFFFF00), 0x08), MMIN)
-                            Store (ShiftLeft (And (Local2, 0xFFFFFF00), 0x08), MMAX)
-                            Or (MMAX, 0xFFFF, MMAX)
-                            Subtract (MMAX, MMIN, MLEN)
-                            Increment (MLEN)
-                            If (Local4)
-                            {
-                                Concatenate (RTAG (BUF0), Local3, Local5)
-                               	Store (Local5, Local3)
-                            }
-                            Else
-                            {
-                                Store (RTAG (BUF0), Local3)
-                            }
-
-                            Increment (Local4)
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            If (LNot (Local4))
-            {
-                Store (BUF0, Local3)
-            }
-
-            Return (Local3)
-        }
-
-        Method (GIOR, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
-                    0x00000000, // Address Space Granularity
-                    0x00000000, // Address Range Minimum
-                    0x00000000, // Address Range Maximum
-                    0x00000000, // Address Translation Offset
-                    0x00000000,,,
-                    , TypeStatic)
-            })
-            CreateDWordField (BUF0, 0x0A, PMIN)
-            CreateDWordField (BUF0, 0x0E, PMAX)
-            CreateDWordField (BUF0, 0x16, PLEN)
-            Store (0x00, Local0)
-            Store (0x00, Local4)
-	    Store (0x00, Local3)
-            While (LLess (Local0, 0x08))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local1)
-                Increment (Local0)
-                Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local2)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, And (Local2, 0x07)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
-                        {
-                            Store (And (Local1, 0x01FFF000), PMIN)
-                            Store (And (Local2, 0x01FFF000), PMAX)
-                            Or (PMAX, 0x0FFF, PMAX)
-                            Subtract (PMAX, PMIN, PLEN)
-                            Increment (PLEN)
-                            If (Local4)
-                            {
-                                Concatenate (RTAG (BUF0), Local3, Local5)
-       	                        Store (Local5, Local3)
-                            }
-                            Else
-                            {
-                                If (LGreater (PMAX, PMIN))
-                                {
-                                    If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-                                    {
-                                        Store (0x0D00, PMIN)
-                                        Subtract (PMAX, PMIN, PLEN)
-                                        Increment (PLEN)
-                                    }
-                                    Store (RTAG (BUF0), Local3)
-                                    Increment (Local4)
-                                }
-
-                                If (And (Local1, 0x10))
-                                {
-                                    Store (0x03B0, PMIN)
-                                    Store (0x03DF, PMAX)
-                                    Store (0x30, PLEN)
-
-                                    If (Local4)
-                                    {
-                                        Concatenate (RTAG (BUF0), Local3, Local5)
-                                        Store (Local5, Local3)
-                                    }
-                                    Else
-                                    {
-                                        Store (RTAG (BUF0), Local3)
-                                    }
-                                }
-                            }
-
-                            Increment (Local4)
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            If (LNot (Local4))
-            {
-                Store (RTAG (BUF0), Local3)
-            }
-
-            Return (Local3)
-        }
-
-        Method (RTAG, 1, NotSerialized)
-        {
-            Store (Arg0, Local0)
-            Store (SizeOf (Local0), Local1)
-            Subtract (Local1, 0x02, Local1)
-            Multiply (Local1, 0x08, Local1)
-            CreateField (Local0, 0x00, Local1, RETB)
-            Store (RETB, Local2)
-            Return (Local2)
-        }
-    }
-

Modified: trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/dsdt.asl
===================================================================
--- trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/dsdt.asl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/asus/m2v-mx_se/dsdt.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -22,7 +22,7 @@
 
 DefinitionBlock ("DSDT.aml", "DSDT", 1, "LXBIOS", "LXB-DSDT", 1)
 {
-	 Include ("amdk8_util.asl")
+	 Include ("../../../../src/northbridge/amd/amdk8/amdk8_util.asl")
 
 	/* For now only define 2 power states:
 	 *  - S0 which is fully on

Deleted: trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/amdk8_util.asl
===================================================================
--- trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/amdk8_util.asl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/amdk8_util.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -1,315 +0,0 @@
-/*
- * Copyright 2005 AMD
- */
-
-//AMD k8 util for BUSB and res range
-
-    Scope (\_SB)
-    {
-
-        Name (OSTB, Ones)
-        Method (OSTP, 0, NotSerialized)
-        {
-            If (LEqual (^OSTB, Ones))
-            {
-                Store (0x00, ^OSTB)
-            }
-
-            Return (^OSTB)
-        }
-
-       Method (SEQL, 2, Serialized)
-        {
-            Store (SizeOf (Arg0), Local0)
-            Store (SizeOf (Arg1), Local1)
-            If (LNot (LEqual (Local0, Local1))) { Return (Zero) }
-
-            Name (BUF0, Buffer (Local0) {})
-            Store (Arg0, BUF0)
-            Name (BUF1, Buffer (Local0) {})
-            Store (Arg1, BUF1)
-            Store (Zero, Local2)
-            While (LLess (Local2, Local0))
-            {
-                Store (DerefOf (Index (BUF0, Local2)), Local3)
-                Store (DerefOf (Index (BUF1, Local2)), Local4)
-                If (LNot (LEqual (Local3, Local4))) { Return (Zero) }
-
-                Increment (Local2)
-            }
-
-            Return (One)
-        }
-
-
-        Method (DADD, 2, NotSerialized)
-        {
-                Store( Arg1, Local0)
-                Store( Arg0, Local1)
-                Add( ShiftLeft(Local1,16), Local0, Local0)
-                Return (Local0)
-        }
-
-
-	Method (GHCE, 1, NotSerialized) // check if the HC enabled
-	{
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-                if(LEqual ( And(Local1, 0x01), 0x01)) { Return (0x0F) }
-                Else { Return (0x00) }
-	}
-
-        Method (GHCN, 1, NotSerialized) // get the node num for the HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-		Store (ShiftRight( And (Local1, 0xf0), 0x04), Local0)
-		Return (Local0)
-        }
-
-        Method (GHCL, 1, NotSerialized) // get the link num on node for the HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
-                Store (ShiftRight( And (Local1, 0xf00), 0x08), Local0)
-                Return (Local0)
-        }
-
-        Method (GHCD, 2, NotSerialized) // get the unit id base for the HT device in HC
-        {
-                Store (0x00, Local0)
-                Store (DerefOf (Index (\_SB.PCI0.HCDN, Arg0)), Local1)
-		Store (Arg1, Local2) // Arg1 could be 3, 2, 1, 0
-		Multiply (Local2, 0x08, Local2) // change to 24, 16, 8, 0
-                Store (And (ShiftRight( Local1, Local2), 0xff), Local0)
-                Return (Local0)
-        }
-
-        Method (GBUS, 2, NotSerialized)
-        {
-            Store (0x00, Local0)
-            While (LLess (Local0, 0x04))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
-                        {
-                            Return (ShiftRight (And (Local1, 0x00FF0000), 0x10))
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            Return (0x00)
-        }
-
-        Method (GWBN, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
-                    0x0000, // Address Space Granularity
-                    0x0000, // Address Range Minimum
-                    0x0000, // Address Range Maximum
-                    0x0000, // Address Translation Offset
-                    0x0000,,,)
-            })
-            CreateWordField (BUF0, 0x08, BMIN)
-            CreateWordField (BUF0, 0x0A, BMAX)
-            CreateWordField (BUF0, 0x0E, BLEN)
-            Store (0x00, Local0)
-            While (LLess (Local0, 0x04))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
-                        {
-                            Store (ShiftRight (And (Local1, 0x00FF0000), 0x10), BMIN)
-                            Store (ShiftRight (Local1, 0x18), BMAX)
-                            Subtract (BMAX, BMIN, BLEN)
-                            Increment (BLEN)
-                            Return (RTAG (BUF0))
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            Return (RTAG (BUF0))
-        }
-
-        Method (GMEM, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
-                    0x00000000, // Address Space Granularity
-                    0x00000000, // Address Range Minimum
-                    0x00000000, // Address Range Maximum
-                    0x00000000, // Address Translation Offset
-                    0x00000000,,,
-                    , AddressRangeMemory, TypeStatic)
-            })
-            CreateDWordField (BUF0, 0x0A, MMIN)
-            CreateDWordField (BUF0, 0x0E, MMAX)
-            CreateDWordField (BUF0, 0x16, MLEN)
-            Store (0x00, Local0)
-            Store (0x00, Local4)
-	    Store (0x00, Local3)
-            While (LLess (Local0, 0x10))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local1)
-                Increment (Local0)
-                Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local2)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, And (Local2, 0x07)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
-                        {
-                            Store (ShiftLeft (And (Local1, 0xFFFFFF00), 0x08), MMIN)
-                            Store (ShiftLeft (And (Local2, 0xFFFFFF00), 0x08), MMAX)
-                            Or (MMAX, 0xFFFF, MMAX)
-                            Subtract (MMAX, MMIN, MLEN)
-
-                            If (Local4)
-                            {
-                                Concatenate (RTAG (BUF0), Local3, Local5)
-                               	Store (Local5, Local3)
-                            }
-                            Else
-                            {
-                                If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-                                {
-                                    Store (\_SB.PCI0.TOM1, MMIN)
-                                    Subtract (MMAX, MMIN, MLEN)
-                                    Increment (MLEN)
-                                }
-
-                                Store (RTAG (BUF0), Local3)
-                            }
-
-                            Increment (Local4)
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            If (LNot (Local4))
-            {
-                Store (BUF0, Local3)
-            }
-
-            Return (Local3)
-        }
-
-        Method (GIOR, 2, NotSerialized)
-        {
-            Name (BUF0, ResourceTemplate ()
-            {
-                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
-                    0x00000000, // Address Space Granularity
-                    0x00000000, // Address Range Minimum
-                    0x00000000, // Address Range Maximum
-                    0x00000000, // Address Translation Offset
-                    0x00000000,,,
-                    , TypeStatic)
-            })
-            CreateDWordField (BUF0, 0x0A, PMIN)
-            CreateDWordField (BUF0, 0x0E, PMAX)
-            CreateDWordField (BUF0, 0x16, PLEN)
-            Store (0x00, Local0)
-            Store (0x00, Local4)
-	    Store (0x00, Local3)
-            While (LLess (Local0, 0x08))
-            {
-                Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local1)
-                Increment (Local0)
-                Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local2)
-                If (LEqual (And (Local1, 0x03), 0x03))
-                {
-                    If (LEqual (Arg0, And (Local2, 0x07)))
-                    {
-                        If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
-                        {
-                            Store (And (Local1, 0x01FFF000), PMIN)
-                            Store (And (Local2, 0x01FFF000), PMAX)
-                            Or (PMAX, 0x0FFF, PMAX)
-                            Subtract (PMAX, PMIN, PLEN)
-                            Increment (PLEN)
-
-                            If (Local4)
-                            {
-                                Concatenate (RTAG (BUF0), Local3, Local5)
-       	                        Store (Local5, Local3)
-                            }
-                            Else
-                            {
-                                If (LGreater (PMAX, PMIN))
-                                {
-                                    If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
-                                    {
-                                        Store (0x0D00, PMIN)
-                                        Subtract (PMAX, PMIN, PLEN)
-                                        Increment (PLEN)
-                                    }
-
-                                    Store (RTAG (BUF0), Local3)
-                                    Increment (Local4)
-                                }
-
-                                If (And (Local1, 0x10))
-                                {
-                                    Store (0x03B0, PMIN)
-                                    Store (0x03DF, PMAX)
-                                    Store (0x30, PLEN)
-                                    If (Local4)
-                                    {
-                                        Concatenate (RTAG (BUF0), Local3, Local5)
-                                        Store (Local5, Local3)
-                                    }
-                                    Else
-                                    {
-                                        Store (RTAG (BUF0), Local3)
-                                    }
-                                }
-                            }
-
-                            Increment (Local4)
-                        }
-                    }
-                }
-
-                Increment (Local0)
-            }
-
-            If (LNot (Local4))
-            {
-                Store (RTAG (BUF0), Local3)
-            }
-
-            Return (Local3)
-        }
-
-        Method (RTAG, 1, NotSerialized)
-        {
-            Store (Arg0, Local0)
-            Store (SizeOf (Local0), Local1)
-            Subtract (Local1, 0x02, Local1)
-            Multiply (Local1, 0x08, Local1)
-            CreateField (Local0, 0x00, Local1, RETB)
-            Store (RETB, Local2)
-            Return (Local2)
-        }
-    }
-

Modified: trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/dsdt_lb.dsl
===================================================================
--- trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/dsdt_lb.dsl	2009-03-08 04:37:39 UTC (rev 3985)
+++ trunk/coreboot-v2/src/mainboard/iwill/dk8_htx/dx/dsdt_lb.dsl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -206,7 +206,7 @@
         Z00A,   8
     }
 
-    Include ("amdk8_util.asl")
+    Include ("../../../../../src/northbridge/amd/amdk8/amdk8_util.asl")
 
 }
 

Added: trunk/coreboot-v2/src/northbridge/amd/amdfam10/amdfam10_util.asl
===================================================================
--- trunk/coreboot-v2/src/northbridge/amd/amdfam10/amdfam10_util.asl	                        (rev 0)
+++ trunk/coreboot-v2/src/northbridge/amd/amdfam10/amdfam10_util.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -0,0 +1,324 @@
+//
+// This file is part of the coreboot project.
+//
+// Copyright (C) 2007 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
+//
+
+//AMD FAM10 util for BUSB and res range
+
+Scope (\_SB)
+{
+
+	Name (OSTB, Ones)
+	Method (OSTP, 0, NotSerialized)
+	{
+		If (LEqual (^OSTB, Ones))
+		{
+			Store (0x00, ^OSTB)
+		}
+
+		Return (^OSTB)
+	}
+
+	Method (SEQL, 2, Serialized)
+	{
+		Store (SizeOf (Arg0), Local0)
+		Store (SizeOf (Arg1), Local1)
+		If (LNot (LEqual (Local0, Local1))) { Return (Zero) }
+
+		Name (BUF0, Buffer (Local0) {})
+		Store (Arg0, BUF0)
+		Name (BUF1, Buffer (Local0) {})
+		Store (Arg1, BUF1)
+		Store (Zero, Local2)
+		While (LLess (Local2, Local0))
+		{
+			Store (DerefOf (Index (BUF0, Local2)), Local3)
+			Store (DerefOf (Index (BUF1, Local2)), Local4)
+			If (LNot (LEqual (Local3, Local4))) { Return (Zero) }
+
+			Increment (Local2)
+		}
+
+		Return (One)
+	}
+
+
+	Method (DADD, 2, NotSerialized)
+	{
+		Store( Arg1, Local0)
+		Store( Arg0, Local1)
+		Add( ShiftLeft(Local1,16), Local0, Local0)
+		Return (Local0)
+	}
+
+
+	Method (GHCE, 1, NotSerialized) // check if the HC enabled
+	{
+		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
+		if(LEqual ( And(Local1, 0x01), 0x01)) { Return (0x0F) }
+		Else { Return (0x00) }
+	}
+
+	Method (GHCN, 1, NotSerialized) // get the node num for the HC
+	{
+		Store (0x00, Local0)
+		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
+		Store (ShiftRight( And (Local1, 0xfc), 0x02), Local0)
+		Return (Local0)
+	}
+
+	Method (GHCL, 1, NotSerialized) // get the link num on node for the HC
+	{
+		Store (0x00, Local0)
+		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
+		Store (ShiftRight( And (Local1, 0x700), 0x08), Local0)
+		Return (Local0)
+	}
+
+	Method (GHCD, 2, NotSerialized) // get the unit id base for the HT device in HC
+	{
+		Store (0x00, Local0)
+		Store (DerefOf (Index (\_SB.PCI0.HCDN, Arg0)), Local1)
+		Store (Arg1, Local2) // Arg1 could be 3, 2, 1, 0
+		Multiply (Local2, 0x08, Local2) // change to 24, 16, 8, 0
+		Store (And (ShiftRight( Local1, Local2), 0xff), Local0)
+		Return (Local0)
+	}
+
+	Method (GBUS, 2, NotSerialized)
+	{
+		Store (0x00, Local0)
+		While (LLess (Local0, 0x20)) // 32 ht links
+		{
+			Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, ShiftRight (And (Local1, 0xfc), 0x02)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0700), 0x08))))
+					{
+						Return (ShiftRight (And (Local1, 0x000FF000), 0x0c))
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		Return (0x00)
+	}
+
+	Method (GWBN, 2, NotSerialized)
+	{
+		Name (BUF0, ResourceTemplate ()
+		{
+			WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+				0x0000, // Address Space Granularity
+				0x0000, // Address Range Minimum
+				0x0000, // Address Range Maximum
+				0x0000, // Address Translation Offset
+				0x0000,,,)
+		})
+		CreateWordField (BUF0, 0x08, BMIN)
+		CreateWordField (BUF0, 0x0A, BMAX)
+		CreateWordField (BUF0, 0x0E, BLEN)
+		Store (0x00, Local0)
+		While (LLess (Local0, 0x20))
+		{
+			Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, ShiftRight (And (Local1, 0xfc), 0x02)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0700), 0x08))))
+					{
+						Store (ShiftRight (And (Local1, 0x000FF000), 0x0c), BMIN)
+						Store (ShiftRight (Local1, 0x14), BMAX)
+						Subtract (BMAX, BMIN, BLEN)
+						Increment (BLEN)
+						Return (RTAG (BUF0))
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		Return (RTAG (BUF0))
+	}
+
+	Method (GMEM, 2, NotSerialized)
+	{
+		Name (BUF0, ResourceTemplate ()
+		{
+			DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+				0x00000000, // Address Space Granularity
+				0x00000000, // Address Range Minimum
+				0x00000000, // Address Range Maximum
+				0x00000000, // Address Translation Offset
+				0x00000000,,,
+				, AddressRangeMemory, TypeStatic)
+		})
+		CreateDWordField (BUF0, 0x0A, MMIN)
+		CreateDWordField (BUF0, 0x0E, MMAX)
+		CreateDWordField (BUF0, 0x16, MLEN)
+		Store (0x00, Local0)
+		Store (0x00, Local4)
+		Store (0x00, Local3)
+		While (LLess (Local0, 0x80)) // 0x20 links * 2(mem, prefmem ) *2 ( base, limit )
+		{
+			Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local1)
+			Increment (Local0)
+			Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local2)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, And (Local2, 0x3f)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x70), 0x04))))
+					{
+						Store (ShiftLeft (And (Local1, 0xFFFFFF00), 0x08), MMIN)
+						Store (ShiftLeft (And (Local2, 0xFFFFFF00), 0x08), MMAX)
+						Or (MMAX, 0xFFFF, MMAX)
+						Subtract (MMAX, MMIN, MLEN)
+						Increment (MLEN)
+
+						If (Local4)
+						{
+							Concatenate (RTAG (BUF0), Local3, Local5)
+							Store (Local5, Local3)
+						}
+						Else
+						{
+							Store (RTAG (BUF0), Local3)
+						}
+
+						Increment (Local4)
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		If (LNot (Local4))
+		{
+			Store (BUF0, Local3)
+		}
+
+		Return (Local3)
+	}
+
+	Method (GIOR, 2, NotSerialized)
+	{
+		Name (BUF0, ResourceTemplate ()
+		{
+			DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+				0x00000000, // Address Space Granularity
+				0x00000000, // Address Range Minimum
+				0x00000000, // Address Range Maximum
+				0x00000000, // Address Translation Offset
+				0x00000000,,,
+				, TypeStatic)
+		})
+		CreateDWordField (BUF0, 0x0A, PMIN)
+		CreateDWordField (BUF0, 0x0E, PMAX)
+		CreateDWordField (BUF0, 0x16, PLEN)
+		Store (0x00, Local0)
+		Store (0x00, Local4)
+		Store (0x00, Local3)
+		While (LLess (Local0, 0x40)) // 0x20 ht links * 2 ( base, limit)
+		{
+			Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local1)
+			Increment (Local0)
+			Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local2)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, And (Local2, 0x3f)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x70), 0x04))))
+					{
+						Store (And (Local1, 0x01FFF000), PMIN)
+						Store (And (Local2, 0x01FFF000), PMAX)
+						Or (PMAX, 0x0FFF, PMAX)
+						Subtract (PMAX, PMIN, PLEN)
+						Increment (PLEN)
+
+						If (Local4)
+						{
+							Concatenate (RTAG (BUF0), Local3, Local5)
+							Store (Local5, Local3)
+						}
+						Else
+						{
+							If (LGreater (PMAX, PMIN))
+							{
+								If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
+								{
+									Store (0x0D00, PMIN)
+									Subtract (PMAX, PMIN, PLEN)
+									Increment (PLEN)
+								}
+
+								Store (RTAG (BUF0), Local3)
+								Increment (Local4)
+							}
+
+							If (And (Local1, 0x10))
+							{
+								Store (0x03B0, PMIN)
+								Store (0x03DF, PMAX)
+								Store (0x30, PLEN)
+
+								If (Local4)
+								{
+									Concatenate (RTAG (BUF0), Local3, Local5)
+									Store (Local5, Local3)
+								}
+								Else
+								{
+									Store (RTAG (BUF0), Local3)
+								}
+							}
+						}
+
+						Increment (Local4)
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		If (LNot (Local4))
+		{
+			Store (RTAG (BUF0), Local3)
+		}
+
+		Return (Local3)
+	}
+
+	Method (RTAG, 1, NotSerialized)
+	{
+		Store (Arg0, Local0)
+		Store (SizeOf (Local0), Local1)
+		Subtract (Local1, 0x02, Local1)
+		Multiply (Local1, 0x08, Local1)
+		CreateField (Local0, 0x00, Local1, RETB)
+		Store (RETB, Local2)
+		Return (Local2)
+	}
+}

Added: trunk/coreboot-v2/src/northbridge/amd/amdk8/amdk8_util.asl
===================================================================
--- trunk/coreboot-v2/src/northbridge/amd/amdk8/amdk8_util.asl	                        (rev 0)
+++ trunk/coreboot-v2/src/northbridge/amd/amdk8/amdk8_util.asl	2009-03-10 18:06:47 UTC (rev 3986)
@@ -0,0 +1,309 @@
+/*
+ * Copyright 2005 AMD
+ */
+
+//AMD k8 util for BUSB and res range
+
+Scope (\_SB)
+{
+
+	Name (OSTB, Ones)
+	Method (OSTP, 0, NotSerialized)
+	{
+		If (LEqual (^OSTB, Ones))
+		{
+			Store (0x00, ^OSTB)
+		}
+
+		Return (^OSTB)
+	}
+
+	Method (SEQL, 2, Serialized)
+	{
+		Store (SizeOf (Arg0), Local0)
+		Store (SizeOf (Arg1), Local1)
+		If (LNot (LEqual (Local0, Local1))) { Return (Zero) }
+
+		Name (BUF0, Buffer (Local0) {})
+		Store (Arg0, BUF0)
+		Name (BUF1, Buffer (Local0) {})
+		Store (Arg1, BUF1)
+		Store (Zero, Local2)
+		While (LLess (Local2, Local0))
+		{
+			Store (DerefOf (Index (BUF0, Local2)), Local3)
+			Store (DerefOf (Index (BUF1, Local2)), Local4)
+			If (LNot (LEqual (Local3, Local4))) { Return (Zero) }
+
+			Increment (Local2)
+		}
+
+		Return (One)
+	}
+
+
+	Method (DADD, 2, NotSerialized)
+	{
+		Store( Arg1, Local0)
+		Store( Arg0, Local1)
+		Add( ShiftLeft(Local1,16), Local0, Local0)
+		Return (Local0)
+	}
+
+
+	Method (GHCE, 1, NotSerialized) // check if the HC enabled
+	{
+		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
+		if(LEqual ( And(Local1, 0x01), 0x01)) { Return (0x0F) }
+		Else { Return (0x00) }
+	}
+
+	Method (GHCN, 1, NotSerialized) // get the node num for the HC
+	{
+		Store (0x00, Local0)
+		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
+		Store (ShiftRight( And (Local1, 0xf0), 0x04), Local0)
+		Return (Local0)
+	}
+
+	Method (GHCL, 1, NotSerialized) // get the link num on node for the HC
+	{
+		Store (0x00, Local0)
+		Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1)
+		Store (ShiftRight( And (Local1, 0xf00), 0x08), Local0)
+		Return (Local0)
+	}
+
+	Method (GHCD, 2, NotSerialized) // get the unit id base for the HT device in HC
+	{
+		Store (0x00, Local0)
+		Store (DerefOf (Index (\_SB.PCI0.HCDN, Arg0)), Local1)
+		Store (Arg1, Local2) // Arg1 could be 3, 2, 1, 0
+		Multiply (Local2, 0x08, Local2) // change to 24, 16, 8, 0
+		Store (And (ShiftRight( Local1, Local2), 0xff), Local0)
+		Return (Local0)
+	}
+
+	Method (GBUS, 2, NotSerialized)
+	{
+		Store (0x00, Local0)
+		While (LLess (Local0, 0x04))
+		{
+			Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
+					{
+						Return (ShiftRight (And (Local1, 0x00FF0000), 0x10))
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		Return (0x00)
+	}
+
+	Method (GWBN, 2, NotSerialized)
+	{
+		Name (BUF0, ResourceTemplate ()
+		{
+			WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+				0x0000, // Address Space Granularity
+				0x0000, // Address Range Minimum
+				0x0000, // Address Range Maximum
+				0x0000, // Address Translation Offset
+				0x0000,,,)
+		})
+		CreateWordField (BUF0, 0x08, BMIN)
+		CreateWordField (BUF0, 0x0A, BMAX)
+		CreateWordField (BUF0, 0x0E, BLEN)
+		Store (0x00, Local0)
+		While (LLess (Local0, 0x04))
+		{
+			Store (DerefOf (Index (\_SB.PCI0.BUSN, Local0)), Local1)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, ShiftRight (And (Local1, 0x70), 0x04)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local1, 0x0300), 0x08))))
+					{
+						Store (ShiftRight (And (Local1, 0x00FF0000), 0x10), BMIN)
+						Store (ShiftRight (Local1, 0x18), BMAX)
+						Subtract (BMAX, BMIN, BLEN)
+						Increment (BLEN)
+						Return (RTAG (BUF0))
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		Return (RTAG (BUF0))
+	}
+
+	Method (GMEM, 2, NotSerialized)
+	{
+		Name (BUF0, ResourceTemplate ()
+		{
+			DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+				0x00000000, // Address Space Granularity
+				0x00000000, // Address Range Minimum
+				0x00000000, // Address Range Maximum
+				0x00000000, // Address Translation Offset
+				0x00000000,,,
+				, AddressRangeMemory, TypeStatic)
+		})
+		CreateDWordField (BUF0, 0x0A, MMIN)
+		CreateDWordField (BUF0, 0x0E, MMAX)
+		CreateDWordField (BUF0, 0x16, MLEN)
+		Store (0x00, Local0)
+		Store (0x00, Local4)
+		Store (0x00, Local3)
+		While (LLess (Local0, 0x10))
+		{
+			Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local1)
+			Increment (Local0)
+			Store (DerefOf (Index (\_SB.PCI0.MMIO, Local0)), Local2)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, And (Local2, 0x07)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
+					{
+						Store (ShiftLeft (And (Local1, 0xFFFFFF00), 0x08), MMIN)
+						Store (ShiftLeft (And (Local2, 0xFFFFFF00), 0x08), MMAX)
+						Or (MMAX, 0xFFFF, MMAX)
+						Subtract (MMAX, MMIN, MLEN)
+						Increment (MLEN)
+
+						If (Local4)
+						{
+							Concatenate (RTAG (BUF0), Local3, Local5)
+							Store (Local5, Local3)
+						}
+						Else
+						{
+							Store (RTAG (BUF0), Local3)
+						}
+
+						Increment (Local4)
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		If (LNot (Local4))
+		{
+			Store (BUF0, Local3)
+		}
+
+		Return (Local3)
+	}
+
+	Method (GIOR, 2, NotSerialized)
+	{
+		Name (BUF0, ResourceTemplate ()
+		{
+			DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+				0x00000000, // Address Space Granularity
+				0x00000000, // Address Range Minimum
+				0x00000000, // Address Range Maximum
+				0x00000000, // Address Translation Offset
+				0x00000000,,,
+				, TypeStatic)
+		})
+		CreateDWordField (BUF0, 0x0A, PMIN)
+		CreateDWordField (BUF0, 0x0E, PMAX)
+		CreateDWordField (BUF0, 0x16, PLEN)
+		Store (0x00, Local0)
+		Store (0x00, Local4)
+		Store (0x00, Local3)
+		While (LLess (Local0, 0x08))
+		{
+			Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local1)
+			Increment (Local0)
+			Store (DerefOf (Index (\_SB.PCI0.PCIO, Local0)), Local2)
+			If (LEqual (And (Local1, 0x03), 0x03))
+			{
+				If (LEqual (Arg0, And (Local2, 0x07)))
+				{
+					If (LOr (LEqual (Arg1, 0xFF), LEqual (Arg1, ShiftRight (And (Local2, 0x30), 0x04))))
+					{
+						Store (And (Local1, 0x01FFF000), PMIN)
+						Store (And (Local2, 0x01FFF000), PMAX)
+						Or (PMAX, 0x0FFF, PMAX)
+						Subtract (PMAX, PMIN, PLEN)
+						Increment (PLEN)
+
+						If (Local4)
+						{
+							Concatenate (RTAG (BUF0), Local3, Local5)
+							Store (Local5, Local3)
+						}
+						Else
+						{
+							If (LGreater (PMAX, PMIN))
+							{
+								If (LOr (LAnd (LEqual (Arg1, 0xFF), LEqual (Arg0, 0x00)), LEqual (Arg1, \_SB.PCI0.SBLK)))
+								{
+									Store (0x0D00, PMIN)
+									Subtract (PMAX, PMIN, PLEN)
+									Increment (PLEN)
+								}
+
+								Store (RTAG (BUF0), Local3)
+								Increment (Local4)
+							}
+
+							If (And (Local1, 0x10))
+							{
+								Store (0x03B0, PMIN)
+								Store (0x03DF, PMAX)
+								Store (0x30, PLEN)
+
+								If (Local4)
+								{
+									Concatenate (RTAG (BUF0), Local3, Local5)
+									Store (Local5, Local3)
+								}
+								Else
+								{
+									Store (RTAG (BUF0), Local3)
+								}
+							}
+						}
+
+						Increment (Local4)
+					}
+				}
+			}
+
+			Increment (Local0)
+		}
+
+		If (LNot (Local4))
+		{
+			Store (RTAG (BUF0), Local3)
+		}
+
+		Return (Local3)
+	}
+
+	Method (RTAG, 1, NotSerialized)
+	{
+		Store (Arg0, Local0)
+		Store (SizeOf (Local0), Local1)
+		Subtract (Local1, 0x02, Local1)
+		Multiply (Local1, 0x08, Local1)
+		CreateField (Local0, 0x00, Local1, RETB)
+		Store (RETB, Local2)
+		Return (Local2)
+	}
+}





More information about the coreboot mailing list