Some of the Pi 4 interrupts were copied from Pi 3 and are incorrect. We fix the ones that can be found by decompiling the official .dtbs. We also add a couple more GPIO interrupts, that are used for both the Pi 3 and the Pi 4, as per the dtbs.
Signed-off-by: Pete Batard <p...@akeo.ie> --- Platform/RaspberryPi/AcpiTables/AcpiTables.h | 24 ++++++++++++-------- Platform/RaspberryPi/AcpiTables/Dsdt.asl | 6 ++++- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Platform/RaspberryPi/AcpiTables/AcpiTables.h b/Platform/RaspberryPi/AcpiTables/AcpiTables.h index 0b8a8494450c..712a4a5806ae 100644 --- a/Platform/RaspberryPi/AcpiTables/AcpiTables.h +++ b/Platform/RaspberryPi/AcpiTables/AcpiTables.h @@ -125,7 +125,9 @@ typedef struct #define BCM2836_MBOX_INTERRUPT 0x61 #define BCM2836_VCHIQ_INTERRUPT 0x62 #define BCM2386_GPIO_INTERRUPT0 0x51 -#define BCM2386_GPIO_INTERRUPT1 0x53 +#define BCM2386_GPIO_INTERRUPT1 0x52 +#define BCM2386_GPIO_INTERRUPT2 0x53 +#define BCM2386_GPIO_INTERRUPT3 0x54 #define BCM2836_I2C1_INTERRUPT 0x55 #define BCM2836_I2C2_INTERRUPT 0x55 #define BCM2836_SPI0_INTERRUPT 0x56 @@ -137,21 +139,23 @@ typedef struct #elif (RPI_MODEL == 4) #define BCM2836_V3D_BUS_INTERRUPT 0x2A #define BCM2836_DMA_INTERRUPT 0x3B -#define BCM2836_SPI1_INTERRUPT 0x3D -#define BCM2836_SPI2_INTERRUPT 0x3D +#define BCM2836_SPI1_INTERRUPT 0x7D +#define BCM2836_SPI2_INTERRUPT 0x7D #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_MBOX_INTERRUPT 0x41 +#define BCM2836_VCHIQ_INTERRUPT 0x42 +#define BCM2386_GPIO_INTERRUPT0 0x91 +#define BCM2386_GPIO_INTERRUPT1 0x92 +#define BCM2386_GPIO_INTERRUPT2 0x93 +#define BCM2386_GPIO_INTERRUPT3 0x94 +#define BCM2836_I2C1_INTERRUPT 0x95 +#define BCM2836_I2C2_INTERRUPT 0x95 +#define BCM2836_SPI0_INTERRUPT 0x96 #define BCM2836_USB_INTERRUPT 0x69 #define BCM2836_SDHOST_INTERRUPT 0x98 #define BCM2836_MMCHS1_INTERRUPT 0x9E diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryPi/AcpiTables/Dsdt.asl index 4a6fa6377d1b..2aa7d10bd40c 100644 --- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl +++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl @@ -279,7 +279,11 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "MSFT", "EDK2", 2) Name (RBUF, ResourceTemplate () { MEMORY32FIXED (ReadWrite, 0, GPIO_LENGTH, RMEM) - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2386_GPIO_INTERRUPT0, BCM2386_GPIO_INTERRUPT1 } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) + { + BCM2386_GPIO_INTERRUPT0, BCM2386_GPIO_INTERRUPT1, + BCM2386_GPIO_INTERRUPT2, BCM2386_GPIO_INTERRUPT3 + } }) Method (_CRS, 0x0, Serialized) { -- 2.21.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56395): https://edk2.groups.io/g/devel/message/56395 Mute This Topic: https://groups.io/mt/72561823/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-