public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Pete Batard" <pete@akeo.ie>
To: devel@edk2.groups.io
Cc: ard.biesheuvel@linaro.org, leif@nuviainc.com, philmd@redhat.com
Subject: [edk2-platforms][PATCH 12/15] Platform/RPi3: Move ACPI interrupts definitions to AcpiTables.h
Date: Fri, 28 Feb 2020 10:38:52 +0000	[thread overview]
Message-ID: <20200228103855.11352-13-pete@akeo.ie> (raw)
In-Reply-To: <20200228103855.11352-1-pete@akeo.ie>

The ACPI interrupts are not the same across different Raspberry Pi
platforms therefore moving them into AcpiTables.h will help with ACPI
code factorization.

Signed-off-by: Pete Batard <pete@akeo.ie>
---
 Platform/RaspberryPi/RPi3/AcpiTables/AcpiTables.h | 26 +++++++++++++++
 Platform/RaspberryPi/RPi3/AcpiTables/Dsdt.asl     | 34 ++++++++++----------
 Platform/RaspberryPi/RPi3/AcpiTables/Sdhc.asl     |  4 +--
 Platform/RaspberryPi/RPi3/AcpiTables/Spcr.aslc    |  4 +--
 Platform/RaspberryPi/RPi3/AcpiTables/Uart.asl     |  4 +--
 5 files changed, 49 insertions(+), 23 deletions(-)

diff --git a/Platform/RaspberryPi/RPi3/AcpiTables/AcpiTables.h b/Platform/RaspberryPi/RPi3/AcpiTables/AcpiTables.h
index c860b7881842..be97fc4c1eff 100644
--- a/Platform/RaspberryPi/RPi3/AcpiTables/AcpiTables.h
+++ b/Platform/RaspberryPi/RPi3/AcpiTables/AcpiTables.h
@@ -97,4 +97,30 @@ typedef struct
   UINT32 UID;                     // 4 bytes
 } EFI_ACPI_5_1_CSRT_RESOURCE_DESCRIPTOR_HEADER;
 
+//------------------------------------------------------------------------
+// Interrupts. These are specific to each platform
+//------------------------------------------------------------------------
+#define BCM2836_USB_INTERRUPT                   0x29
+#define BCM2836_V3D_BUS_INTERRUPT               0x2A
+#define BCM2836_DMA_INTERRUPT                   0x3B
+#define BCM2836_SPI1_INTERRUPT                  0x3D
+#define BCM2836_SPI2_INTERRUPT                  0x3D
+#define BCM2836_HVS_INTERRUPT                   0x41
+#define BCM2836_HDMI0_INTERRUPT                 0x48
+#define BCM2836_HDMI1_INTERRUPT                 0x49
+#define BCM2836_PV2_INTERRUPT                   0x4A
+#define BCM2836_PV0_INTERRUPT                   0x4D
+#define BCM2836_PV1_INTERRUPT                   0x4E
+#define BCM2836_MBOX_INTERRUPT                  0x61
+#define BCM2836_VCHIQ_INTERRUPT                 0x62
+#define BCM2386_GPIO_INTERRUPT0                 0x51
+#define BCM2386_GPIO_INTERRUPT1                 0x53
+#define BCM2836_I2C1_INTERRUPT                  0x55
+#define BCM2836_I2C2_INTERRUPT                  0x55
+#define BCM2836_SPI0_INTERRUPT                  0x56
+#define BCM2836_SDHOST_INTERRUPT                0x58
+#define BCM2836_MMCHS1_INTERRUPT                0x5E
+#define BCM2836_MINI_UART_INTERRUPT             0x3D
+#define BCM2836_PL011_UART_INTERRUPT            0x59
+
 #endif // __ACPITABLES_H__
diff --git a/Platform/RaspberryPi/RPi3/AcpiTables/Dsdt.asl b/Platform/RaspberryPi/RPi3/AcpiTables/Dsdt.asl
index 693e4b15e985..1e17ec901042 100644
--- a/Platform/RaspberryPi/RPi3/AcpiTables/Dsdt.asl
+++ b/Platform/RaspberryPi/RPi3/AcpiTables/Dsdt.asl
@@ -85,7 +85,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_USB_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x29 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_USB_INTERRUPT }
       })
       Method (_CRS, 0x0, Serialized)
       {
@@ -109,32 +109,32 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       {
         // Memory and interrupt for the GPU
         MEMORY32FIXED (ReadWrite, 0, BCM2836_V3D_BUS_LENGTH, RM01)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x2A }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_V3D_BUS_INTERRUPT }
 
         // HVS - Hardware Video Scalar
         MEMORY32FIXED (ReadWrite, 0, BCM2836_HVS_LENGTH, RM02)
         // The HVS interrupt is reserved by the VPU
