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 3798C20958BD6 for ; Mon, 11 Sep 2017 08:20:47 -0700 (PDT) Received: from E111747.Emea.Arm.com (e111747.emea.arm.com [10.1.26.71]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id v8BFNeaG010774; Mon, 11 Sep 2017 16:23:40 +0100 From: evan.lloyd@arm.com To: edk2-devel@lists.01.org Cc: Ard Biesheuvel , Leif Lindholm , Matteo Carlini , Stephanie Hughes-Fitt , nd@arm.com Date: Mon, 11 Sep 2017 16:23:30 +0100 Message-Id: <20170911152335.72672-1-evan.lloyd@arm.com> X-Mailer: git-send-email 2.14.1 Subject: [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: Mon, 11 Sep 2017 15:20:47 -0000 From: EvanLloyd This v3 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_v3 v3 merely modifies instances of conditional assigment to comply with maintainers preference for assignments within an if statement. 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 Girish Pathak (1): ArmPkg:Provide GetTriggerType/SetTriggerType functions *** BLURB HERE *** Ard Biesheuvel (3): EmbeddedPkg: Introduce HardwareInterrupt2 protocol ArmPkg/ArmGicDxe: Expose HardwareInterrupt2 protocol ArmPkg/GenericWatchdogDxe: Set Watchdog interrupt type Evan Lloyd (2): ArmPkg: Tidy GIC code before changes. ArmPkg: Tidy up GenericWatchdogDxe.c EmbeddedPkg/EmbeddedPkg.dec | 1 + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf | 3 +- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf | 6 +- ArmPkg/Drivers/ArmGic/ArmGicDxe.h | 37 +++- ArmPkg/Include/Library/ArmGicLib.h | 39 ++-- EmbeddedPkg/Include/Protocol/HardwareInterrupt2.h | 182 ++++++++++++++++ ArmPkg/Drivers/ArmGic/ArmGicCommonDxe.c | 80 +++++-- ArmPkg/Drivers/ArmGic/ArmGicLib.c | 72 +++++-- ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c | 196 ++++++++++++++++-- ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c | 219 +++++++++++++++++--- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c | 151 +++++++------- 11 files changed, 804 insertions(+), 182 deletions(-) create mode 100644 EmbeddedPkg/Include/Protocol/HardwareInterrupt2.h -- Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")