From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cam-smtp0.cambridge.arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6C59221D046B5 for ; Thu, 21 Sep 2017 09:20:46 -0700 (PDT) Received: from E111747.Emea.Arm.com (e111747.emea.arm.com [10.1.32.12]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id v8LGNovU021123; Thu, 21 Sep 2017 17:23:50 +0100 From: evan.lloyd@arm.com To: edk2-devel@lists.01.org Cc: Ard Biesheuvel , Leif Lindholm , Matteo Carlini , nd@arm.com Date: Thu, 21 Sep 2017 17:23:40 +0100 Message-Id: <20170921162345.11724-1-evan.lloyd@arm.com> X-Mailer: git-send-email 2.14.1 Subject: [PATCH 0/4] [PATCH 0/5] Add HardwareInterrupt2 for ARM X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Sep 2017 16:20:46 -0000 From: EvanLloyd This v4 series of patches corrects a problem detected on the ARM Juno platform that is actually generic (at least to ARM GIC platforms). The HardwareInterrupt protocol had no means of handling characteristics like Edge/Level triggered and polarity. A new HardwareInterrupt2 protocol (provided by Ard) is added, and code changed to utilise the new capabilities. The code is available for examination on Github at: https://github.com/EvanLloyd/tianocore/tree/376_irqtype_v4 v4 responds to further comments from maintainers, being mainly cosmetic changes. Note: Significant defects exist in the (original) Watchdog handling, and a new patch will follow. Ard Biesheuvel (3): EmbeddedPkg: Introduce HardwareInterrupt2 protocol ArmPkg/ArmGicDxe: Expose HardwareInterrupt2 protocol ArmPkg/GenericWatchdogDxe: Set Watchdog interrupt type Evan Lloyd (1): ArmPkg: Tidy GIC code before changes. EmbeddedPkg/EmbeddedPkg.dec | 1 + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf | 3 +- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf | 6 +- ArmPkg/Drivers/ArmGic/ArmGicDxe.h | 31 ++- ArmPkg/Include/Library/ArmGicLib.h | 34 +-- EmbeddedPkg/Include/Protocol/HardwareInterrupt2.h | 182 ++++++++++++++++ ArmPkg/Drivers/ArmGic/ArmGicCommonDxe.c | 76 +++++-- ArmPkg/Drivers/ArmGic/ArmGicLib.c | 73 +++++-- ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c | 195 ++++++++++++++--- ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c | 218 +++++++++++++++++--- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c | 146 +++++++------ 11 files changed, 779 insertions(+), 186 deletions(-) create mode 100644 EmbeddedPkg/Include/Protocol/HardwareInterrupt2.h -- Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")