-        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x41 }
+        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_HVS_INTERRUPT }
 
         // PixelValve0 - DSI0 or DPI
         // MEMORY32FIXED (ReadWrite, BCM2836_PV0_BASE_ADDRESS, BCM2836_PV0_LENGTH, RM03)
-        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x4D }
+        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_PV0_INTERRUPT }
 
         // PixelValve1 - DS1 or SMI
         // MEMORY32FIXED (ReadWrite, BCM2836_PV1_BASE_ADDRESS, BCM2836_PV1_LENGTH, RM04)
-        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x4E }
+        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_PV1_INTERRUPT }
 
         // PixelValve2 - HDMI output - connected to HVS display FIFO 1
         MEMORY32FIXED (ReadWrite, 0, BCM2836_PV2_LENGTH, RM05)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x4A }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_PV2_INTERRUPT }
 
         // HDMI registers
         MEMORY32FIXED (ReadWrite, 0, BCM2836_HDMI0_LENGTH, RM06)
         MEMORY32FIXED (ReadWrite, 0, BCM2836_HDMI1_LENGTH, RM07)
         // hdmi_int[0]
-        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x48 }
+        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_HDMI0_INTERRUPT }
         // hdmi_int[1]
-        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x49 }
+        // Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_HDMI1_INTERRUPT }
 
         // HDMI DDC connection
         I2CSerialBus (0x50,, 100000,, "\\_SB.I2C2",,,,)  // EDID
@@ -212,7 +212,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_MBOX_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x61 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_MBOX_INTERRUPT }
       })
 
       Method (_CRS, 0x0, Serialized)
@@ -237,7 +237,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_VCHIQ_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x62 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_VCHIQ_INTERRUPT }
       })
 
       Method (_CRS, 0x0, Serialized)
@@ -275,7 +275,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, GPIO_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { 0x51, 0x53 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2386_GPIO_INTERRUPT0, BCM2386_GPIO_INTERRUPT1 }
       })
       Method (_CRS, 0x0, Serialized)
       {
@@ -298,7 +298,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_I2C1_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { 0x55 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2836_I2C1_INTERRUPT }
 
         //
         // MsftFunctionConfig is encoded as the VendorLong.
@@ -337,7 +337,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_I2C2_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { 0x55 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2836_I2C2_INTERRUPT }
       })
 
       Method (_CRS, 0x0, Serialized)
@@ -361,7 +361,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_SPI0_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { 0x56 }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2836_SPI0_INTERRUPT }
 
         //
         // MsftFunctionConfig is encoded as the VendorLong.
@@ -428,7 +428,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
       Name (RBUF, ResourceTemplate ()
       {
         MEMORY32FIXED (ReadWrite, 0, BCM2836_SPI1_LENGTH, RMEM)
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared,) { 0x3D }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared,) { BCM2836_SPI1_INTERRUPT }
 
         //
         // MsftFunctionConfig is encoded as the VendorLong.
@@ -484,7 +484,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
     //     Name (RBUF, ResourceTemplate ()
     //     {
     //       MEMORY32FIXED (ReadWrite, BCM2836_SPI2_BASE_ADDRESS, BCM2836_SPI2_LENGTH, RMEM)
-    //       Interrupt (ResourceConsumer, Level, ActiveHigh, Shared,) { 0x3D }
+    //       Interrupt (ResourceConsumer, Level, ActiveHigh, Shared,) { BCM2836_SPI2_INTERRUPT }
     //     })
     //     Return (RBUF)
     //   }
@@ -514,7 +514,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2)
         // PWM clock control
         MEMORY32FIXED (ReadWrite, 0, BCM2836_PWM_CLK_LENGTH, RM03)
         // Interrupt DMA channel 11
-        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x3B }
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_DMA_INTERRUPT }
         // DMA channel 11, DREQ 5 for PWM
         FixedDMA (5, 11, Width32Bit, )
       })
