ArmPlatformPkg: introduce LcdHwLib library class

Add the declaration and include file for the new LcdHwLib library class,
which will allow us to abstract away from platform  variations in the
LCD graphics output driver.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Girish Pathak <girish.pathak@arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
[ardb: add NULL implementation as well and add it to ArmPlatformPkg.dsc]
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Ard Biesheuvel 2017-12-01 09:41:10 +00:00
parent e3e40c83fd
commit 99cfb43aa6
5 changed files with 173 additions and 0 deletions

View File

@ -33,6 +33,7 @@
[LibraryClasses]
ArmPlatformLib|Include/Library/ArmPlatformLib.h
LcdHwLib|Include/Library/LcdHwLib.h
LcdPlatformLib|Include/Library/LcdPlatformLib.h
NorFlashPlatformLib|Include/Library/NorFlashPlatformLib.h
PL011UartLib|Include/Library/PL011UartLib.h

View File

@ -101,6 +101,7 @@
ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf
ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
ArmPlatformPkg/Library/LcdHwNullLib/LcdHwNullLib.inf
ArmPlatformPkg/Library/LcdPlatformNullLib/LcdPlatformNullLib.inf
ArmPlatformPkg/Library/NorFlashPlatformNullLib/NorFlashPlatformNullLib.inf
ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf

View File

@ -0,0 +1,68 @@
/** @file LcdHwLib.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_LIB_H_
#define LCD_HW_LIB_H_
#include <Uefi/UefiBaseType.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_LIB_H_ */

View File

@ -0,0 +1,75 @@
/** @file
Copyright (c) 2017, Linaro, Ltd. 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 <Base.h>
#include <Uefi/UefiBaseType.h>
#include <Library/DebugLib.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
)
{
return EFI_SUCCESS;
}
/**
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
)
{
return EFI_SUCCESS;
}
/**
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
)
{
return EFI_SUCCESS;
}
/**
De-initializes the display.
**/
VOID
LcdShutdown (
VOID
)
{
}

View File

@ -0,0 +1,28 @@
#/** @file
#
# Copyright (c) 2017, Linaro, Ltd. 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.
#
#**/
[Defines]
INF_VERSION = 0x0001001A
BASE_NAME = LcdHwNullLib
FILE_GUID = bb1fde98-1de2-410e-8850-fdcb8e67ebc0
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = LcdHwLib
[Sources]
LcdHwNullLib.c
[Packages]
ArmPlatformPkg/ArmPlatformPkg.dec
MdePkg/MdePkg.dec