[edk2] Any plans to support GICv3 on UEFI

Message ID 534680b6.c7732a0a.2f1c.ffffa091SMTPIN_ADDED_BROKEN@mx.google.com
State New
Headers show

Commit Message

Olivier Martin April 10, 2014, 11:29 a.m.
Thanks you are right about the change in
ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c.

 

`git am --ignore-whitespace` might help you to apply the patch set.

 

From: Ganapatrao Kulkarni [mailto:gpkulkarni@gmail.com] 
Sent: 10 April 2014 12:20
To: Olivier Martin
Cc: Leif Lindholm; linaro-uefi@lists.linaro.org;
edk2-devel@lists.sourceforge.net
Subject: Re: Any plans to support GICv3 on UEFI

 

thanks Olivier for the patches.

I am able to try these patches on our simulator for basic functionality.

 

i think, it is better to use ArmGicGetSupportedArchRevision to get the GIC
version in file
ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c.



 }



btw,  not able to apply your patches using git am, however able to apply
cleanly using patch command.

regards
ganapat

 

On Thu, Mar 27, 2014 at 10:32 PM, Olivier Martin <olivier.martin@arm.com>
wrote:

Please find the attached patches that should add GICv3 support to UEFI. This
patchset has been validated on SVN rev15402 (27th March 2014).
The testing and review have been limited (reason why these patches have not
been pushed to EDK2 repository). I do not have any ETA.

The GicDxe support GICv2 and GICv3 without requiring to be rebuilt.
Feedbacks and comments are welcome.



> -----Original Message-----
> From: linaro-uefi-bounces@lists.linaro.org [mailto:linaro-uefi-

> bounces@lists.linaro.org] On Behalf Of Olivier Martin
> Sent: 17 March 2014 17:47
> To: 'Ganapatrao Kulkarni'; Leif Lindholm
> Cc: linaro-uefi@lists.linaro.org
> Subject: Re: [Linaro-uefi] Any plans to support GICv3 on UEFI
>
> I started to work on a UEFI GICv3 driver last year. It is almost
> working but
> I had to switch to higher priority tasks since then.
> I have the plan to clean and publish this driver soon. I would say by
> then
> of April, but I do not want to commit to any date.
> If it is blocking you then I can send an early version of the patch.
>
> Olivier
>
> > -----Original Message-----
> > From: linaro-uefi-bounces@lists.linaro.org [mailto:linaro-uefi-
> > bounces@lists.linaro.org] On Behalf Of Ganapatrao Kulkarni
> > Sent: 15 March 2014 06:58
> > To: Leif Lindholm
> > Cc: linaro-uefi@lists.linaro.org
> > Subject: Re: [Linaro-uefi] Any plans to support GICv3 on UEFI
> >

> > Thanks Leif
> >
> > On Sat, Mar 15, 2014 at 12:31 AM, Leif Lindholm
> > <leif.lindholm@linaro.org> wrote:
> > > Hi Ganapat,
> > >
> > > On Fri, Mar 14, 2014 at 08:01:34PM +0530, Ganapatrao Kulkarni
> wrote:
> > >> I am using git://git.linaro.org/uefi/linaro-edk2.git and i see the
> > >> comments saying
> > >> /* Initialize GICv3 to expose it as a GICv2 as UEFI does not
> support
> > >> GICv3 yet */
> > >>
> > >> Anyone is working/plan to add GICv3 driver?
> > >
> > > This is part of the architectural support, and pulled in that way
> > > from Tianocore. It supports using a GICv3 in "legacy" GICv2 mode.
> > >
> > > I expect ARM will provide a non-legacy GICv3 driver at some point,
> > > but I do not know the exact roadmap.
> > >
> > > Regards,
> > >
> > > Leif
> >

> > _______________________________________________
> > Linaro-uefi mailing list
> > Linaro-uefi@lists.linaro.org
> > http://lists.linaro.org/mailman/listinfo/linaro-uefi
>
>
>
>
>
> _______________________________________________
> Linaro-uefi mailing list
> Linaro-uefi@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-uefi
------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees

Patch

--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c
@@ -56,7 +56,7 @@  ArmPlatformSecInitialize (
   IN  UINTN                     MpId
   )
 {
-  UINT32  Identification;
+  ARM_GIC_ARCH_REVISION Revision;^M
 
   // If it is not the primary core then there is nothing to do
   if (!ArmPlatformIsPrimaryCore (MpId)) {
@@ -73,13 +73,12 @@  ArmPlatformSecInitialize (
   MmioAndThenOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG,
~SP810_SYS_CTRL_TIMER3_EN, SP810_SYS_CTRL_TIMER3_TIMCLK);
 
   // Read the GIC Identification Register
-  Identification = ArmGicGetInterfaceIdentification (PcdGet32
(PcdGicInterruptInterfaceBase));
-
+  Revision = ArmGicGetSupportedArchRevision ();^M
   // Check if we are GICv3
-  if (ARM_GIC_ICCIIDR_GET_ARCH_VERSION(Identification) >= 0x3) {
+  if (Revision == ARM_GIC_ARCH_REVISION_3) {^M
     InitializeGicV3 ();
   }
-
+^M
   return RETURN_SUCCESS;