On Tue, Sep 26, 2017 at 09:15:26PM +0100, [email protected] wrote: > From: Girish Pathak <[email protected]> > > Currently for ArmPlatformPkg, the UEFI Graphics Output Protocol is > implemented using platform specific Libraries > ((PL111|Hd)LcdArmVExpressLib) and DXE drivers > ((PL111|Hd)LcdGraphicsOutputDxe). The platform library handles > variations such as platform supported display modes, memory > management of the frame buffer, and clock/mux setting. The DXE driver > implements the GOP protocol and manages the respective display > controller. Although this implementation works for current platforms, > we think the way the current DXE driver sources are linked is > sub-optimal and needs to be improved, before additions. > > This change effectively partitions HdLcd.c and PL111Lcd.c from > LcdGraphicsOutputProtocol and creates two libraries of type LcdHwLib > which can be selected in the platform specific .dsc file. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Girish Pathak <[email protected]> > Signed-off-by: Evan Lloyd <[email protected]> > --- > > ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf > | 3 +- > > ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf > | 2 +- > ArmPlatformPkg/Drivers/{LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf => > HdLcd/HdLcd.inf} | 25 +------- > ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/{PL111LcdGraphicsOutputDxe.inf > => LcdGraphicsOutputDxe.inf} | 15 ++--- > ArmPlatformPkg/Drivers/{LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > => PL111Lcd/PL111Lcd.inf} | 28 ++------- > ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h > | 21 ------- > ArmPlatformPkg/Include/Drivers/LcdHw.h > | 64 ++++++++++++++++++++ > ArmPlatformPkg/Include/Library/LcdPlatformLib.h > | 1 + > ArmPlatformPkg/Drivers/{LcdGraphicsOutputDxe => HdLcd}/HdLcd.c > | 3 +- > ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c > | 2 + > ArmPlatformPkg/Drivers/{LcdGraphicsOutputDxe => PL111Lcd}/PL111Lcd.c > | 5 +- > 11 files changed, 85 insertions(+), 84 deletions(-)
Oh, dear Lord... Not you, git. Could you resubmit this one with --no-renames on the git command line? If an entire new set is likely to arrive soon, can you also do some alphabetical sorting in the new .inf files? > diff --git > a/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf > > b/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf > index > 37756481596c7e978ed9ed0a932eeb2aa0a3b657..1fe93a53f81c46955c62383a2bad0e19a9662015 > 100644 > --- > a/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf > +++ > b/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf > @@ -18,7 +18,7 @@ [Defines] > INF_VERSION = 0x00010005 > BASE_NAME = HdLcdArmVExpress > FILE_GUID = 535a720e-06c0-4bb9-b563-452216abbed4 > - MODULE_TYPE = DXE_DRIVER > + MODULE_TYPE = BASE > VERSION_STRING = 1.0 > LIBRARY_CLASS = LcdPlatformLib > > @@ -40,6 +40,5 @@ [Protocols] > gEfiEdidActiveProtocolGuid # Produced > > [FixedPcd] > - gArmVExpressTokenSpaceGuid.PcdPL111LcdMaxMode > gArmVExpressTokenSpaceGuid.PcdHdLcdVideoModeOscId > gArmPlatformTokenSpaceGuid.PcdGopPixelFormat > diff --git > a/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf > > b/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf > index > 6f1cb3b55ff814d007718b5597f821dd20100477..f6d5bf76dd375d97bac63ca427cc231792b9e52b > 100644 > --- > a/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf > +++ > b/ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf > @@ -18,7 +18,7 @@ [Defines] > INF_VERSION = 0x00010005 > BASE_NAME = PL111LcdArmVExpressLib > FILE_GUID = b7f06f20-496f-11e0-a8e8-0002a5d5c51b > - MODULE_TYPE = DXE_DRIVER > + MODULE_TYPE = BASE > VERSION_STRING = 1.0 > LIBRARY_CLASS = LcdPlatformLib > > diff --git > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf > b/ArmPlatformPkg/Drivers/HdLcd/HdLcd.inf > similarity index 59% > rename from > ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf > rename to ArmPlatformPkg/Drivers/HdLcd/HdLcd.inf > index > b050add98e3f9cf62ac335883193b9d0928c3dc9..e43c894538cfd7985862997aaa1b8a381cb6423a > 100644 > --- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf > +++ b/ArmPlatformPkg/Drivers/HdLcd/HdLcd.inf > @@ -16,15 +16,13 @@ > > [Defines] > INF_VERSION = 0x00010005 > - BASE_NAME = HdLcdGraphicsDxe > + BASE_NAME = HdLcd > FILE_GUID = ce660500-824d-11e0-ac72-0002a5d5c51b > - MODULE_TYPE = DXE_DRIVER > + MODULE_TYPE = BASE > VERSION_STRING = 1.0 > - ENTRY_POINT = LcdGraphicsOutputDxeInitialize > + LIBRARY_CLASS = LcdHwLib > > [Sources.common] > - LcdGraphicsOutputDxe.c > - LcdGraphicsOutputBlt.c > HdLcd.c > > [Packages] > @@ -39,26 +37,9 @@ [LibraryClasses] > UefiLib > BaseLib > DebugLib > - TimerLib > - UefiDriverEntryPoint > - UefiBootServicesTableLib > IoLib Like here. > - BaseMemoryLib > - LcdPlatformLib > - > -[Protocols] > - gEfiDevicePathProtocolGuid > - gEfiGraphicsOutputProtocolGuid # Produced > - gEfiEdidDiscoveredProtocolGuid # Produced > - gEfiEdidActiveProtocolGuid # Produced > - gEfiEdidOverrideProtocolGuid # Produced > > [FixedPcd] > gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase > gArmPlatformTokenSpaceGuid.PcdArmHdLcdSwapBlueRedSelect > > -[FeaturePcd] > - gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices > - > -[Depex] > - gEfiCpuArchProtocolGuid > diff --git > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf > similarity index 78% > copy from > ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > copy to ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf > index > ad0348500326c4567f0e1b235c84b694e61306bf..edd03c7eb1c39e397c72a4c22e7d05ab21b53def > 100644 > --- > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > +++ b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf > @@ -2,7 +2,7 @@ > # > # Component description file for PL111LcdGraphicsOutputDxe module > # > -# Copyright (c) 2011-2017, ARM Ltd. All rights reserved.<BR> > +# Copyright (c) 2017, ARM Ltd. All rights reserved.<BR> > # 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 > @@ -15,8 +15,8 @@ > > [Defines] > INF_VERSION = 0x00010005 > - BASE_NAME = PL111LcdGraphicsDxe > - FILE_GUID = 407B4008-BF5B-11DF-9547-CF16E0D72085 > + BASE_NAME = LcdGraphicsDxe > + FILE_GUID = 89464DAE-8DAA-41FE-A4C8-40D2175AF1E9 > MODULE_TYPE = DXE_DRIVER > VERSION_STRING = 1.0 > ENTRY_POINT = LcdGraphicsOutputDxeInitialize > @@ -24,7 +24,6 @@ [Defines] > [Sources.common] > LcdGraphicsOutputDxe.c > LcdGraphicsOutputBlt.c > - PL111Lcd.c > > [Packages] > MdePkg/MdePkg.dec > @@ -38,22 +37,18 @@ [LibraryClasses] > UefiLib > BaseLib > DebugLib > - TimerLib > UefiDriverEntryPoint > UefiBootServicesTableLib > - IoLib > BaseMemoryLib > LcdPlatformLib > + LcdHwLib And here. > > [Protocols] > gEfiDevicePathProtocolGuid > gEfiGraphicsOutputProtocolGuid > > -[FixedPcd] > - gArmPlatformTokenSpaceGuid.PcdPL111LcdBase > - > [FeaturePcd] > gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices > > [Depex] > - gEfiCpuArchProtocolGuid > + TRUE > diff --git > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > b/ArmPlatformPkg/Drivers/PL111Lcd/PL111Lcd.inf > similarity index 59% > rename from > ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > rename to ArmPlatformPkg/Drivers/PL111Lcd/PL111Lcd.inf > index > ad0348500326c4567f0e1b235c84b694e61306bf..8e571a02476142af787db90c0ee240a784b74a63 > 100644 > --- > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf > +++ b/ArmPlatformPkg/Drivers/PL111Lcd/PL111Lcd.inf > @@ -1,6 +1,6 @@ > -#/** @file PL111LcdGraphicsOutputDxe.inf > +#/** @file PL111Lcd.inf > # > -# Component description file for PL111LcdGraphicsOutputDxe module > +# Component description file for PL111Lcd module > # > # Copyright (c) 2011-2017, ARM Ltd. All rights reserved.<BR> > # This program and the accompanying materials > @@ -15,15 +15,13 @@ > > [Defines] > INF_VERSION = 0x00010005 > - BASE_NAME = PL111LcdGraphicsDxe > + BASE_NAME = PL111Lcd > FILE_GUID = 407B4008-BF5B-11DF-9547-CF16E0D72085 > - MODULE_TYPE = DXE_DRIVER > + MODULE_TYPE = BASE > VERSION_STRING = 1.0 > - ENTRY_POINT = LcdGraphicsOutputDxeInitialize > + LIBRARY_CLASS = LcdHwLib > > [Sources.common] > - LcdGraphicsOutputDxe.c > - LcdGraphicsOutputBlt.c > PL111Lcd.c > > [Packages] > @@ -34,26 +32,10 @@ [Packages] > ArmPlatformPkg/ArmPlatformPkg.dec > > [LibraryClasses] > - ArmLib > UefiLib > BaseLib > DebugLib > - TimerLib > - UefiDriverEntryPoint > - UefiBootServicesTableLib > IoLib And here. > - BaseMemoryLib > - LcdPlatformLib > - > -[Protocols] > - gEfiDevicePathProtocolGuid > - gEfiGraphicsOutputProtocolGuid > > [FixedPcd] > gArmPlatformTokenSpaceGuid.PcdPL111LcdBase > - > -[FeaturePcd] > - gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices > - > -[Depex] > - gEfiCpuArchProtocolGuid > diff --git > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h > b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h > index > 85e918de66624d61c6d0e05c5a67c516cd7619aa..76a710fda59279a6642dc2408c790afcf49360b8 > 100644 > --- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h > +++ b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h > @@ -19,7 +19,6 @@ > > #include <Library/DebugLib.h> > #include <Library/LcdPlatformLib.h> > -#include <Library/PcdLib.h> > #include <Library/UefiLib.h> > > #include <Protocol/DevicePath.h> > @@ -92,7 +91,6 @@ UINTN > GetBytesPerPixel ( > IN LCD_BPP Bpp > ); > - Unrelated whitespace change. > EFI_STATUS > EFIAPI > GraphicsOutputDxeInitialize ( > @@ -105,23 +103,4 @@ InitializeDisplay ( > IN LCD_INSTANCE* Instance > ); > > -EFI_STATUS > -LcdIdentify ( > - VOID > -); > - > -EFI_STATUS > -LcdInitialize ( > - EFI_PHYSICAL_ADDRESS VramBaseAddress > -); > - > -EFI_STATUS > -LcdSetMode ( > - IN UINT32 ModeNumber > -); > - > -VOID > -LcdShutdown ( > - VOID > -); > #endif /* LCD_GRAPHICS_OUTPUT_DXE_H_ */ > diff --git a/ArmPlatformPkg/Include/Drivers/LcdHw.h > b/ArmPlatformPkg/Include/Drivers/LcdHw.h > new file mode 100644 > index > 0000000000000000000000000000000000000000..1f5b9c0b7e7decbf1136614b5b1b482ccd805604 > --- /dev/null > +++ b/ArmPlatformPkg/Include/Drivers/LcdHw.h > @@ -0,0 +1,64 @@ > +/** @file LcdHw.h > + > + This file contains interface functions for LcdHwLib of ArmPlatformPkg > + > + Copyright (c) 2017, ARM Ltd. All rights reserved.<BR> > + 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. > + > +**/ > + > +#ifndef LCD_HW_H_ > +#define LCD_HW_H_ > + > +#include <Library/LcdPlatformLib.h> > + > +/** Check for presence of display > + * > + * @retval EFI_SUCCESS Platform implements display. > + * @retval EFI_NOT_FOUND Display not found on the platform. > + */ > +EFI_STATUS > +LcdIdentify ( > + VOID > +); > + > +/** Initialize display. > + * > + * @param FrameBaseAddress Address of the frame buffer. > + * @retval EFI_SUCCESS Display initialization success. > + * @retval !(EFI_SUCCESS) Display initialization failure. > + * > +**/ > +EFI_STATUS > +LcdInitialize ( > + EFI_PHYSICAL_ADDRESS FrameBaseAddress > +); > + > +/** Set requested mode of the display. > + * > + * @param ModeNumber Display mode number. > + * @retval EFI_SUCCESS Display set mode success. > + * @retval EFI_DEVICE_ERROR If mode not found/supported. > + * > +**/ > +EFI_STATUS > +LcdSetMode ( > + IN UINT32 ModeNumber > +); > + > + > +/** De-initializes the display. > + * > +**/ > +VOID > +LcdShutdown ( > + VOID > +); > + > +#endif /* LCD_HW_H_ */ > diff --git a/ArmPlatformPkg/Include/Library/LcdPlatformLib.h > b/ArmPlatformPkg/Include/Library/LcdPlatformLib.h > index > d357c22c46b62966859793372c447883e12e1e80..78b1780d82b8b698924cc55a292c30728a3e7060 > 100644 > --- a/ArmPlatformPkg/Include/Library/LcdPlatformLib.h > +++ b/ArmPlatformPkg/Include/Library/LcdPlatformLib.h > @@ -14,6 +14,7 @@ > #ifndef LCD_PLATFORM_LIB_H_ > #define LCD_PLATFORM_LIB_H_ > > +#include <Uefi/UefiBaseType.h> > #include <Protocol/GraphicsOutput.h> > > #define LCD_VRAM_SIZE SIZE_8MB > diff --git a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c > b/ArmPlatformPkg/Drivers/HdLcd/HdLcd.c > similarity index 95% > rename from ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c > rename to ArmPlatformPkg/Drivers/HdLcd/HdLcd.c > index > 8f83d6ecba290994dbced1c11dfdb6d705323c03..d0f678acc7ac539f4e05a9b35ce28baded6c7244 > 100644 > --- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c > +++ b/ArmPlatformPkg/Drivers/HdLcd/HdLcd.c > @@ -19,8 +19,7 @@ > #include <Library/PcdLib.h> > > #include <Drivers/HdLcd.h> > - > -#include "LcdGraphicsOutputDxe.h" (For clarity - I have no issue with the unrelated whitespace change above here, because it is not the only change in its hunk and it is directly adjacent to the modification.) / Leif > +#include <Drivers/LcdHw.h> > > #define BYTES_PER_PIXEL 4 > > diff --git > a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c > b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c > index > c40c8e0fa6f4b5f7798aeb3c8bf3f261f14cb67b..e47142319045783cf98243a1372d933d89718922 > 100644 > --- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c > +++ b/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c > @@ -20,6 +20,8 @@ > > #include <Guid/GlobalVariable.h> > > +#include <Drivers/LcdHw.h> > + > #include "LcdGraphicsOutputDxe.h" > > /********************************************************************** > diff --git a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c > b/ArmPlatformPkg/Drivers/PL111Lcd/PL111Lcd.c > similarity index 95% > rename from ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c > rename to ArmPlatformPkg/Drivers/PL111Lcd/PL111Lcd.c > index > 4bad2367982e16d5d23c4eab2e6d91bf7db1c031..439f4f9c1fd7c6339cfa75287f3fa3718de34d92 > 100644 > --- a/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c > +++ b/ArmPlatformPkg/Drivers/PL111Lcd/PL111Lcd.c > @@ -11,13 +11,12 @@ > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > > **/ > - > +#include <Library/DebugLib.h> > #include <Library/IoLib.h> > #include <Library/MemoryAllocationLib.h> > > #include <Drivers/PL111Lcd.h> > - > -#include "LcdGraphicsOutputDxe.h" > +#include <Drivers/LcdHw.h> > > /********************************************************************** > * > -- > Guid("CE165669-3EF3-493F-B85D-6190EE5B9759") > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

