From bbdd8f4a9f206ca40dea2b15d9458ac048de6c64 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Sun, 4 Dec 2005 21:52:58 +0000 Subject: 1203_hcdn.diff: store every HT device unit id base and pass those info to acpi https://openbios.org/roundup/linuxbios/issue46 Note: This version drops the two scripts a and c and creates the dsdt on the fly from Config.lb using makerule git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2134 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/mainboard/amd/serengeti_leopard/dx/amd8131.asl | 14 ++++++++++++-- src/mainboard/amd/serengeti_leopard/dx/amd8151.asl | 6 +++++- src/mainboard/amd/serengeti_leopard/dx/amdk8_util.asl | 16 +++++++++++++--- src/mainboard/amd/serengeti_leopard/dx/dsdt_lb.dsl | 3 +++ src/mainboard/amd/serengeti_leopard/dx/pci2.asl | 2 +- 5 files changed, 34 insertions(+), 7 deletions(-) (limited to 'src/mainboard/amd/serengeti_leopard/dx') diff --git a/src/mainboard/amd/serengeti_leopard/dx/amd8131.asl b/src/mainboard/amd/serengeti_leopard/dx/amd8131.asl index 62fa88d6fa..96a7181e3e 100644 --- a/src/mainboard/amd/serengeti_leopard/dx/amd8131.asl +++ b/src/mainboard/amd/serengeti_leopard/dx/amd8131.asl @@ -4,7 +4,12 @@ Device (PG0A) { - Name (_ADR, 0x00010000) /* 8132 pcix bridge*/ + /* 8132 pcix bridge*/ + Method (_ADR, 0, NotSerialized) + { + Return (DADD(GHCD(HCIN, 0), 0x00000000)) + } + Method (_PRW, 0, NotSerialized) { If (CondRefOf (\_S3, Local0)) { Return (Package (0x02) { 0x29, 0x03 }) } @@ -79,7 +84,12 @@ Device (PG0B) { - Name (_ADR, 0x00020000) /* 8132 pcix bridge 2 */ + /* 8132 pcix bridge 2 */ + Method (_ADR, 0, NotSerialized) + { + Return (DADD(GHCD(HCIN, 0), 0x00010000)) + } + Method (_PRW, 0, NotSerialized) { If (CondRefOf (\_S3, Local0)) { Return (Package (0x02) { 0x22, 0x03 }) } diff --git a/src/mainboard/amd/serengeti_leopard/dx/amd8151.asl b/src/mainboard/amd/serengeti_leopard/dx/amd8151.asl index 381bfa0375..8ce42d3492 100644 --- a/src/mainboard/amd/serengeti_leopard/dx/amd8151.asl +++ b/src/mainboard/amd/serengeti_leopard/dx/amd8151.asl @@ -1,7 +1,11 @@ // AMD8151 Device (AGPB) { - Name (_ADR, 0x00020000) + Method (_ADR, 0, NotSerialized) + { + Return (DADD(GHCD(HCIN, 0), 0x00010000)) + } + Name (APIC, Package (0x04) { Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x10 }, diff --git a/src/mainboard/amd/serengeti_leopard/dx/amdk8_util.asl b/src/mainboard/amd/serengeti_leopard/dx/amdk8_util.asl index 82c55c4c3d..e9155476c5 100644 --- a/src/mainboard/amd/serengeti_leopard/dx/amdk8_util.asl +++ b/src/mainboard/amd/serengeti_leopard/dx/amdk8_util.asl @@ -51,14 +51,14 @@ } - Method (GHCE, 1, NotSerialized) + 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) + Method (GHCN, 1, NotSerialized) // get the node num for the HC { Store (0x00, Local0) Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1) @@ -66,7 +66,7 @@ Return (Local0) } - Method (GHCL, 1, NotSerialized) + Method (GHCL, 1, NotSerialized) // get the link num on node for the HC { Store (0x00, Local0) Store (DerefOf (Index (\_SB.PCI0.HCLK, Arg0)), Local1) @@ -74,6 +74,16 @@ 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) diff --git a/src/mainboard/amd/serengeti_leopard/dx/dsdt_lb.dsl b/src/mainboard/amd/serengeti_leopard/dx/dsdt_lb.dsl index 2f20a26929..9a7f6b1820 100644 --- a/src/mainboard/amd/serengeti_leopard/dx/dsdt_lb.dsl +++ b/src/mainboard/amd/serengeti_leopard/dx/dsdt_lb.dsl @@ -51,6 +51,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, "AMD-K8", "AMDACPI", 100925440) External (TOM1) External (HCLK) External (SBDN) + External (HCDN) Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00180000) @@ -71,6 +72,8 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, "AMD-K8", "AMDACPI", 100925440) Device (PCI1) { + + Name (HCIN, 0x00) // HC1 // BUS 1 first HT Chain Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00180000) // Fake diff --git a/src/mainboard/amd/serengeti_leopard/dx/pci2.asl b/src/mainboard/amd/serengeti_leopard/dx/pci2.asl index 59999c94b3..a8e80c1617 100644 --- a/src/mainboard/amd/serengeti_leopard/dx/pci2.asl +++ b/src/mainboard/amd/serengeti_leopard/dx/pci2.asl @@ -9,6 +9,7 @@ DefinitionBlock ("SSDT2.aml", "SSDT", 1, "AMD-K8", "AMDACPI", 100925440) External (GHCE, MethodObj) External (GHCN, MethodObj) External (GHCL, MethodObj) + External (GHCD, MethodObj) External (GNUS, MethodObj) External (GIOR, MethodObj) External (GMEM, MethodObj) @@ -21,7 +22,6 @@ DefinitionBlock ("SSDT2.aml", "SSDT", 1, "AMD-K8", "AMDACPI", 100925440) External (\_SB.PCI1.LNKB, DeviceObj) External (\_SB.PCI1.LNKC, DeviceObj) External (\_SB.PCI1.LNKD, DeviceObj) - Device (PCI2) { -- cgit v1.2.3