Reviewed-by: Nickle Wang <nick...@nvidia.com>
Regards,
Nickle
> -----Original Message-----
> From: abner.ch...@amd.com <abner.ch...@amd.com>
> Sent: Tuesday, March 26, 2024 11:15 PM
> To: devel@edk2.groups.io
> Cc: Nickle Wang <nick...@nvidia.com>; Igor Kulchytskyy <ig...@ami.com>
> Subject: [PATCH V2 2/6] RedfishPkg/RedfishDebugLib: Introduce Redfish DEBUG
> macro
>
> External email: Use caution opening links or attachments
>
>
> From: Abner Chang <abner.ch...@amd.com>
>
> Introduce DEBUG_REDFISH macro for the debug message of edk2 Redfish
> components.
> DEBUG_REDFISH can be used in any edk2 Redfish component with Redfish
> DebugCatagory as the first parameter.
> Whether the debug message is output or not depends on the platform setting of
> PcdRedfishDebugCatagory.
>
> Signed-off-by: Abner Chang <abner.ch...@amd.com>
> Cc: Nickle Wang <nick...@nvidia.com>
> Cc: Igor Kulchytskyy <ig...@ami.com>
> ---
> RedfishPkg/RedfishPkg.dec | 9 +++
> .../RedfishDebugLib/RedfishDebugLib.inf | 4 ++
> RedfishPkg/Include/Library/RedfishDebugLib.h | 43 +++++++++++----
> .../Library/RedfishDebugLib/RedfishDebugLib.c | 55 ++++---------------
> 4 files changed, 57 insertions(+), 54 deletions(-)
>
> diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec index
> 1a9c9ed7bc5..a9665ff68ef 100644
> --- a/RedfishPkg/RedfishPkg.dec
> +++ b/RedfishPkg/RedfishPkg.dec
> @@ -5,6 +5,7 @@
> # (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR> #
> Copyright (c) 2023, American Megatrends International LLC.
> # Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> +# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights
> +reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent ## @@ -184,3 +185,11 @@
>
> gEfiRedfishPkgTokenSpaceGuid.PcdHttpRetryWaitInSecond|1|UINT16|0x000010
> 10
> ## This is used to disable Redfish HTTP cache function and every request
> will be
> sent to Redfish service.
>
> gEfiRedfishPkgTokenSpaceGuid.PcdHttpCacheDisabled|FALSE|BOOLEAN|0x0000
> 1011
> + #
> + # Redfish debug catagories
> + # To enable the debug message for the entire edk2 Redfish implementation,
> below PCDs must be set.
> + # DEBUG_MANAGEABILITY must be set PcdDebugPrintErrorLevel.
> + #
> + # 0x0000000000000001 RedfishPlatformConfigDxe driver debug enabled.
> + #
> +
> +
> gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory|0|UINT64|0x000010
> + 12
> diff --git a/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.inf
> b/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.inf
> index d468bb213b6..42ff321b48e 100644
> --- a/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.inf
> +++ b/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.inf
> @@ -2,6 +2,7 @@
> # INF file for Redfish debug library.
> #
> # Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> +# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights
> +reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -35,5 +36,8 @@
> RedfishHttpLib
> UefiLib
>
> +[FixedPcd]
> + gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory
> +
> [Depex]
> TRUE
> diff --git a/RedfishPkg/Include/Library/RedfishDebugLib.h
> b/RedfishPkg/Include/Library/RedfishDebugLib.h
> index ad7a6975867..19e5a895cc8 100644
> --- a/RedfishPkg/Include/Library/RedfishDebugLib.h
> +++ b/RedfishPkg/Include/Library/RedfishDebugLib.h
> @@ -2,6 +2,7 @@
> This file defines the Redfish debug library interface.
>
> Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> + Copyright (C) 2024 Advanced Micro Devices, Inc. All rights
> + reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -11,28 +12,48 @@
> #define REDFISH_DEBUG_LIB_H_
>
> #include <Uefi.h>
> +#include <Library/DebugLib.h>
> #include <RedfishServiceData.h>
> #include <Library/HiiUtilityLib.h>
> #include <Library/JsonLib.h>
>
> #include <Protocol/EdkIIRedfishPlatformConfig.h>
>
> -#define DEBUG_REDFISH_NETWORK DEBUG_MANAGEABILITY ///< Debug
> error level for Redfish networking function
> -#define DEBUG_REDFISH_HOST_INTERFACE DEBUG_MANAGEABILITY ///<
> Debug error level for Redfish networking function
> +// Used with MdePKg DEBUG macro.
> +#define DEBUG_REDFISH_NETWORK DEBUG_MANAGEABILITY ///<
> Debug error level for Redfish networking function
> +#define DEBUG_REDFISH_HOST_INTERFACE DEBUG_MANAGEABILITY
> ///< Debug error level for Redfish Host INterface
> +#define DEBUG_REDFISH_PLATFORM_CONFIG DEBUG_MANAGEABILITY
> ///< Debug error level for Redfish Platform Configure Driver
> +
> +//
> +// Definitions of Redfish debug capability in Redfish component scope,
> +used with DEBUG_REDFISH macro // For example, Redfish Platform Config
> Driver
> +// DEBUG_REDFISH(DEBUG_REDFISH_PLATFORM_CONFIG_DXE, ...)
> +//
> +#define DEBUG_REDFISH_COMPONENT_PLATFORM_CONFIG_DXE
> 0x00000001
> +
> +#define DEBUG_REDFISH(DebugCategory, ...) \
> + do { \
> + if (!DebugPrintEnabled()) { \
> + break; \
> + } \
> + if (!DebugRedfishComponentEnabled (DebugCategory)) { \
> + break; \
> + } \
> + DEBUG ((DEBUG_MANAGEABILITY, ##__VA_ARGS__)); \
> + } while (FALSE)
>
> /**
> - Debug print the value of StatementValue.
> + Determine whether the Redfish debug category is enabled in
> + gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory.
>
> - @param[in] ErrorLevel DEBUG macro error level.
> - @param[in] StatementValue The statement value to print.
> + @param[in] DebugCategory Redfish debug category.
>
> - @retval EFI_SUCCESS StatementValue is printed.
> - @retval EFI_INVALID_PARAMETER StatementValue is NULL.
> + @retval TRUE This debug category is enabled.
> + @retval FALSE This debug category is disabled..
> **/
> -EFI_STATUS
> -DumpHiiStatementValue (
> - IN UINTN ErrorLevel,
> - IN HII_STATEMENT_VALUE *StatementValue
> +BOOLEAN
> +DebugRedfishComponentEnabled (
> + IN UINT64 DebugCategory
> );
>
> /**
> diff --git a/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> b/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> index 8b0425b8c3b..f8bb51ff532 100644
> --- a/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> +++ b/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> @@ -2,6 +2,7 @@
> Redfish debug library to debug Redfish application.
>
> Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> + Copyright (C) 2024 Advanced Micro Devices, Inc. All rights
> + reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -25,55 +26,23 @@
> #define REDFISH_PRINT_BUFFER_BYTES_PER_ROW 16
>
> /**
> - Debug print the value of StatementValue.
> + Determine whether the Redfish debug category is enabled in
> + gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory.
>
> - @param[in] ErrorLevel DEBUG macro error level.
> - @param[in] StatementValue The statement value to print.
> + @param[in] RedfishDebugCategory Redfish debug category.
>
> - @retval EFI_SUCCESS StatementValue is printed.
> - @retval EFI_INVALID_PARAMETER StatementValue is NULL.
> + @retval TRUE This debug category is enabled.
> + @retval FALSE This debug category is disabled..
> **/
> -EFI_STATUS
> -DumpHiiStatementValue (
> - IN UINTN ErrorLevel,
> - IN HII_STATEMENT_VALUE *StatementValue
> +BOOLEAN
> +DebugRedfishComponentEnabled (
> + IN UINT64 RedfishDebugCategory
> )
> {
> - if (StatementValue == NULL) {
> - return EFI_INVALID_PARAMETER;
> - }
> + UINT64 DebugCategory;
>
> - DEBUG ((ErrorLevel, "BufferValueType: 0x%x\n", StatementValue-
> >BufferValueType));
> - DEBUG ((ErrorLevel, "BufferLen: 0x%x\n", StatementValue->BufferLen));
> - DEBUG ((ErrorLevel, "Buffer: 0x%p\n", StatementValue->Buffer));
> - DEBUG ((ErrorLevel, "Type: 0x%p\n", StatementValue->Type));
> -
> - switch (StatementValue->Type) {
> - case EFI_IFR_TYPE_NUM_SIZE_8:
> - DEBUG ((ErrorLevel, "Value: 0x%x\n", StatementValue->Value.u8));
> - break;
> - case EFI_IFR_TYPE_NUM_SIZE_16:
> - DEBUG ((ErrorLevel, "Value: 0x%x\n", StatementValue->Value.u16));
> - break;
> - case EFI_IFR_TYPE_NUM_SIZE_32:
> - DEBUG ((ErrorLevel, "Value: 0x%x\n", StatementValue->Value.u32));
> - break;
> - case EFI_IFR_TYPE_NUM_SIZE_64:
> - DEBUG ((ErrorLevel, "Value: 0x%lx\n", StatementValue->Value.u64));
> - break;
> - case EFI_IFR_TYPE_BOOLEAN:
> - DEBUG ((ErrorLevel, "Value: %a\n", (StatementValue->Value.b ?
> "true" :
> "false")));
> - break;
> - case EFI_IFR_TYPE_STRING:
> - DEBUG ((ErrorLevel, "Value: 0x%x\n",
> StatementValue->Value.string));
> - break;
> - case EFI_IFR_TYPE_TIME:
> - case EFI_IFR_TYPE_DATE:
> - default:
> - break;
> - }
> -
> - return EFI_SUCCESS;
> + DebugCategory = FixedPcdGet64 (PcdRedfishDebugCategory); return
> + ((DebugCategory & RedfishDebugCategory) != 0);
> }
>
> /**
> --
> 2.37.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#117152): https://edk2.groups.io/g/devel/message/117152
Mute This Topic: https://groups.io/mt/105159784/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-