summaryrefslogtreecommitdiff
path: root/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
diff options
context:
space:
mode:
authorVarshitPandya <varshit.pandya@arm.com>2026-06-23 22:47:10 +0300
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2026-06-30 23:31:10 +0300
commit0c2e3373512dfd6ac02215126e032ec41602af24 (patch)
tree27e9d10b4e6b18d196384f9baf8aa561eedc143b /DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
parentf26ba713c6bb26d1581efc84b22e14726b90b6d3 (diff)
downloadedk2-0c2e3373512dfd6ac02215126e032ec41602af24.tar.xz
DynamicTablesPkg: Add SMBIOS Cooling Device (Type 27) generator
Introduce a CM_ARCH_COMMON_COOLING_DEVICE_INFO object to describe cooling devices provided by the platform. The generator creates one SMBIOS Type 27 record for each cooling device object and populates the device type/status, cooling unit group, OEM-defined data, nominal speed, and optional description string. The temperature probe handle is set to 0xFFFF for now because SMBIOS Type 28 Temperature Probe generation is not currently available. Reject non-null temperature probe tokens until Type 28 handle resolution can be added. Add the CM object parser entry and wire the generator into the DynamicTablesPkg build. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
Diffstat (limited to 'DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c')
-rw-r--r--DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index dd97db16f8..9443059559 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -1,7 +1,7 @@
/** @file
Configuration Manager Object parser.
- Copyright (c) 2021 - 2023, ARM Limited. All rights reserved.<BR>
+ Copyright (c) 2021 - 2026, ARM Limited. All rights reserved.<BR>
Copyright (C) 2024 - 2025 Advanced Micro Devices, Inc. All rights reserved.
Copyright (c) 2024 - 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -1223,6 +1223,18 @@ STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryArrayMappedAddressParser[] = {
{ "NumMemDevices", sizeof (UINT8), "0x%u", NULL },
};
+/** A parser for EArchCommonObjCoolingDeviceInfo.
+*/
+STATIC CONST CM_OBJ_PARSER CmArchCommonCoolingDeviceInfoParser[] = {
+ { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
+ { "TemperatureProbeToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
+ { "DeviceTypeAndStatus", sizeof (MISC_COOLING_DEVICE_TYPE), "0x%x", NULL },
+ { "CoolingUnitGroup", sizeof (UINT8), "0x%x", NULL },
+ { "OEMDefined", sizeof (UINT32), "0x%x", NULL },
+ { "NominalSpeed", sizeof (UINT16), "0x%x", NULL },
+ { "Description", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
+};
+
/** A parser for Arch Common namespace objects.
*/
STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
@@ -1285,6 +1297,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArchCommonObjPhysicalMemoryArray, CmArchCommonPhysicalMemoryArrayParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryDeviceInfo, CmArchCommonMemoryDeviceInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryArrayMappedAddress, CmArchCommonMemoryArrayMappedAddressParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjCoolingDeviceInfo, CmArchCommonCoolingDeviceInfoParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};