From: "Guo Dong" <guo.dong@intel.com>
To: "Liu, Zhiguang" <zhiguang.liu@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Ma, Maurice" <maurice.ma@intel.com>,
"You, Benjamin" <benjamin.you@intel.com>
Subject: Re: [PATCH 03/12] UefiPayloadPkg: Add a separate PlatformHookLib for Universal Payload
Date: Tue, 22 Jun 2021 22:48:37 +0000 [thread overview]
Message-ID: <BYAPR11MB3622621BF4408A6D1FBECB219E099@BYAPR11MB3622.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210620154702.2681-4-zhiguang.liu@intel.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
> -----Original Message-----
> From: Liu, Zhiguang <zhiguang.liu@intel.com>
> Sent: Sunday, June 20, 2021 8:47 AM
> To: devel@edk2.groups.io
> Cc: Ma, Maurice <maurice.ma@intel.com>; Dong, Guo
> <guo.dong@intel.com>; You, Benjamin <benjamin.you@intel.com>
> Subject: [PATCH 03/12] UefiPayloadPkg: Add a separate PlatformHookLib for
> Universal Payload
>
> Add a new separate PlatformHookLib for Universal Payload to consume Guid
> Hob gUniversalPayloadSerialPortInfoGuid to get serial port information
>
> Cc: Maurice Ma <maurice.ma@intel.com>
> Cc: Guo Dong <guo.dong@intel.com>
> Cc: Benjamin You <benjamin.you@intel.com>
> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
> ---
>
> UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLib.
> c | 82
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++
>
> UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLib.
> inf | 41 +++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 123 insertions(+)
>
> diff --git
> a/UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLi
> b.c
> b/UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLi
> b.c
> new file mode 100644
> index 0000000000..6705f29505
> --- /dev/null
> +++
> b/UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLi
> b.c
> @@ -0,0 +1,82 @@
> +/** @file
>
> + Platform Hook Library instance for UART device.
>
> +
>
> + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
>
> + SPDX-License-Identifier: BSD-2-Clause-Patent
>
> +
>
> +**/
>
> +
>
> +#include <Base.h>
>
> +#include <PiDxe.h>
>
> +#include <UniversalPayload/SerialPortInfo.h>
>
> +#include <Library/PlatformHookLib.h>
>
> +#include <Library/PcdLib.h>
>
> +#include <Library/HobLib.h>
>
> +
>
> +/**
>
> + Performs platform specific initialization required for the CPU to access
>
> + the hardware associated with a SerialPortLib instance. This function does
>
> + not initialize the serial port hardware itself. Instead, it initializes
>
> + hardware devices that are required for the CPU to access the serial port
>
> + hardware. This function may be called more than once.
>
> +
>
> + @retval RETURN_SUCCESS The platform specific initialization succeeded.
>
> + @retval RETURN_DEVICE_ERROR The platform specific initialization could
> not be completed.
>
> +
>
> +**/
>
> +RETURN_STATUS
>
> +EFIAPI
>
> +PlatformHookSerialPortInitialize (
>
> + VOID
>
> + )
>
> +{
>
> + RETURN_STATUS Status;
>
> + UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *SerialPortInfo;
>
> + UINT8 *GuidHob;
>
> + UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader;
>
> +
>
> + GuidHob = GetFirstGuidHob (&gUniversalPayloadSerialPortInfoGuid);
>
> + if (GuidHob == NULL) {
>
> + return EFI_NOT_FOUND;
>
> + }
>
> +
>
> + GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *)
> GET_GUID_HOB_DATA (GuidHob);
>
> + if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) >
> GET_GUID_HOB_DATA_SIZE (GuidHob)) || (GenericHeader->Length >
> GET_GUID_HOB_DATA_SIZE (GuidHob))) {
>
> + return EFI_NOT_FOUND;
>
> + }
>
> +
>
> + if (GenericHeader->Revision ==
> UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO_REVISION) {
>
> + SerialPortInfo = (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *)
> GET_GUID_HOB_DATA (GuidHob);
>
> + if (GenericHeader->Length <
> UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD
> (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO, RegisterBase)) {
>
> + //
>
> + // Return if can't find the Serial Port Info Hob with enough length
>
> + //
>
> + return EFI_NOT_FOUND;
>
> + }
>
> +
>
> + Status = PcdSetBoolS (PcdSerialUseMmio, SerialPortInfo->UseMmio);
>
> + if (RETURN_ERROR (Status)) {
>
> + return Status;
>
> + }
>
> + Status = PcdSet64S (PcdSerialRegisterBase, SerialPortInfo->RegisterBase);
>
> + if (RETURN_ERROR (Status)) {
>
> + return Status;
>
> + }
>
> + Status = PcdSet32S (PcdSerialRegisterStride, SerialPortInfo-
> >RegisterStride);
>
> + if (RETURN_ERROR (Status)) {
>
> + return Status;
>
> + }
>
> + Status = PcdSet32S (PcdSerialBaudRate, SerialPortInfo->BaudRate);
>
> + if (RETURN_ERROR (Status)) {
>
> + return Status;
>
> + }
>
> + Status = PcdSet64S (PcdUartDefaultBaudRate, SerialPortInfo->BaudRate);
>
> + if (RETURN_ERROR (Status)) {
>
> + return Status;
>
> + }
>
> +
>
> + return RETURN_SUCCESS;
>
> + }
>
> +
>
> + return EFI_NOT_FOUND;
>
> +}
>
> diff --git
> a/UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLi
> b.inf
> b/UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLi
> b.inf
> new file mode 100644
> index 0000000000..41e05ddf54
> --- /dev/null
> +++
> b/UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLi
> b.inf
> @@ -0,0 +1,41 @@
> +## @file
>
> +# Platform Hook Library instance for UART device for Universal Payload.
>
> +#
>
> +# Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
>
> +#
>
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
>
> +#
>
> +##
>
> +
>
> +[Defines]
>
> + INF_VERSION = 0x00010005
>
> + BASE_NAME = PlatformHookLib
>
> + FILE_GUID = 807E05AB-9411-429F-97F0-FE425BF6B094
>
> + MODULE_TYPE = BASE
>
> + VERSION_STRING = 1.0
>
> + LIBRARY_CLASS = PlatformHookLib
>
> + CONSTRUCTOR = PlatformHookSerialPortInitialize
>
> +
>
> +[Sources]
>
> + PlatformHookLib.c
>
> +
>
> +[LibraryClasses]
>
> + PcdLib
>
> + BaseLib
>
> + HobLib
>
> + DxeHobListLib
>
> +
>
> +[Packages]
>
> + MdePkg/MdePkg.dec
>
> + MdeModulePkg/MdeModulePkg.dec
>
> + UefiPayloadPkg/UefiPayloadPkg.dec
>
> +
>
> +[Guids]
>
> + gUniversalPayloadSerialPortInfoGuid
>
> +
>
> +[Pcd]
>
> + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio ## PRODUCES
>
> + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase ##
> PRODUCES
>
> + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ## PRODUCES
>
> + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ##
> PRODUCES
>
> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate ## PRODUCES
>
> --
> 2.16.2.windows.1
next prev parent reply other threads:[~2021-06-22 22:48 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-20 15:46 [PATCH 00/12] Enable Universal Payload in UefiPayloadPkg Zhiguang Liu
2021-06-20 15:46 ` [PATCH 01/12] UefiPayloadPkg: Add HobLib for UniversalPayload Zhiguang Liu
2021-06-22 22:48 ` Guo Dong
2021-06-20 15:46 ` [PATCH 02/12] MdeModulePkg: Add new structure for the Universal Payload Serial Port Info Zhiguang Liu
2021-06-21 11:09 ` Wu, Hao A
2021-06-20 15:46 ` [PATCH 03/12] UefiPayloadPkg: Add a separate PlatformHookLib for Universal Payload Zhiguang Liu
2021-06-22 22:48 ` Guo Dong [this message]
2021-06-20 15:46 ` [PATCH 04/12] UefiPayloadPkg: Update the function definition of HobConstructor Zhiguang Liu
2021-06-22 22:48 ` Guo Dong
2021-06-20 15:46 ` [PATCH 05/12] UefiPayloadPkg: Create separate Payload Entry for UniversalPayload Zhiguang Liu
2021-06-22 22:50 ` Guo Dong
2021-06-20 15:46 ` [PATCH 06/12] UefiPayloadPkg: Get and enter DxeCore for Universal Payload Zhiguang Liu
2021-06-22 22:50 ` Guo Dong
2021-06-20 15:46 ` [PATCH 07/12] UefiPayloadPkg: Fix up UPL Pcd database Zhiguang Liu
2021-06-22 22:49 ` Guo Dong
2021-06-20 15:46 ` [PATCH 08/12] UefiPayloadPkg: Include UniversalPayLoad modules in UefiPayloadPkg.dsc Zhiguang Liu
2021-06-22 22:51 ` Guo Dong
2021-06-20 15:46 ` [PATCH 09/12] UefiPayloadPkg: Remove assert when reserve MMIO/IO resource for devices Zhiguang Liu
2021-06-22 22:51 ` Guo Dong
2021-06-20 15:47 ` [PATCH 10/12] UefiPayloadPkg: Add macro to disable some drivers Zhiguang Liu
2021-06-22 22:49 ` Guo Dong
2021-06-20 15:47 ` [PATCH 11/12] UefiPayloadPkg: Add PcdInstallAcpiSdtProtocol feature in UefiPayloadPkg Zhiguang Liu
2021-06-22 22:52 ` Guo Dong
2021-06-20 15:47 ` [PATCH 12/12] UefiPayloadPkg: Add PcdResetOnMemoryTypeInformationChange " Zhiguang Liu
2021-06-22 22:51 ` Guo Dong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BYAPR11MB3622621BF4408A6D1FBECB219E099@BYAPR11MB3622.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox