From 487cecf67aa52744bf65a32b8824a22d5370cfe6 Mon Sep 17 00:00:00 2001 From: zwei4 Date: Mon, 10 Apr 2017 10:28:08 +0800 Subject: Add code for IPC. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: zwei4 --- .../Common/Acpi/AcpiTablesPCAT/Platform.asl | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'Platform/BroxtonPlatformPkg/Common/Acpi') diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl index 04ea3ad74d..3a4cdd144a 100644 --- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl +++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl @@ -663,6 +663,58 @@ Scope(\_SB) } } //Device (GPO3) + Scope (\_SB) { + Device(IPC1) + { + Name (_ADR, 0) + Name (_HID, "INT34D2") + Name (_CID, "INT34D2") + + Name (_DDN, "Intel(R) IPCI controller ") + Name (_UID, 1) + + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, 0x00000000, 0x00002000, BAR0) // IPC1 Bar, 8KB + Memory32Fixed (ReadWrite, 0x00000000, 0x00000004, MDAT) // PUnit mailbox Data + Memory32Fixed (ReadWrite, 0x00000000, 0x00000004, MINF) // PUnit mailbox Interface + Memory32Fixed (ReadWrite, 0x00000000, 0x00002000, BAR1) // SSRAM + IO (Decode16, 0x400, 0x480, 0x4, 0x80) //ACPI IO Base address + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {40} // IPC1 IRQ + }) + + + Method (_CRS, 0x0, NotSerialized) + { + CreateDwordField(^RBUF, ^BAR0._BAS, B0BA) + CreateDwordField(^RBUF, ^BAR0._LEN, B0LN) + Store(DD1A, B0BA) // D13A is the BAR high address for B0/D13/F1 + Store(DD1L, B0LN) // D13L is the BAR length for B0/D13/F1 + + CreateDwordField(^RBUF, ^MDAT._BAS, BM01) + CreateDwordField(^RBUF, ^MDAT._LEN, BML1) + CreateDwordField(^RBUF, ^MINF._BAS, BM02) + CreateDwordField(^RBUF, ^MINF._LEN, BML2) + Store(BMDA, BM01) // BMDA is the mail box data + Store(4, BML1) // Length for BMDA is 4 bytes + Store(BMIA, BM02) // BMDA is the mail box interface + Store(4, BML2) // Length for BMIA is 4 bytes + + CreateDwordField(^RBUF, ^BAR1._BAS, B1BA) + CreateDwordField(^RBUF, ^BAR1._LEN, B1LN) + Store(DD3A, B1BA) // D13A is the BAR high address for B0/D13/F3 + Store(DD3L, B1LN) // D13L is the BAR length for B0/D13/F3 + + Return (RBUF) + } + + Method (_STA, 0x0, NotSerialized) + { + + Return (0xF) + } + } + }//end scope } // end Scope(\_SB) -- cgit v1.2.3