| /* |
| * This file is part of the coreboot project. |
| * |
| * Copyright (C) 2007-2009 coresystems GmbH |
| * |
| * 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. |
| */ |
| |
| #include "hostbridge.asl" |
| #include "../i945.h" |
| |
| /* Operating System Capabilities Method */ |
| Method (_OSC, 4) |
| { |
| // Create DWord-addressable fields from the Capabilities Buffer |
| CreateDWordField(Arg3, 0, CDW1) |
| CreateDWordField(Arg3, 4, CDW2) |
| CreateDWordField(Arg3, 8, CDW3) |
| |
| /* Check for proper PCI/PCIe UUID */ |
| If (LEqual(Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) |
| { |
| /* Let OS control everything */ |
| Return(Arg3) |
| } Else { |
| Or(CDW1, 4, CDW1) // Unrecognized UUID, so set bit 2 to 1 |
| Return(Arg3) |
| } |
| } |
| |
| /* PCI Device Resource Consumption */ |
| Device (PDRC) |
| { |
| Name (_HID, EISAID("PNP0C02")) |
| Name (_UID, 1) |
| |
| // This does not seem to work correctly yet - set values statically for |
| // now. |
| |
| //Name (PDRS, ResourceTemplate() { |
| // Memory32Fixed(ReadWrite, 0x00000000, 0x00004000, RCRB) // RCBA |
| // Memory32Fixed(ReadWrite, 0x00000000, 0x00004000, MCHB) // MCHBAR |
| // Memory32Fixed(ReadWrite, 0x00000000, 0x00001000, DMIB) // DMIBAR |
| // Memory32Fixed(ReadWrite, 0x00000000, 0x00001000, EGPB) // EPBAR |
| // Memory32Fixed(ReadWrite, 0x00000000, 0x00000000, PCIE) // PCIE BAR |
| // Memory32Fixed(ReadWrite, 0xfed20000, 0x00070000, ICHB) // Misc ICH |
| //}) |
| |
| Name (PDRS, ResourceTemplate() { |
| Memory32Fixed(ReadWrite, 0xfed1c000, 0x00004000) // RCBA |
| Memory32Fixed(ReadWrite, DEFAULT_MCHBAR, 0x00004000) |
| Memory32Fixed(ReadWrite, DEFAULT_DMIBAR, 0x00001000) |
| Memory32Fixed(ReadWrite, DEFAULT_EPBAR, 0x00001000) |
| Memory32Fixed(ReadWrite, DEFAULT_PCIEXBAR, 0x04000000) |
| Memory32Fixed(ReadWrite, 0xfed20000, 0x00020000) // Misc ICH |
| Memory32Fixed(ReadWrite, 0xfed40000, 0x00005000) // Misc ICH |
| Memory32Fixed(ReadWrite, 0xfed45000, 0x0004b000) // Misc ICH |
| }) |
| |
| // Current Resource Settings |
| Method (_CRS, 0, Serialized) |
| { |
| //CreateDwordField(PDRS, ^RCRB._BAS, RBR0) |
| //ShiftLeft(\_SB.PCI0.LPCB.RCBA, 14, RBR0) |
| |
| //CreateDwordField(PDRS, ^MCHB._BAS, MBR0) |
| //ShiftLeft(\_SB.PCI0.MCHC.MHBR, 14, MBR0) |
| |
| //CreateDwordField(PDRS, ^DMIB._BAS, DBR0) |
| //ShiftLeft(\_SB.PCI0.MCHC.DMBR, 12, DBR0) |
| |
| //CreateDwordField(PDRS, ^EGPB._BAS, EBR0) |
| //ShiftLeft(\_SB.PCI0.MCHC.EPBR, 12, EBR0) |
| |
| //CreateDwordField(PDRS, ^PCIE._BAS, PBR0) |
| //ShiftLeft(\_SB.PCI0.MCHC.PXBR, 26, PBR0) |
| |
| //CreateDwordField(PDRS, ^PCIE._LEN, PSZ0) |
| //ShiftLeft(0x10000000, \_SB.PCI0.MCHC.PXSZ, PSZ0) |
| |
| Return(PDRS) |
| } |
| } |
| |
| // PCIe graphics port 0:1.0 |
| #include "peg.asl" |
| |
| // Integrated graphics 0:2.0 |
| #include "igd.asl" |