Acked-by: Hao A Wu <hao.a...@intel.com>

Best Regards,
Hao Wu

> -----Original Message-----
> From: Sami Mujawar <sami.muja...@arm.com>
> Sent: Saturday, October 3, 2020 5:14 AM
> To: devel@edk2.groups.io
> Cc: Sami Mujawar <sami.muja...@arm.com>; ard.biesheu...@arm.com;
> l...@nuviainc.com; ler...@redhat.com; Wang, Jian J <jian.j.w...@intel.com>;
> Wu, Hao A <hao.a...@intel.com>; alexandru.eli...@arm.com;
> andre.przyw...@arm.com; matteo.carl...@arm.com; ben.adder...@arm.com;
> n...@arm.com
> Subject: [PATCH v5 07/15] MdeModulePkg: Fix constructor invocation ordering
> 
> The BaseSerialPortLib16550 library does not implement a constructor. This
> prevents the correct constructor invocation order for dependent libraries.
> e.g. A PlatformHookLib (for the Serial Port) may have a dependency on
> retrieving data from a Hob. A Hob library implementation may configure its
> initial state in the HobLib constructor. Since BaseSerialPortLib16550 does not
> implement a constructor, the Basetools do not resolve the correct order for
> constructor invocation.
> 
> To fix this, add an empty constructor to the serial port library
> BaseSerialPortLib16550.
> 
> Signed-off-by: Sami Mujawar <sami.muja...@arm.com>
> Acked-by: Ard Biesheuvel <ard.biesheu...@arm.com>
> ---
> 
> Notes:
>     v5:
>      - Fix function documentation to match doxygen style.             [Sami]
>        Ref: https://edk2.groups.io/g/devel/message/62148
> 
>     v4:
>       - No code change, resending patch with v4 series.               [Sami]
>         Ref: https://edk2.groups.io/g/devel/topic/75081484
> 
>  MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c   |
> 17 +++++++++++++++++
>  MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf |  3
> +++
>  2 files changed, 20 insertions(+)
> 
> diff --git
> a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
> b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
> index
> 9cb50dd80d5634ab2aa6d68bf5ca7fb891463eef..f10b5894663a979873427cffa8
> 4a37b3064c623e 100644
> --- a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
> +++ b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550
> +++ .c
> @@ -4,6 +4,7 @@
>    (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
>    Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>    Copyright (c) 2018, AMD Incorporated. All rights reserved.<BR>
> +  Copyright (c) 2020, ARM Limited. All rights reserved.
> 
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> @@ -1102,3 +1103,19 @@ SerialPortSetAttributes (
>    return RETURN_SUCCESS;
>  }
> 
> +/** Base Serial Port 16550 Library Constructor
> +
> +  @retval RETURN_SUCCESS  Success.
> +**/
> +EFI_STATUS
> +EFIAPI
> +BaseSerialPortLib16550 (
> +  VOID
> +  )
> +{
> +  // Nothing to do here. This constructor is added to
> +  // enable the chain of constructor invocation for
> +  // dependent libraries.
> +  return RETURN_SUCCESS;
> +}
> +
> diff --git
> a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
> b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
> index
> 8b4ae3f1d4ee1e2e9a8b81eab4c900541ce8cfb6..92b7a8b7896a305d2ce22589f
> 8a9593618d37bb7 100644
> ---
> a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
> +++ b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550
> +++ .inf
> @@ -2,6 +2,8 @@
>  #  SerialPortLib instance for 16550 UART.
>  #
>  #  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2020, ARM Limited. All rights reserved.
> +#
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ## @@ -14,6 +16,7 @@
> [Defines]
>    MODULE_TYPE                    = BASE
>    VERSION_STRING                 = 1.1
>    LIBRARY_CLASS                  = SerialPortLib
> +  CONSTRUCTOR                    = BaseSerialPortLib16550
> 
>  [Packages]
>    MdePkg/MdePkg.dec
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#65877): https://edk2.groups.io/g/devel/message/65877
Mute This Topic: https://groups.io/mt/77270945/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to