diff --git a/Platform/RaspberryPi/RPi3/AcpiTables/Sdhc.asl b/Platform/RaspberryPi/RPi3/AcpiTables/Sdhc.asl
index f7553280b60e..0ab1ba27f2cf 100644
--- a/Platform/RaspberryPi/RPi3/AcpiTables/Sdhc.asl
+++ b/Platform/RaspberryPi/RPi3/AcpiTables/Sdhc.asl
@@ -37,7 +37,7 @@ Device (SDC1)
   Name (RBUF, ResourceTemplate ()
   {
     MEMORY32FIXED (ReadWrite, 0, MMCHS1_LENGTH, RMEM)
-    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x5E }
+    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_MMCHS1_INTERRUPT }
   })
   Method (_CRS, 0x0, Serialized)
   {
@@ -81,7 +81,7 @@ Device (SDC2)
   Name (RBUF, ResourceTemplate ()
   {
     MEMORY32FIXED (ReadWrite, 0, SDHOST_LENGTH, RMEM)
-    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x58 }
+    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_SDHOST_INTERRUPT }
   })
   Method (_CRS, 0x0, Serialized)
   {
diff --git a/Platform/RaspberryPi/RPi3/AcpiTables/Spcr.aslc b/Platform/RaspberryPi/RPi3/AcpiTables/Spcr.aslc
index cfa1734a3980..cb17fbe0ff2f 100644
--- a/Platform/RaspberryPi/RPi3/AcpiTables/Spcr.aslc
+++ b/Platform/RaspberryPi/RPi3/AcpiTables/Spcr.aslc
@@ -21,11 +21,11 @@
 #ifdef PL011_ENABLE
 #define RPI_UART_INTERFACE_TYPE              EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART
 #define RPI_UART_BASE_ADDRESS                BCM2836_PL011_UART_BASE_ADDRESS
-#define RPI_UART_INTERRUPT                   0x59
+#define RPI_UART_INTERRUPT                   BCM2836_PL011_UART_INTERRUPT
 #else
 #define RPI_UART_INTERFACE_TYPE              EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_BCM2835_UART
 #define RPI_UART_BASE_ADDRESS                BCM2836_MINI_UART_BASE_ADDRESS
-#define RPI_UART_INTERRUPT                   0x3D
+#define RPI_UART_INTERRUPT                   BCM2836_MINI_UART_INTERRUPT
 #endif
 STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
   ACPI_HEADER (
diff --git a/Platform/RaspberryPi/RPi3/AcpiTables/Uart.asl b/Platform/RaspberryPi/RPi3/AcpiTables/Uart.asl
index ddab63f15268..edd8bcc3b376 100644
--- a/Platform/RaspberryPi/RPi3/AcpiTables/Uart.asl
+++ b/Platform/RaspberryPi/RPi3/AcpiTables/Uart.asl
@@ -28,7 +28,7 @@ Device (URT0)
   Name (RBUF, ResourceTemplate ()
   {
     MEMORY32FIXED (ReadWrite, 0, BCM2836_PL011_UART_LENGTH, RMEM)
-    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x59 }
+    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_PL011_UART_INTERRUPT }
   })
   Method (_CRS, 0x0, Serialized)
   {
@@ -68,7 +68,7 @@ Device (URTM)
   Name (RBUF, ResourceTemplate ()
   {
     MEMORY32FIXED (ReadWrite, 0, BCM2836_MINI_UART_LENGTH, RMEM)
-    Interrupt(ResourceConsumer, Level, ActiveHigh, Shared) { 0x3D }
+    Interrupt(ResourceConsumer, Level, ActiveHigh, Shared) { BCM2836_MINI_UART_INTERRUPT }
 
     // NTRAID#MSFT-7141401-2016/04/7-jordanrh - disable UART muxing
     // until a proper solution can be created for the dmap conflict.
-- 
2.21.0.windows.1


  parent reply	other threads:[~2020-02-28 10:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-28 10:38 [edk2-platforms][PATCH 00/15] Platform/RPi: Clean up and factorize ACPI Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 01/15] Platform/RPi: Move DW USB base address to Silicon Pete Batard
2020-03-02 11:21   ` Philippe Mathieu-Daudé
2020-02-28 10:38 ` [edk2-platforms][PATCH 02/15] Silicon/Bcm283x: Add missing peripherals constants Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 03/15] Silicon/Bcm283x: Add GPU/VideoCore and Power Management constants Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 04/15] Silicon/BcmGenet: Add missing I/O mapping length and clean up Pete Batard
2020-02-28 10:45   ` Ard Biesheuvel
2020-02-28 10:51     ` Pete Batard
2020-02-28 10:58       ` Ard Biesheuvel
2020-02-28 11:01         ` Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 05/15] Platform/RPi4: Use Silicon constants in ACPI headers Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 06/15] Platform/RPi3: " Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 07/15] Platform/RPi3: Switch to .aslc for serial related ACPI tables Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 08/15] Platform/RPi3: Update CSRT table to ACPI 5.1 Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 09/15] Platform/RPi3: Use proper aslc for FADT, GTDT and MADT tables generation Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 10/15] Platform/RPi4: Add RPI_MODEL constant and replace PL011_ENABLE Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 11/15] Platform/RPi4: Move ACPI interrupts definitions to AcpiTables.h Pete Batard
2020-02-28 10:38 ` Pete Batard [this message]
2020-02-28 10:38 ` [edk2-platforms][PATCH 13/15] Platform/RPi4: Prepare ACPI code for factorization Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 14/15] Platform/RPi3: Merge ACPI code from RPi4 Pete Batard
2020-02-28 10:38 ` [edk2-platforms][PATCH 15/15] Platform/RPi: Factorize ACPI tables Pete Batard
2020-02-28 12:17 ` [edk2-platforms][PATCH 00/15] Platform/RPi: Clean up and factorize ACPI Ard Biesheuvel
2020-03-02 11:14   ` Ard Biesheuvel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200228103855.11352-13-pete@akeo.ie \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox