Re: [edk2] [PATCH v3 14/16] ArmPlatformPkg: New DP500/DP550/DP650 GOP driver
On Tue, Mar 20, 2018 at 04:12:10PM +, Girish Pathak wrote: > From: Girish Pathak > > This change adds support for the ARM Mali DP500/DP500/DP650 display > processors using the GOP protocol. It has been tested on FVP base > models + DP550 support. This change adds platform independant LcdHwLib > library. A corresponding platform specific library will be submitted > to edk-platforms/Platform/ARM/VExpressPkg. > > This change does not modify functionality provided by PL111 or > HDLCD. This LcdHwLib implementation should be suitable for those > platforms that implement ARM Mali DP500/DP550/DP650 replacing > PL111/HDLCD. > > Only graphics layer of the ARM Mali DP is configured for rendering > the RGB/BGR format frame buffer to satisfy the UEFI GOP requirements > Other layers e.g. video layers are not configured. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Girish Pathak> Signed-off-by: Evan Lloyd > --- > > Notes: > v3: > - Please add this library as a component to > ArmPlatformPkg.dsc as well, so we can do build testing > on it. [Ard] > > Done [Girish] > > - Please drop references to edk2-platforms. > This driver should be able to be used independently > from VExpress platform code [Ard] > > Done [Girish] > > ArmPlatformPkg/ArmPlatformPkg.dec | 4 + > ArmPlatformPkg/ArmPlatformPkg.dsc | 4 +- > ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c | 409 > ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.h | 243 > ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.inf | 43 ++ > 5 files changed, 702 insertions(+), 1 deletion(-) > > diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec > b/ArmPlatformPkg/ArmPlatformPkg.dec > index > 5c702718a78a78e6c67ab407e198382e0a0df4be..28cdc259849da11b172ad52045bccc0276669852 > 100644 > --- a/ArmPlatformPkg/ArmPlatformPkg.dec > +++ b/ArmPlatformPkg/ArmPlatformPkg.dec > @@ -98,6 +98,10 @@ [PcdsFixedAtBuild.common] >## If set, framebuffer memory will be reserved and mapped in the system RAM > > gArmPlatformTokenSpaceGuid.PcdArmLcdDdrFrameBufferBase|0x0|UINT64|0x0044 > > + ## ARM Mali Display Processor DP500/DP550/DP650 > + gArmPlatformTokenSpaceGuid.PcdArmMaliDpBase|0x0|UINT64|0x0050 > + > gArmPlatformTokenSpaceGuid.PcdArmMaliDpMemoryRegionLength|0x0|UINT32|0x0051 > + >## PL180 MCI > > gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x|UINT32|0x0028 > > gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x|UINT32|0x0029 > diff --git a/ArmPlatformPkg/ArmPlatformPkg.dsc > b/ArmPlatformPkg/ArmPlatformPkg.dsc > index > 82adb9ef8891b7ba1628ede2f8eb124c25c2774a..0013106b94c371f827e01c6d402faa6aa42e4bdd > 100644 > --- a/ArmPlatformPkg/ArmPlatformPkg.dsc > +++ b/ArmPlatformPkg/ArmPlatformPkg.dsc > @@ -2,7 +2,7 @@ > # ARM platform package. > # > # Copyright (c) 2009 - 2010, Apple Inc. All rights reserved. > -# Copyright (c) 2011 - 2015, ARM Ltd. All rights reserved. > +# Copyright (c) 2011 - 2018, ARM Ltd. All rights reserved. > # Copyright (c) 2016 - 2017, Linaro Ltd. All rights reserved. > # > #This program and the accompanying materials > @@ -120,3 +120,5 @@ [Components.common] > >ArmPlatformPkg/PrePi/PeiMPCore.inf >ArmPlatformPkg/PrePi/PeiUniCore.inf > + > + ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.inf > diff --git a/ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c > b/ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c > new file mode 100644 > index > ..69c88416a448caa506bf8a772432144d8a138495 > --- /dev/null > +++ b/ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c > @@ -0,0 +1,409 @@ > +/** @file > + > + ARM Mali DP 500/550/650 display controller driver > + > + Copyright (c) 2017-2018, Arm Limited. All rights reserved. > + > + This program and the accompanying materials > + are licensed and made available under the terms and conditions of the BSD > License > + which accompanies this distribution. The full text of the license may be > found at > + http://opensource.org/licenses/bsd-license.php > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > + > +**/ > + > +#include > +#include > +#include > +#include > +#include > + > +#include "ArmMaliDp.h" > + > +// CORE_ID of the MALI DP > +STATIC UINT32 mDpDeviceId; > + > +/** Disable the graphics layer > + > + This is done by clearing the EN bit of the LG_CONTROL register. > +**/ > +STATIC > +VOID > +LayerGraphicsDisable (VOID) > +{ > + MmioAnd32 (DP_BASE + DP_DE_LG_CONTROL, ~DP_DE_LG_ENABLE); > +} > + >
Re: [edk2] [PATCH v3 14/16] ArmPlatformPkg: New DP500/DP550/DP650 GOP driver
Reviewed-by: Evan Lloyd> -Original Message- > From: edk2-devel On Behalf Of Girish > Pathak > Sent: 20 March 2018 16:12 > To: edk2-devel@lists.01.org > Cc: nd ; Stephanie Hughes-Fitt f...@arm.com>; leif.lindh...@linaro.org; ard.biesheu...@linaro.org > Subject: [edk2] [PATCH v3 14/16] ArmPlatformPkg: New > DP500/DP550/DP650 GOP driver > > From: Girish Pathak > > This change adds support for the ARM Mali DP500/DP500/DP650 display > processors using the GOP protocol. It has been tested on FVP base models > + DP550 support. This change adds platform independant LcdHwLib library. > A corresponding platform specific library will be submitted to edk- > platforms/Platform/ARM/VExpressPkg. > > This change does not modify functionality provided by PL111 or HDLCD. > This LcdHwLib implementation should be suitable for those platforms that > implement ARM Mali DP500/DP550/DP650 replacing PL111/HDLCD. > > Only graphics layer of the ARM Mali DP is configured for rendering the > RGB/BGR format frame buffer to satisfy the UEFI GOP requirements Other > layers e.g. video layers are not configured. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Girish Pathak > Signed-off-by: Evan Lloyd > --- > > Notes: > v3: > - Please add this library as a component to > ArmPlatformPkg.dsc as well, so we can do build testing > on it. [Ard] > > Done [Girish] > > - Please drop references to edk2-platforms. > This driver should be able to be used independently > from VExpress platform code [Ard] > > Done [Girish] > > ArmPlatformPkg/ArmPlatformPkg.dec | 4 + > ArmPlatformPkg/ArmPlatformPkg.dsc | 4 +- > ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c | 409 > > ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.h | 243 > ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.inf | 43 ++ > 5 files changed, 702 insertions(+), 1 deletion(-) > > diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec > b/ArmPlatformPkg/ArmPlatformPkg.dec > index > 5c702718a78a78e6c67ab407e198382e0a0df4be..28cdc259849da11b172a > d52045bccc0276669852 100644 > --- a/ArmPlatformPkg/ArmPlatformPkg.dec > +++ b/ArmPlatformPkg/ArmPlatformPkg.dec > @@ -98,6 +98,10 @@ [PcdsFixedAtBuild.common] >## If set, framebuffer memory will be reserved and mapped in the system > RAM > > gArmPlatformTokenSpaceGuid.PcdArmLcdDdrFrameBufferBase|0x0|UINT6 > 4|0x0044 > > + ## ARM Mali Display Processor DP500/DP550/DP650 > + > gArmPlatformTokenSpaceGuid.PcdArmMaliDpBase|0x0|UINT64|0x00 > 50 > + > + > gArmPlatformTokenSpaceGuid.PcdArmMaliDpMemoryRegionLength|0x0|U > INT32|0 > + x0051 > + >## PL180 MCI > > gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x| > UINT32|0x0028 > > gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x|UI > NT32|0x0029 > diff --git a/ArmPlatformPkg/ArmPlatformPkg.dsc > b/ArmPlatformPkg/ArmPlatformPkg.dsc > index > 82adb9ef8891b7ba1628ede2f8eb124c25c2774a..0013106b94c371f827e0 > 1c6d402faa6aa42e4bdd 100644 > --- a/ArmPlatformPkg/ArmPlatformPkg.dsc > +++ b/ArmPlatformPkg/ArmPlatformPkg.dsc > @@ -2,7 +2,7 @@ > # ARM platform package. > # > # Copyright (c) 2009 - 2010, Apple Inc. All rights reserved. -# > Copyright (c) 2011 - 2015, ARM Ltd. All rights reserved. > +# Copyright (c) 2011 - 2018, ARM Ltd. All rights reserved. > # Copyright (c) 2016 - 2017, Linaro Ltd. All rights reserved. # > #This program and the accompanying materials > @@ -120,3 +120,5 @@ [Components.common] > >ArmPlatformPkg/PrePi/PeiMPCore.inf >ArmPlatformPkg/PrePi/PeiUniCore.inf > + > + ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.inf > diff --git a/ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c > b/ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c > new file mode 100644 > index > ..69c88416a448caa506 > bf8a772432144d8a138495 > --- /dev/null > +++ b/ArmPlatformPkg/Library/ArmMaliDp/ArmMaliDp.c > @@ -0,0 +1,409 @@ > +/** @file > + > + ARM Mali DP 500/550/650 display controller driver > + > + Copyright (c) 2017-2018, Arm Limited. All rights reserved. > + > + This program and the accompanying materials are licensed and made > + available under the terms and conditions of the BSD License which > + accompanies this distribution. The full text of the license may be > + found at http://opensource.org/licenses/bsd-license.php > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > + > +**/ > + > +#include > +#include > +#include > +#include >