2021-09-30 08:48:17 +01:00
|
|
|
/** @file
|
|
|
|
|
Configuration Manager Object parser.
|
|
|
|
|
|
2026-06-23 20:47:10 +01:00
|
|
|
Copyright (c) 2021 - 2026, ARM Limited. All rights reserved.<BR>
|
2024-12-20 09:06:09 +00:00
|
|
|
Copyright (C) 2024 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
2026-07-11 16:20:13 +00:00
|
|
|
Copyright (c) 2024 - 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR>
|
2026-07-28 20:51:40 +08:00
|
|
|
Copyright (c) 2026, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
2021-09-30 08:48:17 +01:00
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
#include <Library/BaseLib.h>
|
|
|
|
|
#include <Library/DebugLib.h>
|
|
|
|
|
#include <ConfigurationManagerObject.h>
|
2025-04-15 23:14:52 +00:00
|
|
|
#include "ArchCommonNameSpaceObjects.h"
|
2021-09-30 08:48:17 +01:00
|
|
|
#include "ConfigurationManagerObjectParser.h"
|
|
|
|
|
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2023-10-06 16:28:06 +00:00
|
|
|
PrintString (
|
2021-09-30 08:48:17 +01:00
|
|
|
CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
UINT8 *Ptr,
|
|
|
|
|
UINT32 Length
|
2021-09-30 08:48:17 +01:00
|
|
|
);
|
|
|
|
|
|
2022-10-10 11:20:46 +02:00
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2023-10-06 16:28:06 +00:00
|
|
|
PrintStringPtr (
|
|
|
|
|
CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
UINT8 *Ptr,
|
|
|
|
|
UINT32 Length
|
2023-10-06 16:28:06 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2024-06-18 17:50:02 -07:00
|
|
|
PrintChars (
|
2023-10-06 16:28:06 +00:00
|
|
|
CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
UINT8 *Ptr,
|
|
|
|
|
UINT32 Length
|
2023-10-06 16:28:06 +00:00
|
|
|
);
|
|
|
|
|
|
2026-04-20 21:50:31 +00:00
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
|
|
|
|
PrintGuid (
|
|
|
|
|
CONST CHAR8 *Format,
|
|
|
|
|
UINT8 *Ptr,
|
|
|
|
|
UINT32 Length
|
|
|
|
|
);
|
|
|
|
|
|
2023-10-06 16:28:06 +00:00
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2024-06-18 17:50:02 -07:00
|
|
|
HexDump (
|
2023-10-06 16:28:06 +00:00
|
|
|
CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
UINT8 *Ptr,
|
|
|
|
|
UINT32 Length
|
2022-10-10 11:20:46 +02:00
|
|
|
);
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
/** A parser for EArmObjBootArchInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmBootArchInfoParser[] = {
|
|
|
|
|
{ "BootArchFlags", 2, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-05 16:34:46 +00:00
|
|
|
/** A parser for EArchCommonObjPowerManagementProfileInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-05 16:34:46 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPowerManagementProfileInfoParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "PowerManagementProfile", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGicCInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGicCInfoParser[] = {
|
2022-09-22 14:36:44 -06:00
|
|
|
{ "CPUInterfaceNumber", 4, "0x%x", NULL },
|
|
|
|
|
{ "AcpiProcessorUid", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ParkingProtocolVersion", 4, "0x%x", NULL },
|
|
|
|
|
{ "PerformanceInterruptGsiv", 4, "0x%x", NULL },
|
|
|
|
|
{ "ParkedAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "PhysicalBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "GICV", 8, "0x%llx", NULL },
|
|
|
|
|
{ "GICH", 8, "0x%llx", NULL },
|
|
|
|
|
{ "VGICMaintenanceInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "GICRBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "MPIDR", 8, "0x%llx", NULL },
|
|
|
|
|
{ "ProcessorPowerEfficiencyClass", 1, "0x%x", NULL },
|
|
|
|
|
{ "SpeOverflowInterrupt", 2, "0x%x", NULL },
|
|
|
|
|
{ "ProximityDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "ClockDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "AffinityFlags", 4, "0x%x", NULL },
|
2023-09-22 15:35:07 +01:00
|
|
|
{ "CpcToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2023-10-31 14:50:43 +00:00
|
|
|
{ "TRBEInterrupt", 2, "0x%x", NULL },
|
2024-01-25 16:18:45 +01:00
|
|
|
{ "EtToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PsdToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2025-04-15 16:47:25 +02:00
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ClockDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGicDInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGicDInfoParser[] = {
|
|
|
|
|
{ "PhysicalBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "SystemVectorBase", 4, "0x%x", NULL },
|
|
|
|
|
{ "GicVersion", 1, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGicMsiFrameInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGicMsiFrameInfoParser[] = {
|
|
|
|
|
{ "GicMsiFrameId", 4, "0x%x", NULL },
|
|
|
|
|
{ "PhysicalBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "SPICount", 2, "0x%x", NULL },
|
|
|
|
|
{ "SPIBase", 2, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGicRedistributorInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGicRedistInfoParser[] = {
|
|
|
|
|
{ "DiscoveryRangeBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "DiscoveryRangeLength", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGicItsInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGicItsInfoParser[] = {
|
2025-04-15 16:47:25 +02:00
|
|
|
{ "GicItsId", 4, "0x%x", NULL },
|
|
|
|
|
{ "PhysicalBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "ProximityDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2024-03-06 10:08:09 +00:00
|
|
|
/** A parser for EArchCommonObjConsolePortInfo,
|
|
|
|
|
EArchCommonObjSerialDebugPortInfo and EArchCommonObjSerialPortInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-06 10:08:09 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSerialPortInfoParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Interrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "BaudRate", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Clock", 4, "0x%x", NULL },
|
|
|
|
|
{ "PortSubtype", 2, "0x%x", NULL },
|
|
|
|
|
{ "BaseAddressLength", 8, "0x%llx", NULL },
|
|
|
|
|
{ "AccessSize", 1, "0x%d", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGenericTimerInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGenericTimerInfoParser[] = {
|
|
|
|
|
{ "CounterControlBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "CounterReadBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "SecurePL1TimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "SecurePL1TimerFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "NonSecurePL1TimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "NonSecurePL1TimerFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "VirtualTimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "VirtualTimerFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "NonSecurePL2TimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "NonSecurePL2TimerFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "VirtualPL2TimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "VirtualPL2TimerFlags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjPlatformGTBlockInfo.
|
|
|
|
|
*/
|
2022-10-10 11:20:49 +02:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGTBlockInfoParser[] = {
|
|
|
|
|
{ "GTBlockPhysicalAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "GTBlockTimerFrameCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "GTBlockTimerFrameToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGTBlockTimerFrameInfo.
|
|
|
|
|
*/
|
2021-09-30 08:48:17 +01:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGTBlockTimerFrameInfoParser[] = {
|
|
|
|
|
{ "FrameNumber", 1, "0x%x", NULL },
|
|
|
|
|
{ "PhysicalAddressCntBase", 8, "0x%llx", NULL },
|
|
|
|
|
{ "PhysicalAddressCntEL0Base", 8, "0x%llx", NULL },
|
|
|
|
|
{ "PhysicalTimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "PhysicalTimerFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "VirtualTimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "VirtualTimerFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "CommonFlags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjPlatformGenericWatchdogInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGenericWatchdogInfoParser[] = {
|
|
|
|
|
{ "ControlFrameAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "RefreshFrameAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "TimerGSIV", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2025-07-07 10:08:20 +00:00
|
|
|
/** A parser for EArchCommonObjPciConfigSpaceInfo or
|
|
|
|
|
EArchCommonObjMcfgPciConfigSpaceInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-08 11:24:00 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPciConfigSpaceInfoParser[] = {
|
2021-12-09 10:25:03 +01:00
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "PciSegmentGroupNumber", 2, "0x%x", NULL },
|
|
|
|
|
{ "StartBusNumber", 1, "0x%x", NULL },
|
|
|
|
|
{ "EndBusNumber", 1, "0x%x", NULL },
|
|
|
|
|
{ "AddressMapToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterruptMapToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2025-10-17 13:57:24 +00:00
|
|
|
{ "RootPortInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2024-03-06 10:49:04 +00:00
|
|
|
/** A parser for EArchCommonObjHypervisorVendorIdentity.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-06 10:49:04 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonHypervisorVendorIdentityParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "HypervisorVendorId", 8, "0x%llx", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-06 11:00:12 +00:00
|
|
|
/** A parser for EArchCommonObjFixedFeatureFlags.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-06 11:00:12 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonFixedFeatureFlagsParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "Flags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjItsGroup.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmItsGroupNodeParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ItsIdCount", 4, "0x%x", NULL },
|
2022-10-10 11:20:47 +02:00
|
|
|
{ "ItsIdToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjNamedComponent.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmNamedComponentNodeParser[] = {
|
2023-10-06 16:28:06 +00:00
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IdMappingCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "CacheCoherent", 4, "0x%x", NULL },
|
|
|
|
|
{ "AllocationHints", 1, "0x%x", NULL },
|
|
|
|
|
{ "MemoryAccessFlags", 1, "0x%x", NULL },
|
|
|
|
|
{ "AddressSizeLimit", 1, "0x%x", NULL },
|
|
|
|
|
{ "ObjectName", sizeof (CHAR8 *), NULL, PrintStringPtr },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjRootComplex.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmRootComplexNodeParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IdMappingCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "CacheCoherent", 4, "0x%x", NULL },
|
|
|
|
|
{ "AllocationHints", 1, "0x%x", NULL },
|
|
|
|
|
{ "MemoryAccessFlags", 1, "0x%x", NULL },
|
|
|
|
|
{ "AtsAttribute", 4, "0x%x", NULL },
|
|
|
|
|
{ "PciSegmentNumber", 4, "0x%x", NULL },
|
2022-10-10 11:20:47 +02:00
|
|
|
{ "MemoryAddressSize", 1, "0x%x", NULL },
|
|
|
|
|
{ "PasidCapabilities", 2, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjSmmuV1SmmuV2.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmSmmuV1SmmuV2NodeParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IdMappingCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Span", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Model", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ContextInterruptCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "ContextInterruptToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PmuInterruptCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "PmuInterruptToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "SMMU_NSgIrpt", 4, "0x%x", NULL },
|
|
|
|
|
{ "SMMU_NSgIrptFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "SMMU_NSgCfgIrpt", 4, "0x%x", NULL },
|
2022-10-10 11:20:47 +02:00
|
|
|
{ "SMMU_NSgCfgIrptFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjSmmuV3.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmSmmuV3NodeParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IdMappingCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "VatosAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Model", 4, "0x%x", NULL },
|
|
|
|
|
{ "EventInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "PriInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "GerrInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "SyncInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "ProximityDomain", 4, "0x%x", NULL },
|
2022-10-10 11:20:47 +02:00
|
|
|
{ "DeviceIdMappingIndex", 4, "0x%x", NULL },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
2025-04-15 16:47:25 +02:00
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjPmcg.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmPmcgNodeParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IdMappingCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "OverflowInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "Page1BaseAddress", 8, "0x%llx", NULL },
|
2022-10-10 11:20:47 +02:00
|
|
|
{ "ReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjGicItsIdentifierArray.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmGicItsIdentifierParser[] = {
|
|
|
|
|
{ "ItsId", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjIdMappingArray.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmIdMappingParser[] = {
|
|
|
|
|
{ "InputBase", 4, "0x%x", NULL },
|
|
|
|
|
{ "NumIds", 4, "0x%x", NULL },
|
|
|
|
|
{ "OutputBase", 4, "0x%x", NULL },
|
|
|
|
|
{ "OutputReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjSmmuInterruptArray.
|
|
|
|
|
*/
|
2024-03-08 12:14:54 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonGenericInterruptParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "Interrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 13:36:32 +00:00
|
|
|
/** A parser for EArchCommonObjProcHierarchyInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-11 13:36:32 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonProcHierarchyInfoParser[] = {
|
2026-06-01 14:16:01 +02:00
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ParentToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "AcpiIdObjectToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "NoOfPrivateResources", 4, "0x%x", NULL },
|
|
|
|
|
{ "PrivateResourcesArrayToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "LpiToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "OverrideNameUidEnabled", 1, "%d", NULL },
|
|
|
|
|
{ "OverrideName", 2, "0x%x", NULL },
|
|
|
|
|
{ "OverrideUid", 4, "0x%x", NULL },
|
|
|
|
|
{ "ProcessorId", 8, "0x%llx", NULL },
|
|
|
|
|
{ "SocketDesignation", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
|
|
|
|
{ "ProcessorManufacturer", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
|
|
|
|
{ "ProcessorVersion", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
|
|
|
|
{ "SerialNumber", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
|
|
|
|
{ "AssetTag", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
|
|
|
|
{ "PartNumber", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
2026-07-27 15:55:07 +02:00
|
|
|
{ "SocketType", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
|
|
|
|
{ "StaToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2024-03-11 13:47:52 +00:00
|
|
|
/** A parser for EArchCommonObjCacheInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-11 13:47:52 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonCacheInfoParser[] = {
|
2026-06-01 14:16:01 +02:00
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "NextLevelOfCacheToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Size", 4, "0x%x", NULL },
|
|
|
|
|
{ "NumberOfSets", 4, "0x%x", NULL },
|
|
|
|
|
{ "Associativity", 4, "0x%x", NULL },
|
|
|
|
|
{ "Attributes", 1, "0x%x", NULL },
|
|
|
|
|
{ "LineSize", 2, "0x%x", NULL },
|
|
|
|
|
{ "CacheId", 4, "0x%x", NULL },
|
|
|
|
|
{ "Level", 4, "0x%x", NULL },
|
|
|
|
|
{ "SocketDesignation", SMBIOS_MAX_STRING_SIZE, "%a", PrintString },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2024-03-06 16:28:01 +00:00
|
|
|
/** A parser for EArchCommonObjCmRef.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-06 16:28:01 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjRefParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "ReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 11:00:57 +00:00
|
|
|
/** A parser for EArchCommonObjMemoryAffinityInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-11 11:00:57 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryAffinityInfoParser[] = {
|
2025-04-15 16:47:25 +02:00
|
|
|
{ "ProximityDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Length", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2024-03-11 11:08:56 +00:00
|
|
|
/** A parser for EArchCommonObjDeviceHandleAcpi.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-11 11:08:56 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonDeviceHandleAcpiParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "Hid", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Uid", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 11:14:03 +00:00
|
|
|
/** A parser for EArchCommonObjDeviceHandlePci.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-11 11:14:03 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonDeviceHandlePciParser[] = {
|
2021-09-30 08:48:17 +01:00
|
|
|
{ "SegmentNumber", 2, "0x%x", NULL },
|
|
|
|
|
{ "BusNumber", 1, "0x%x", NULL },
|
|
|
|
|
{ "DeviceNumber", 1, "0x%x", NULL },
|
|
|
|
|
{ "FunctionNumber", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 11:19:16 +00:00
|
|
|
/** A parser for EArchCommonObjGenericInitiatorAffinityInfo.
|
2021-09-30 08:48:17 +01:00
|
|
|
*/
|
2024-03-11 11:19:16 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonGenericInitiatorAffinityInfoParser[] = {
|
2025-04-15 16:47:25 +02:00
|
|
|
{ "ProximityDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "DeviceHandleType", 1, "0x%x", NULL },
|
|
|
|
|
{ "DeviceHandleToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2025-10-22 13:02:40 +05:30
|
|
|
/** A parser for EArmObjDmc620PmuSocketInfo.
|
|
|
|
|
*/
|
2026-06-05 14:15:14 +02:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmDmc620PmuSocketInfoParser[] = {
|
2025-10-22 13:02:40 +05:30
|
|
|
{ "NumDevices", 1, "0x%x", NULL },
|
|
|
|
|
{ "Dmc620PmuRegInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjDmc620PmuRegInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmDmc620PmuRegInfoParser[] = {
|
2026-06-08 10:36:38 +02:00
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Length", 8, "0x%llx", NULL },
|
|
|
|
|
{ "PmuIntr", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2025-10-22 13:02:40 +05:30
|
|
|
};
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
/** A parser for EArmObjCmn600Info.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmCmn600InfoParser[] = {
|
2026-06-08 10:36:38 +02:00
|
|
|
{ "PeriphBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "PeriphBaseAddressLength", 8, "0x%llx", NULL },
|
|
|
|
|
{ "RootNodeBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "DtcCount", 1, "0x%x", NULL },
|
|
|
|
|
{ "DtcIntr[0]", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
|
|
|
|
{ "DtcIntr[1]", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
|
|
|
|
{ "DtcIntr[2]", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
|
|
|
|
{ "DtcIntr[3]", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2021-10-08 15:46:31 +01:00
|
|
|
/** A parser for the EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE structure.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER AcpiGenericAddressParser[] = {
|
|
|
|
|
{ "AddressSpaceId", 1, "%d", NULL },
|
|
|
|
|
{ "RegisterBitWidth", 1, "%d", NULL },
|
|
|
|
|
{ "RegisterBitOffset", 1, "%d", NULL },
|
|
|
|
|
{ "AccessSize", 1, "%d", NULL },
|
|
|
|
|
{ "Address", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-27 14:54:11 +00:00
|
|
|
/** A parser for the EFI_ACPI_6_6_HARDWARE_ERROR_NOTIFICATION_STRUCTURE structure.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER AcpiHwErrNotificationParser[] = {
|
|
|
|
|
{ "Type", 1, "0x%x", NULL },
|
|
|
|
|
{ "Length", 1, "0x%x", NULL },
|
|
|
|
|
{ "ConfigurationWriteEnable", 2, "0x%x", NULL },
|
|
|
|
|
{ "PollInterval", 4, "0x%x", NULL },
|
|
|
|
|
{ "Vector", 4, "0x%x", NULL },
|
|
|
|
|
{ "SwitchToPollingThresholdValue", 4, "0x%x", NULL },
|
|
|
|
|
{ "SwitchToPollingThresholdWindow", 4, "0x%x", NULL },
|
|
|
|
|
{ "ErrorThresholdValue", 4, "0x%x", NULL },
|
|
|
|
|
{ "ErrorThresholdWindow", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 12:59:07 +00:00
|
|
|
/** A parser for EArchCommonObjLpiInfo.
|
2021-10-08 15:46:31 +01:00
|
|
|
*/
|
2024-03-11 12:59:07 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonLpiInfoParser[] = {
|
2022-10-10 11:20:50 +02:00
|
|
|
{ "MinResidency", 4, "0x%x", NULL },
|
|
|
|
|
{ "WorstCaseWakeLatency", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ArchFlags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ResCntFreq", 4, "0x%x", NULL },
|
|
|
|
|
{ "EnableParentState", 4, "0x%x", NULL },
|
|
|
|
|
{ "IsInteger", 1, "%d", NULL },
|
|
|
|
|
{ "IntegerEntryMethod", 8, "0x%llx", NULL },
|
2021-10-08 15:46:31 +01:00
|
|
|
{ "RegisterEntryMethod", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "ResidencyCounterRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "UsageCounterRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
2022-10-10 11:20:50 +02:00
|
|
|
{ "StateName", 16, NULL, PrintString },
|
2021-10-08 15:46:31 +01:00
|
|
|
};
|
|
|
|
|
|
2024-03-08 11:48:29 +00:00
|
|
|
/** A parser for EArchCommonObjPciAddressMapInfo.
|
2021-12-09 10:25:03 +01:00
|
|
|
*/
|
2024-03-08 11:48:29 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPciAddressMapInfoParser[] = {
|
2021-12-09 10:25:03 +01:00
|
|
|
{ "SpaceCode", 1, "%d", NULL },
|
|
|
|
|
{ "PciAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "CpuAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "AddressSize", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-08 12:06:59 +00:00
|
|
|
/** A parser for EArchCommonObjPciInterruptMapInfo.
|
2021-12-09 10:25:03 +01:00
|
|
|
*/
|
2024-03-08 12:06:59 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPciInterruptMapInfoParser[] = {
|
2024-03-08 12:14:54 +00:00
|
|
|
{ "PciBus", 1, "0x%x", NULL },
|
|
|
|
|
{ "PciDevice", 1, "0x%x", NULL },
|
|
|
|
|
{ "PciInterrupt", 1, "0x%x", NULL },
|
|
|
|
|
{ "IntcInterrupt", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2021-12-09 10:25:03 +01:00
|
|
|
};
|
|
|
|
|
|
2022-10-10 11:20:47 +02:00
|
|
|
/** A parser for EArmObjRmr.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmRmrInfoParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IdMappingCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Identifier", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "MemRangeDescCount", 4, "0x%x", NULL },
|
|
|
|
|
{ "MemRangeDescToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArmObjMemoryRangeDescriptor.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmMemoryRangeDescriptorInfoParser[] = {
|
|
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Length", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 14:00:01 +00:00
|
|
|
/** A parser for EArchCommonObjCpcInfo.
|
2022-09-22 14:36:44 -06:00
|
|
|
*/
|
2024-03-11 14:00:01 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonCpcInfoParser[] = {
|
2022-09-22 14:36:44 -06:00
|
|
|
{ "Revision", 4, "0x%lx", NULL },
|
|
|
|
|
{ "HighestPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "HighestPerformanceInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "NominalPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "NominalPerformanceInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "LowestNonlinearPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "LowestNonlinearPerformanceInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "LowestPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "LowestPerformanceInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "GuaranteedPerformanceRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "DesiredPerformanceRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "MinimumPerformanceRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "MaximumPerformanceRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "PerformanceReductionToleranceRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "TimeWindowRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "CounterWraparoundTimeBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "CounterWraparoundTimeInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "ReferencePerformanceCounterRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "DeliveredPerformanceCounterRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "PerformanceLimitedRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "CPPCEnableRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "AutonomousSelectionEnableBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "AutonomousSelectionEnableInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "AutonomousActivityWindowRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "EnergyPerformancePreferenceRegister", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "ReferencePerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "ReferencePerformanceInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "LowestFrequencyBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "LowestFrequencyInteger", 4, "0x%lx", NULL },
|
|
|
|
|
{ "NominalFrequencyBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "NominalFrequencyInteger", 4, "0x%lx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2022-10-10 11:20:54 +02:00
|
|
|
/** A parser for the PCC_MAILBOX_REGISTER_INFO struct.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmMailboxRegisterInfoParser[] = {
|
|
|
|
|
{ "Register", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE), NULL, NULL,
|
|
|
|
|
AcpiGenericAddressParser, ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "PreserveMask", 8, "0x%llx", NULL },
|
|
|
|
|
{ "WriteMask", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for the PCC_SUBSPACE_CHANNEL_TIMING_INFO struct.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmPccSubspaceChannelTimingInfoParser[] = {
|
|
|
|
|
{ "NominalLatency", 4, "0x%x", NULL },
|
|
|
|
|
{ "MaxPeriodicAccessRate", 4, "0x%x", NULL },
|
|
|
|
|
{ "MinRequestTurnaroundTime", 2, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 15:11:36 +00:00
|
|
|
/** A parser for EArchCommonObjPccSubspaceType0Info.
|
2022-10-10 11:20:54 +02:00
|
|
|
*/
|
2024-03-11 15:11:36 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType0InfoParser[] = {
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "SubspaceId", 1, "0x%x", NULL },
|
|
|
|
|
{ "Type", 1, "0x%x", NULL },
|
|
|
|
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "AddressLength", 8, "0x%llx", NULL },
|
|
|
|
|
{ "DoorbellReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
{ "ChannelTiming", sizeof (PCC_SUBSPACE_CHANNEL_TIMING_INFO),
|
|
|
|
|
NULL, NULL, CmArmPccSubspaceChannelTimingInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmPccSubspaceChannelTimingInfoParser) },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 15:20:39 +00:00
|
|
|
/** A parser for EArchCommonObjPccSubspaceType1Info.
|
2022-10-10 11:20:54 +02:00
|
|
|
*/
|
2024-03-11 15:20:39 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType1InfoParser[] = {
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO),
|
2024-03-11 15:11:36 +00:00
|
|
|
NULL, NULL, CmArchCommonPccSubspaceType0InfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) },
|
2024-03-08 12:14:54 +00:00
|
|
|
{ "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),
|
|
|
|
|
NULL, NULL, CmArchCommonGenericInterruptParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2022-10-10 11:20:54 +02:00
|
|
|
};
|
|
|
|
|
|
2024-03-11 15:26:56 +00:00
|
|
|
/** A parser for EArchCommonObjPccSubspaceType2Info.
|
2022-10-10 11:20:54 +02:00
|
|
|
*/
|
2024-03-11 15:26:56 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType2InfoParser[] = {
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO),
|
2024-03-11 15:11:36 +00:00
|
|
|
NULL, NULL, CmArchCommonPccSubspaceType0InfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) },
|
2024-03-08 12:14:54 +00:00
|
|
|
{ "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),NULL,NULL,
|
|
|
|
|
CmArchCommonGenericInterruptParser, ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "PlatIrqAckReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 15:38:58 +00:00
|
|
|
/** A parser for EArchCommonObjPccSubspaceType3Info or EArchCommonObjPccSubspaceType4Info.
|
2022-10-10 11:20:54 +02:00
|
|
|
*/
|
2024-03-11 15:38:58 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType34InfoParser[] = {
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO),
|
2024-03-11 15:11:36 +00:00
|
|
|
NULL, NULL, CmArchCommonPccSubspaceType0InfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) },
|
2024-03-08 12:14:54 +00:00
|
|
|
{ "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),NULL,NULL,
|
|
|
|
|
CmArchCommonGenericInterruptParser, ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "PlatIrqAckReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
{ "CmdCompleteCheckReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
{ "CmdCompleteUpdateReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
{ "ErrorStatusReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 15:45:15 +00:00
|
|
|
/** A parser for EArchCommonObjPccSubspaceType5Info.
|
2022-10-10 11:20:54 +02:00
|
|
|
*/
|
2024-03-11 15:45:15 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType5InfoParser[] = {
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO),
|
2024-03-11 15:11:36 +00:00
|
|
|
NULL, NULL, CmArchCommonPccSubspaceType0InfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) },
|
2024-03-08 12:14:54 +00:00
|
|
|
{ "Version", 2, "0x%x",NULL },
|
|
|
|
|
{ "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),NULL, NULL,
|
|
|
|
|
CmArchCommonGenericInterruptParser, ARRAY_SIZE (CmArchCommonGenericInterruptParser) },
|
2022-10-10 11:20:54 +02:00
|
|
|
{ "CmdCompleteCheckReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
{ "ErrorStatusReg", sizeof (PCC_MAILBOX_REGISTER_INFO),
|
|
|
|
|
NULL, NULL, CmArmMailboxRegisterInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
|
|
|
|
|
};
|
|
|
|
|
|
2023-09-22 15:35:12 +01:00
|
|
|
/** A parser for EArmObjEtInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArmEtInfo[] = {
|
|
|
|
|
{ "EtType", sizeof (ARM_ET_TYPE), "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-11 15:50:37 +00:00
|
|
|
/** A parser for EArchCommonObjPsdInfo.
|
2024-01-25 16:18:44 +01:00
|
|
|
*/
|
2024-03-11 15:50:37 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPsdInfoParser[] = {
|
2024-01-25 16:18:44 +01:00
|
|
|
{ "Revision", 1, "0x%x", NULL },
|
|
|
|
|
{ "DomainId", 4, "0x%x", NULL },
|
|
|
|
|
{ "CoordType", 4, "0x%x", NULL },
|
|
|
|
|
{ "NumProc", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-06-25 15:07:38 -07:00
|
|
|
/** A parser for EArchCommonObjTpm2InterfaceInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonTpm2InterfaceInfo[] = {
|
|
|
|
|
{ "PlatformClass", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "AddressOfControlArea", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
{ "StartMethod", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "StartMethodParametersSize", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "StartMethodParameters", EFI_TPM2_ACPI_TABLE_START_METHOD_SPECIFIC_PARAMETERS_MAX_SIZE, NULL, HexDump },
|
|
|
|
|
{ "Laml", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "Lasa", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-09-25 06:45:19 +00:00
|
|
|
/** A parser for EArchCommonObjSpmiInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSpmiInterfaceInfoParser[] = {
|
|
|
|
|
{ "InterfaceType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "BaseAddress", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
2024-11-30 06:40:48 +00:00
|
|
|
NULL, NULL, AcpiGenericAddressParser, ARRAY_SIZE (AcpiGenericAddressParser) },
|
2024-09-25 06:45:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjSpmiInterruptDeviceInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSpmiInterruptDeviceInfoParser[] = {
|
|
|
|
|
{ "InterruptType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "GPE", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "PciDeviceFlag", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "GlobalSystemInterrupt", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "DeviceId", sizeof (UINT32), "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-11-29 10:10:38 +00:00
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonCstInfoParser[] = {
|
|
|
|
|
{ "Register",
|
|
|
|
|
sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL,
|
|
|
|
|
NULL,
|
|
|
|
|
AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "Type", 1, "0x%x", NULL },
|
|
|
|
|
{ "Latency", 2, "0x%x", NULL },
|
|
|
|
|
{ "Power", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjCsdInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonCsdInfoParser[] = {
|
|
|
|
|
{ "Revision", 1, "0x%x", NULL },
|
|
|
|
|
{ "Domain", 4, "0x%x", NULL },
|
|
|
|
|
{ "CoordType", 4, "0x%x", NULL },
|
|
|
|
|
{ "NumProcessors", 4, "0x%x", NULL },
|
|
|
|
|
{ "CstPkgRefToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjPctInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPctInfoParser[] = {
|
|
|
|
|
{ "ControlRegister",
|
|
|
|
|
sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL,
|
|
|
|
|
NULL,
|
|
|
|
|
AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "StatusRegister",
|
|
|
|
|
sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL,
|
|
|
|
|
NULL,
|
|
|
|
|
AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjPssInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPssInfoParser[] = {
|
|
|
|
|
{ "CoreFrequency", 4, "0x%x", NULL },
|
|
|
|
|
{ "Power", 4, "0x%x", NULL },
|
|
|
|
|
{ "Latency", 4, "0x%x", NULL },
|
|
|
|
|
{ "BusMasterLatency", 4, "0x%x", NULL },
|
|
|
|
|
{ "Control", 4, "0x%x", NULL },
|
|
|
|
|
{ "Status", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjPpcInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPpcInfoParser[] = {
|
|
|
|
|
{ "PstateCount", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-11-29 13:03:26 +00:00
|
|
|
/** A parser for EArchCommonObjStaInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonStaInfoParser[] = {
|
|
|
|
|
{ "DeviceStatus", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2025-03-07 07:59:26 -08:00
|
|
|
/** A parser for EArchCommonObjMemoryRangeDescriptor.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjMemoryRangeDescriptor[] = {
|
|
|
|
|
{ "BaseAddress", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
{ "Length", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjGenericDbg2DeviceInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjDbg2DeviceInfo[] = {
|
|
|
|
|
{ "AddressResourceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PortType", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "PortSubtype", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "AccessSize", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "ObjectName", AML_NAME_SEG_SIZE + 1, NULL, PrintString }
|
|
|
|
|
};
|
|
|
|
|
|
2025-04-15 23:14:52 +00:00
|
|
|
/** A parser for EArchCommonObjCxlHostBridgeInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjCxlHostBridgeInfo[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Uid", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "Version", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "ComponentRegisterBase", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjInterleaveTargetTokenParser[] = {
|
|
|
|
|
{ "InterleaveTargetToken[0]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[1]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[2]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[3]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[4]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[5]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[6]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[7]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[8]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[9]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[10]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[11]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[12]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[13]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[14]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "InterleaveTargetToken[15]", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjCxlFixedMemoryWindowInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjCxlFixedMemoryWindowInfo[] = {
|
|
|
|
|
{ "BaseHostPhysicalAddress", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
{ "WindowSizeBytes", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
{ "NumberOfInterleaveWays", sizeof (UINT8), "%d", NULL },
|
|
|
|
|
{ "InterleaveArithmetic", sizeof (UINT8), "%d", NULL },
|
|
|
|
|
{ "HostBridgeInterleaveGranularity", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "WindowRestrictions", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "QtgId", sizeof (UINT16), "%d", NULL },
|
|
|
|
|
{ "InterleaveTargetTokens",
|
|
|
|
|
sizeof (CM_OBJECT_TOKEN) * CFMWS_MAX_INTERLEAVE_WAYS,
|
|
|
|
|
NULL,
|
|
|
|
|
NULL,
|
|
|
|
|
CmArchCommonObjInterleaveTargetTokenParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonObjInterleaveTargetTokenParser) },
|
|
|
|
|
};
|
|
|
|
|
|
2025-04-15 16:47:36 +02:00
|
|
|
/** A parser for EArchCommonObjProximityDomainInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonProximityDomainInfo[] = {
|
|
|
|
|
{ "GenerateDomainId", 1, "%d", NULL },
|
|
|
|
|
{ "DomainId", 4, "%d", NULL,},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjProximityDomainRelationInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonProximityDomainRelationInfo[] = {
|
|
|
|
|
{ "FirstDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "SecondDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Relation", 8, "0x%lld", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjSystemLocalityInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSystemLocalityInfo[] = {
|
|
|
|
|
{ "RelativeDistanceArray", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjMemoryProximityDomainAttrInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryProximityDomainAttrInfo[] = {
|
|
|
|
|
{ "Flags", 2, "0x%x", NULL },
|
|
|
|
|
{ "InitiatorProximityDomain", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MemoryProximityDomain", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjMemoryLatBwInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryLatBwInfo[] = {
|
|
|
|
|
{ "Flags", 1, "0x%x", NULL },
|
|
|
|
|
{ "DataType", 1, "%d", NULL },
|
|
|
|
|
{ "MinTransferSize", 1, "%d", NULL },
|
|
|
|
|
{ "EntryBaseUnit", 8, "%lld", NULL },
|
|
|
|
|
{ "RelativeDistanceArray", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjMemoryCacheInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryCacheInfo[] = {
|
|
|
|
|
{ "MemoryProximityDomain", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MemorySideCacheSize", 8, "0x%lx", NULL },
|
|
|
|
|
{ "CacheAttributes", 4, "0x%x", NULL,},
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-11 10:34:44 +00:00
|
|
|
/** A parser for EArchCommonObjSpcrInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjSpcrInfoParser[] = {
|
|
|
|
|
{ "InterruptType", 1, "0x%x", NULL },
|
2024-07-02 11:03:55 +05:30
|
|
|
{ "TerminalType", 1, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjRintcInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVRintcInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "HartId", 8, "0x%llx", NULL },
|
|
|
|
|
{ "AcpiProcessorUid", 4, "0x%x", NULL },
|
|
|
|
|
{ "ExtIntcId", 4, "0x%x", NULL },
|
|
|
|
|
{ "ImsicBaseAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "ImsicSize", 4, "0x%llx", NULL },
|
|
|
|
|
{ "ProximityDomain", 4, "0x%llx", NULL },
|
|
|
|
|
{ "ClockDomain", 4, "0x%llx", NULL },
|
|
|
|
|
{ "AffinityFlags", 4, "0x%llx", NULL },
|
|
|
|
|
{ "CmoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "IsaStringToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MmuToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "CpcToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ClockDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjImsicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVImsicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "NumSmodeIds", 2, "0x%x", NULL },
|
|
|
|
|
{ "NumGmodeIds", 2, "0x%x", NULL },
|
|
|
|
|
{ "GuestIndexBits", 1, "0x%x", NULL },
|
|
|
|
|
{ "HartIndexBits", 1, "0x%x", NULL },
|
|
|
|
|
{ "GroupIndexBits", 1, "0x%x", NULL },
|
|
|
|
|
{ "GroupIndexShift", 1, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for PLIC_APLIC_COMMON_INFO.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmPlicAplicCommonInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Id", 1, "0x%x", NULL },
|
|
|
|
|
{ "NumIrqs", 2, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "HardwareId", 8, NULL, PrintChars },
|
|
|
|
|
{ "Address", 8, "0x%lx", NULL },
|
|
|
|
|
{ "Size", 4, "0x%x", NULL },
|
|
|
|
|
{ "GsiBase", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjAplicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVAplicInfoParser[] = {
|
|
|
|
|
{ "Aplic", sizeof (PLIC_APLIC_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmPlicAplicCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmPlicAplicCommonInfoParser) },
|
|
|
|
|
{ "NumIdcs", 2, "0x%x",NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjPlicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVPlicInfoParser[] = {
|
|
|
|
|
{ "Plic", sizeof (PLIC_APLIC_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmPlicAplicCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmPlicAplicCommonInfoParser) },
|
|
|
|
|
{ "MaxPriority", 2, "0x%x",NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjIsaStringInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVIsaStringInfoParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ISA Length", 2, "0x%x", NULL },
|
|
|
|
|
{ "Isa String", MAX_ISA_STRING_LENGTH, NULL, PrintString },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjCmoInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVCmoInfoParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "CBOM Block Size", 1, "0x%x", NULL },
|
|
|
|
|
{ "CBOP Block Size", 1, "0x%x", NULL },
|
|
|
|
|
{ "CBOZ Block Size", 1, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjMmuInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVMmuInfoParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MMU Type", 1, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ERiscVObjTimerInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmRiscVTimerInfoParser[] = {
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "Timer Base Frequency", 8, "0x%lx", NULL },
|
2025-06-11 10:34:44 +00:00
|
|
|
};
|
|
|
|
|
|
2025-10-18 14:21:20 +00:00
|
|
|
/** A Parser for EArchCommonObjTpm2DeviceInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjTpm2DeviceInfoParser[] = {
|
|
|
|
|
{ "Tpm2DeviceBaseAddress", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "Tpm2DeviceSize", sizeof (UINT64), "0x%lx", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2025-10-17 13:41:45 +00:00
|
|
|
/** A parser for EArchCommonObjPciRootPortInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjPciRootPortInfoParser[] = {
|
|
|
|
|
{ "RootPortAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "RootPortPrtToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Sun", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-27 14:54:11 +00:00
|
|
|
/** A parser for ERROR_SOURCE_COMMON_INFO
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonErrSourceCommonInfoParser[] = {
|
|
|
|
|
{ "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Flags", 1, "0x%x", NULL },
|
|
|
|
|
{ "Enabled", 1, "0x%x", NULL },
|
|
|
|
|
{ "NumberOfRecordsToPreAllocate", 4, "0x%x", NULL },
|
|
|
|
|
{ "MaxSectionPerRecord", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for PCI_ERROR_SOURCE_COMMON_INFO
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPciErrSourceCommonInfoParser[] = {
|
|
|
|
|
{ "Common", sizeof (ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonErrSourceCommonInfoParser) },
|
|
|
|
|
{ "Bus", 4, "0x%x", NULL },
|
|
|
|
|
{ "Device", 2, "0x%x", NULL },
|
|
|
|
|
{ "Function", 2, "0x%x", NULL },
|
|
|
|
|
{ "DeviceControl", 2, "0x%x", NULL },
|
|
|
|
|
{ "UncorrectableErrMask", 4, "0x%x", NULL },
|
|
|
|
|
{ "UncorrectableErrSeverity", 4, "0x%x", NULL },
|
|
|
|
|
{ "CorrectableErrMask", 4, "0x%x", NULL },
|
|
|
|
|
{ "AdvancedErrCapAndControl", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for GHES_COMMON_INFO
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonGhesCommonInfoParser[] = {
|
|
|
|
|
{ "Common", sizeof (ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonErrSourceCommonInfoParser) },
|
|
|
|
|
{ "RelatedSourceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MaxRawDataLength", 4, "0x%x", NULL },
|
|
|
|
|
{ "ErrorStatusAddress", sizeof (EFI_ACPI_6_6_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "NotificationStructure", sizeof (EFI_ACPI_6_6_HARDWARE_ERROR_NOTIFICATION_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiHwErrNotificationParser,
|
|
|
|
|
ARRAY_SIZE (AcpiHwErrNotificationParser) },
|
|
|
|
|
{ "ErrorStatusBlockLength", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmArchCommonObjErrSourcePciRootPortInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjErrSourcePciRootPortInfoParser[] = {
|
|
|
|
|
{ "PciCommon", sizeof (PCI_ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonPciErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPciErrSourceCommonInfoParser) },
|
|
|
|
|
{ "RootErrorCmd", 4, "0x%x",NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmArchCommonObjErrSourcePciDeviceInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjErrSourcePciDeviceInfoParser[] = {
|
|
|
|
|
{ "PciCommon", sizeof (PCI_ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonPciErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPciErrSourceCommonInfoParser) },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmArchCommonObjErrSourcePciRootPortInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjErrSourcePciBridgeInfoParser[] = {
|
|
|
|
|
{ "PciCommon", sizeof (PCI_ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonPciErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonPciErrSourceCommonInfoParser) },
|
|
|
|
|
{ "SecondaryUncorrectableErrMask", 4, "0x%x", NULL },
|
|
|
|
|
{ "SecondaryUncorrectableErrSeverity", 4, "0x%x", NULL },
|
|
|
|
|
{ "SecondaryAdvancedCapAndControl", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmArchCommonObjErrSourceGenericHwInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjErrSourceGenericHwInfoParser[] = {
|
|
|
|
|
{ "GhesCommon", sizeof (GHES_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonGhesCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGhesCommonInfoParser) },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmArchCommonObjErrSourceGenericHwVer2Info
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjErrSourceGenericHwVer2InfoParser[] = {
|
|
|
|
|
{ "GhesCommon", sizeof (GHES_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonGhesCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonGhesCommonInfoParser) },
|
|
|
|
|
{ "ReadAckRegister", sizeof (EFI_ACPI_6_6_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "ReadAckPreserve", 8, "0x%llx", NULL },
|
|
|
|
|
{ "ReadAckWrite", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2025-08-22 18:25:10 +05:30
|
|
|
/** A parser for CmArchCommonObjEinjInstructionsInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonObjEinjInstructionsInfoParser[] = {
|
|
|
|
|
{ "InjectionAction", 1, "0x%x", NULL },
|
|
|
|
|
{ "Instruction", 1, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 1, "0x%x", NULL },
|
|
|
|
|
{ "RegisterRegion", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "Value", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Mask", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-05-06 03:10:59 +00:00
|
|
|
/** A parser for EArchCommonObjPlatformFwInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPlatformFwInfoParser[] = {
|
|
|
|
|
{ "BiosInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "BiosVendor", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "BiosVersion", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "BiosReleaseDate", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "BiosSize", sizeof (UINT64), "0x%llx", NULL },
|
|
|
|
|
{ "BiosCharacteristics", sizeof (MISC_BIOS_CHARACTERISTICS), "0x%lx", NULL },
|
|
|
|
|
{ "BIOSCharacteristicsExtensionBytes", 2, "0x%x", NULL },
|
|
|
|
|
{ "SystemBiosMajorRelease", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "SystemBiosMinorRelease", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "ECFirmwareMajorRelease", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "ECFirmwareMinorRelease", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-20 22:02:49 +00:00
|
|
|
/** A parser for EArchCommonObjPhysicalMemoryArray.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonPhysicalMemoryArrayParser[] = {
|
|
|
|
|
{ "PhysMemArrayToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Location", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "Use", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "MemoryErrorCorrectionType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "Size", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "MemoryErrorInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "NumberOfMemoryDevices", sizeof (UINT16), "0x%u", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-20 22:03:01 +00:00
|
|
|
/** A parser for EArchCommonObjMemoryDeviceInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryDeviceInfoParser[] = {
|
|
|
|
|
{ "MemoryDeviceInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PhysicalArrayToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MemoryErrorInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "TotalWidth", sizeof (UINT16), "0x%u", NULL },
|
|
|
|
|
{ "DataWidth", sizeof (UINT16), "0x%u", NULL },
|
|
|
|
|
{ "Size", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "FormFactor", sizeof (MEMORY_FORM_FACTOR), "0x%x", NULL },
|
|
|
|
|
{ "DeviceSet", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "DeviceLocator", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "BankLocator", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "MemoryType", sizeof (MEMORY_DEVICE_TYPE), "0x%x", NULL },
|
|
|
|
|
{ "TypeDetail", sizeof (MEMORY_DEVICE_TYPE_DETAIL), "0x%x", NULL },
|
|
|
|
|
{ "Speed", sizeof (UINT32), "0x%u", NULL },
|
|
|
|
|
{ "SerialNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "AssetTag", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "PartNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "Rank", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "ConfiguredMemorySpeed", sizeof (UINT32), "0x%u", NULL },
|
|
|
|
|
{ "MinVolt", sizeof (UINT16), "0x%u", NULL },
|
|
|
|
|
{ "MaxVolt", sizeof (UINT16), "0x%u", NULL },
|
|
|
|
|
{ "ConfVolt", sizeof (UINT16), "0x%u", NULL },
|
|
|
|
|
{ "MemoryTechnology", sizeof (MEMORY_DEVICE_TECHNOLOGY), "0x%x", NULL },
|
|
|
|
|
{ "MemoryOperatingModeCapability", sizeof (MEMORY_DEVICE_OPERATING_MODE_CAPABILITY), "0x%x", NULL },
|
|
|
|
|
{ "FirmwareVersion", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "ModuleManufacturerId", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "ModuleProductId", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "MemorySubsystemControllerManufacturerId", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "MemorySubsystemControllerProductId", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "NonVolatileSize", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "VolatileSize", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "CacheSize", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "LogicalSize", sizeof (UINT64), "0x%lx", NULL },
|
|
|
|
|
{ "Pmic0ManufacturerId", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Pmic0RevisionNumber", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "RcdManufacturerId", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "RcdRevisionNumber", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-20 22:04:01 +00:00
|
|
|
/** A parser for EArchCommonObjMemoryArrayMappedAddress.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryArrayMappedAddressParser[] = {
|
|
|
|
|
{ "MemoryArrayMappedAddressToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "StartingAddress", sizeof (EFI_PHYSICAL_ADDRESS), "0x%lx", NULL },
|
|
|
|
|
{ "EndingAddress", sizeof (EFI_PHYSICAL_ADDRESS), "0x%lx", NULL },
|
|
|
|
|
{ "PhysMemArrayToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "NumMemDevices", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
DynamicTablesPkg: Smbios Memory Channel (Type 37)
Add support for generating SMBIOS Type 37 Memory Channel structures from
Configuration Manager data.
Introduce the Memory Channel CM object and the associated Memory Channel
Device CM object. The channel object describes the Type 37 fixed fields,
including channel type, maximum channel load, memory device count, and the
token for the device-list object. The device-list object describes each
memory device attached to the channel using a device load and a Type 17
Memory Device CM token.
Add parser entries for both CM objects and register the Type 37 generator in
the DynamicTablesPkg DSC so it is available through the SMBIOS table factory.
The Type 37 generator builds one SMBIOS record per Memory Channel CM object.
For each channel, it retrieves the referenced Memory Channel Device list,
validates the channel type, maximum channel load, device count, device load,
and device tokens, resolves each referenced Type 17 CM token to an SMBIOS
handle, and emits the variable-length MemoryDevice array in the Type 37
record.
This allows platforms to describe memory channels and link them to generated
Type 17 Memory Device records through CM tokens instead of hard-coded SMBIOS
handles.
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-02 18:30:41 +01:00
|
|
|
/** A parser for CM_ARCH_COMMON_MEMORY_CHANNEL_DEVICE.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryChannelDeviceParser[] = {
|
|
|
|
|
{ "DeviceLoad", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "MemoryDeviceInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjMemoryChannelInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryChannelInfoParser[] = {
|
|
|
|
|
{ "MemoryChannelToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ChannelType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "MaximumChannelLoad", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "MemoryDeviceListToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-21 17:41:36 +01:00
|
|
|
/** A parser for EArchCommonObjAdditionalInformation.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonAdditionalInformationParser[] = {
|
|
|
|
|
{ "AdditionalInformationToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "AdditionalInformationEntryListToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjAdditionalInformationEntry.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonAdditionalInformationEntryParser[] = {
|
|
|
|
|
{ "ReferencedObjectToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ReferencedTableGeneratorId", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "ReferencedOffset", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "EntryString", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "ValueToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjAdditionalInformationValue.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonAdditionalInformationValueParser[] = {
|
|
|
|
|
{ "Len", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "Value", SMBIOS_MAX_ADDITIONAL_INFORMATION_VALUE_SIZE, NULL, HexDump },
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-01 17:05:09 +01:00
|
|
|
/** A parser for EArchCommonObjMemoryDeviceMappedAddress.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryDeviceMappedAddressParser[] = {
|
|
|
|
|
{ "MemoryDeviceMappedAddressToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "StartingAddress", sizeof (EFI_PHYSICAL_ADDRESS), "0x%lx", NULL },
|
|
|
|
|
{ "EndingAddress", sizeof (EFI_PHYSICAL_ADDRESS), "0x%lx", NULL },
|
|
|
|
|
{ "MemoryDeviceInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "MemoryArrayMappedAddressToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PartitionRowPosition", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "InterleavePosition", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
{ "InterleavedDataDepth", sizeof (UINT8), "0x%u", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-06-23 20:47:10 +01:00
|
|
|
/** 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 },
|
|
|
|
|
};
|
|
|
|
|
|
2026-06-24 15:56:28 +01:00
|
|
|
/** A parser for EArchCommonObjTemperatureProbeInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonTemperatureProbeInfoParser[] = {
|
|
|
|
|
{ "TemperatureProbeToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Description", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "LocationAndStatus", sizeof (MISC_TEMPERATURE_PROBE_LOCATION), "0x%x", NULL },
|
|
|
|
|
{ "MaximumValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "MinimumValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Resolution", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Tolerance", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Accuracy", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "OEMDefined", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "NominalValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-06-25 14:05:11 +01:00
|
|
|
/** A parser for EArchCommonObjVoltageProbeInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonVoltageProbeInfoParser[] = {
|
|
|
|
|
{ "VoltageProbeToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Description", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "LocationAndStatus", sizeof (MISC_VOLTAGE_PROBE_LOCATION), "0x%x", NULL },
|
|
|
|
|
{ "MaximumValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "MinimumValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Resolution", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Tolerance", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Accuracy", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "OEMDefined", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "NominalValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-06-25 15:50:29 +01:00
|
|
|
/** A parser for EArchCommonObjElectricalCurrentProbeInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonElectricalCurrentProbeInfoParser[] = {
|
|
|
|
|
{ "ElectricalCurrentProbeToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Description", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "LocationAndStatus", sizeof (MISC_ELECTRICAL_CURRENT_PROBE_LOCATION), "0x%x", NULL },
|
|
|
|
|
{ "MaximumValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "MinimumValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Resolution", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Tolerance", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Accuracy", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "OEMDefined", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "NominalValue", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-06-26 11:49:34 +01:00
|
|
|
/** A parser for EArchCommonObjSystemResetInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSystemResetInfoParser[] = {
|
|
|
|
|
{ "SystemResetToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Capabilities", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "ResetCount", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "ResetLimit", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "TimerInterval", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
{ "Timeout", sizeof (UINT16), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-20 21:50:31 +00:00
|
|
|
/** A parser for EArchCommonObjSystemInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSystemInfoParser[] = {
|
|
|
|
|
{ "SystemInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Manufacturer", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "ProductName", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "Version", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "SerialNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "Uuid", sizeof (GUID), NULL, PrintGuid },
|
|
|
|
|
{ "WakeUpType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "SkuNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "Family", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-11 16:20:13 +00:00
|
|
|
/** A parser for EArchCommonObjSystemEnclosureInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSystemEnclosureInfoParser[] = {
|
|
|
|
|
{ "SystemEnclosureToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Manufacturer", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "Type", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "Version", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "SerialNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "AssetTag", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "BootUpState", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "PowerSupplyState", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "ThermalState", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "SecurityStatus", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "OemDefined", sizeof (UINT32), "0x%x", NULL },
|
|
|
|
|
{ "Height", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "NumberOfPowerCords", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "ContainedElementListToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "SkuNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "RackType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "RackHeight", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjEnclosureElement.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonEnclosureElementParser[] = {
|
|
|
|
|
{ "ContainedElementType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "ContainedElementMinimum", sizeof (UINT8), "%u", NULL },
|
|
|
|
|
{ "ContainedElementMaximum", sizeof (UINT8), "%u", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-20 22:56:27 +00:00
|
|
|
/** A parser for EArchCommonObjBaseboardContainedObject.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonBaseboardContainedObjectParser[] = {
|
|
|
|
|
{ "ContainedObjectToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "GeneratorId", sizeof (SMBIOS_TABLE_GENERATOR_ID), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EArchCommonObjBaseboardInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmArchCommonBaseboardInfoParser[] = {
|
|
|
|
|
{ "BaseboardInfoToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ChassisToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ContainedObjectListToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "Manufacturer", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "ProductName", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "Version", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "SerialNum", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "AssetTag", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "FeatureFlag", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
{ "LocationInChassis", SMBIOS_MAX_STRING_SIZE, NULL, PrintString },
|
|
|
|
|
{ "BoardType", sizeof (UINT8), "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-07 14:11:31 +00:00
|
|
|
/** A parser for Arch Common namespace objects.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved),
|
2026-04-20 21:50:31 +00:00
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPowerManagementProfileInfo, CmArchCommonPowerManagementProfileInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSerialPortInfo, CmArchCommonSerialPortInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjConsolePortInfo, CmArchCommonSerialPortInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjHypervisorVendorIdentity, CmArchCommonHypervisorVendorIdentityParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjFixedFeatureFlags, CmArchCommonFixedFeatureFlagsParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCmRef, CmArchCommonObjRefParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPciConfigSpaceInfo, CmArchCommonPciConfigSpaceInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPciAddressMapInfo, CmArchCommonPciAddressMapInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPciInterruptMapInfo, CmArchCommonPciInterruptMapInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryAffinityInfo, CmArchCommonMemoryAffinityInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandleAcpi, CmArchCommonDeviceHandleAcpiParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandlePci, CmArchCommonDeviceHandlePciParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjGenericInitiatorAffinityInfo, CmArchCommonGenericInitiatorAffinityInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjLpiInfo, CmArchCommonLpiInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjProcHierarchyInfo, CmArchCommonProcHierarchyInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCacheInfo, CmArchCommonCacheInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCpcInfo, CmArchCommonCpcInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType0Info, CmArchCommonPccSubspaceType0InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType1Info, CmArchCommonPccSubspaceType1InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType2Info, CmArchCommonPccSubspaceType2InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType3Info, CmArchCommonPccSubspaceType34InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType4Info, CmArchCommonPccSubspaceType34InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType5Info, CmArchCommonPccSubspaceType5InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPsdInfo, CmArchCommonPsdInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjTpm2InterfaceInfo, CmArchCommonTpm2InterfaceInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSpmiInterfaceInfo, CmArchCommonSpmiInterfaceInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSpmiInterruptDeviceInfo, CmArchCommonSpmiInterruptDeviceInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCstInfo, CmArchCommonCstInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCsdInfo, CmArchCommonCsdInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPctInfo, CmArchCommonPctInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPssInfo, CmArchCommonPssInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPpcInfo, CmArchCommonPpcInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjStaInfo, CmArchCommonStaInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryRangeDescriptor, CmArchCommonObjMemoryRangeDescriptor),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjGenericDbg2DeviceInfo, CmArchCommonObjDbg2DeviceInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCxlHostBridgeInfo, CmArchCommonObjCxlHostBridgeInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjCxlFixedMemoryWindowInfo, CmArchCommonObjCxlFixedMemoryWindowInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjProximityDomainInfo, CmArchCommonProximityDomainInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjProximityDomainRelationInfo, CmArchCommonProximityDomainRelationInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSystemLocalityInfo, CmArchCommonSystemLocalityInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryProximityDomainAttrInfo, CmArchCommonMemoryProximityDomainAttrInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryLatBwInfo, CmArchCommonMemoryLatBwInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryCacheInfo, CmArchCommonMemoryCacheInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSpcrInfo, CmArchCommonObjSpcrInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjTpm2DeviceInfo, CmArchCommonObjTpm2DeviceInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMcfgPciConfigSpaceInfo, CmArchCommonPciConfigSpaceInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPciRootPortInfo, CmArchCommonObjPciRootPortInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjErrSourcePciRootPortInfo, CmArchCommonObjErrSourcePciRootPortInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjErrSourcePciDeviceInfo, CmArchCommonObjErrSourcePciDeviceInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjErrSourcePciBridgeInfo, CmArchCommonObjErrSourcePciBridgeInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjErrSourceGenericHwInfo, CmArchCommonObjErrSourceGenericHwInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjErrSourceGenericHwVer2Info, CmArchCommonObjErrSourceGenericHwVer2InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjEinjInstructionsInfo, CmArchCommonObjEinjInstructionsInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPlatformFwInfo, CmArchCommonPlatformFwInfoParser),
|
|
|
|
|
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 (EArchCommonObjTemperatureProbeInfo, CmArchCommonTemperatureProbeInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjVoltageProbeInfo, CmArchCommonVoltageProbeInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjElectricalCurrentProbeInfo, CmArchCommonElectricalCurrentProbeInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSystemResetInfo, CmArchCommonSystemResetInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryDeviceMappedAddress, CmArchCommonMemoryDeviceMappedAddressParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryChannelInfo, CmArchCommonMemoryChannelInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryChannelDevice, CmArchCommonMemoryChannelDeviceParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjProcessorSpecificBlockInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSystemInfo, CmArchCommonSystemInfoParser),
|
2026-07-21 17:41:36 +01:00
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjAdditionalInformation, CmArchCommonAdditionalInformationParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjAdditionalInformationEntry, CmArchCommonAdditionalInformationEntryParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjAdditionalInformationValue, CmArchCommonAdditionalInformationValueParser),
|
2026-07-11 16:20:13 +00:00
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjSystemEnclosureInfo, CmArchCommonSystemEnclosureInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjEnclosureElement, CmArchCommonEnclosureElementParser),
|
2026-07-20 22:56:27 +00:00
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjBaseboardInfo, CmArchCommonBaseboardInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArchCommonObjBaseboardContainedObject, CmArchCommonBaseboardContainedObjectParser),
|
2024-03-07 14:11:31 +00:00
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
|
|
|
|
|
};
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
/** A parser for Arm namespace objects.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
|
2024-03-07 14:05:40 +00:00
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved),
|
2024-03-11 11:19:16 +00:00
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjBootArchInfo, CmArmBootArchInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGicCInfo, CmArmGicCInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGicDInfo, CmArmGicDInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGicMsiFrameInfo, CmArmGicMsiFrameInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGicItsInfo, CmArmGicItsInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGenericTimerInfo, CmArmGenericTimerInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjPlatformGenericWatchdogInfo,CmArmGenericWatchdogInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjItsGroup, CmArmItsGroupNodeParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjNamedComponent, CmArmNamedComponentNodeParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjRootComplex, CmArmRootComplexNodeParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjSmmuV1SmmuV2, CmArmSmmuV1SmmuV2NodeParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjSmmuV3, CmArmSmmuV3NodeParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjPmcg, CmArmPmcgNodeParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjGicItsIdentifierArray, CmArmGicItsIdentifierParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjIdMappingArray, CmArmIdMappingParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArchCommonGenericInterruptParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjRmr, CmArmRmrInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjMemoryRangeDescriptor, CmArmMemoryRangeDescriptorInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjEtInfo, CmArmEtInfo),
|
2026-06-05 14:15:14 +02:00
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjDmc620PmuSocketInfo, CmArmDmc620PmuSocketInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EArmObjDmc620PmuRegInfo, CmArmDmc620PmuRegInfoParser),
|
2024-03-07 14:05:40 +00:00
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EArmObjMax)
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2024-08-01 10:49:20 +00:00
|
|
|
/** A parser for EX64ObjFadtSciInterrupt.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtSciInterruptParser[] = {
|
|
|
|
|
{ "SciInterrupt", 2, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtSciCmdInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtSciCmdInfoParser[] = {
|
|
|
|
|
{ "SciCmd", 4, "0x%x", NULL },
|
|
|
|
|
{ "AcpiEnable", 1, "0x%x", NULL },
|
|
|
|
|
{ "AcpiDisable", 1, "0x%x", NULL },
|
|
|
|
|
{ "S4BiosReq", 1, "0x%x", NULL },
|
|
|
|
|
{ "PstateCnt", 1, "0x%x", NULL },
|
|
|
|
|
{ "CstCnt", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtPmBlockInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtPmBlockInfoParser[] = {
|
|
|
|
|
{ "Pm1aEvtBlk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Pm1bEvtBlk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Pm1aCntBlk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Pm1bCntBlk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Pm2CntBlk", 4, "0x%x", NULL },
|
|
|
|
|
{ "PmTmrBlk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Pm1EvtLen", 1, "0x%x", NULL },
|
|
|
|
|
{ "Pm1CntLen", 1, "0x%x", NULL },
|
|
|
|
|
{ "Pm2CntLen", 1, "0x%x", NULL },
|
|
|
|
|
{ "PmTmrLen", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtGpeBlockInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtGpeBlockInfoParser[] = {
|
|
|
|
|
{ "Gpe0Blk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Gpe1Blk", 4, "0x%x", NULL },
|
|
|
|
|
{ "Gpe0BlkLen", 1, "0x%x", NULL },
|
|
|
|
|
{ "Gpe1BlkLen", 1, "0x%x", NULL },
|
|
|
|
|
{ "Gpe1Base", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtXpmBlockInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtXpmBlockInfoParser[] = {
|
|
|
|
|
{ "XPm1aEvtBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "XPm1bEvtBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "XPm1aCntBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "XPm1bCntBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "XPm2CntBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "XPmTmrBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtXgpeBlockInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtXgpeBlockInfoParser[] = {
|
|
|
|
|
{ "XGpe0Blk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "XGpe1Blk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtSleepBlockInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtSleepBlockInfoParser[] = {
|
|
|
|
|
{ "SleepControlReg", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "SleepStatusReg", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtResetBlockInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtResetBlockInfoParser[] = {
|
|
|
|
|
{ "ResetReg", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiGenericAddressParser,
|
|
|
|
|
ARRAY_SIZE (AcpiGenericAddressParser) },
|
|
|
|
|
{ "ResetValue", 1, "0x%x",NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjFadtMiscInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFadtMiscInfoParser[] = {
|
|
|
|
|
{ "PLvl2Lat", 2, "0x%x", NULL },
|
|
|
|
|
{ "PLvl3Lat", 2, "0x%x", NULL },
|
|
|
|
|
{ "FlushSize", 2, "0x%x", NULL },
|
|
|
|
|
{ "FlushStride", 2, "0x%x", NULL },
|
|
|
|
|
{ "DutyOffset", 1, "0x%x", NULL },
|
|
|
|
|
{ "DutyWidth", 1, "0x%x", NULL },
|
|
|
|
|
{ "DayAlrm", 1, "0x%x", NULL },
|
|
|
|
|
{ "MonAlrm", 1, "0x%x", NULL },
|
|
|
|
|
{ "Century", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-08-29 14:28:17 +00:00
|
|
|
/** A parser for EX64ObjWsmtFlagsInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjWsmtFlagsInfoParser[] = {
|
|
|
|
|
{ "WsmtFlags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-09-03 09:46:36 +00:00
|
|
|
/** A parser for EX64ObjHpetInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjHpetInfoParser[] = {
|
|
|
|
|
{ "BaseAddressLower32Bit", 4, "0x%x", NULL },
|
|
|
|
|
{ "MainCounterMinimumClockTickInPeriodicMode", 2, "0x%x", NULL },
|
|
|
|
|
{ "PageProtectionAndOemAttribute", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-11-18 10:39:10 +00:00
|
|
|
/** A parser for EX64ObjMadtInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjMadtInfoParser[] = {
|
2024-11-30 06:40:48 +00:00
|
|
|
{ "LocalApicAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ApicMode", sizeof (LOCAL_APIC_MODE), "0x%x", NULL }
|
2024-11-18 10:39:10 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmArchCommonLocalApicX2ApicInfoParser.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjLocalApicX2ApicInfoParser[] = {
|
2024-11-29 11:39:30 +00:00
|
|
|
{ "ApicId", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "AcpiProcessorUid", 4, "0x%x", NULL },
|
|
|
|
|
{ "CstToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "CsdToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PctToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PssToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2024-11-29 11:51:50 +00:00
|
|
|
{ "PpcToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "PsdToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2024-11-29 13:03:26 +00:00
|
|
|
{ "CpcToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "StaToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }
|
2024-11-18 10:39:10 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmX64IoApicInfoParser.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64IoApicInfoParser[] = {
|
|
|
|
|
{ "IoApicId", 1, "0x%x", NULL },
|
|
|
|
|
{ "IoApicAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "GlobalSystemInterruptBase", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmX64IntrSourceOverrideInfoParser.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64IntrSourceOverrideInfoParser[] = {
|
|
|
|
|
{ "Bus", 1, "0x%x", NULL },
|
|
|
|
|
{ "Source", 1, "0x%x", NULL },
|
|
|
|
|
{ "GlobalSystemInterrupt", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 2, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmX64LocalApicNmiInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64LocalApicNmiInfo[] = {
|
|
|
|
|
{ "Flags", 2, "0x%x", NULL },
|
|
|
|
|
{ "AcpiProcessorUid", 4, "0x%x", NULL },
|
|
|
|
|
{ "LocalApicLint", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2024-12-20 09:06:09 +00:00
|
|
|
/** A parser for EX64ObjFacsInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64ObjFacsInfoParser[] = {
|
|
|
|
|
{ "FirmwareWakingVector", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "XFirmwareWakingVector", 8, "0x%llx", NULL },
|
|
|
|
|
{ "OspmFlags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
2025-01-27 10:27:23 +00:00
|
|
|
/** A parser for CmX64LocalApicX2ApicAffinityInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64LocalApicX2ApicAffinityInfo[] = {
|
2025-04-15 16:47:25 +02:00
|
|
|
{ "ApicMode", sizeof (LOCAL_APIC_MODE), "0x%x", NULL },
|
|
|
|
|
{ "ApicId", 4, "0x%x", NULL },
|
|
|
|
|
{ "ProximityDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL },
|
|
|
|
|
{ "ClockDomain", 4, "0x%x", NULL },
|
|
|
|
|
{ "ProximityDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
|
|
|
|
{ "ClockDomainToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
|
2025-01-27 10:27:23 +00:00
|
|
|
};
|
|
|
|
|
|
2026-03-01 12:12:00 +00:00
|
|
|
/** A parser for CmX64Ia32MachineCheckBankInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64Ia32MachineCheckBankInfoParser[] = {
|
|
|
|
|
{ "ClearOnInit", 1, "0x%x", NULL },
|
|
|
|
|
{ "StatusDataFormat", 1, "0x%x", NULL },
|
|
|
|
|
{ "ControlMSRegAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "ControlInitData", 8, "0x%llx", NULL },
|
|
|
|
|
{ "StatusMSRegAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "AddrMSRegAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "MiscMSRegAddress", 4, "0x%x", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for MACHINE_CHECK_ERROR_SOURCE_COMMON_INFO
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64Ia32ErrSourceMachineCheckCommonInfoParser[] = {
|
|
|
|
|
{ "Common", sizeof (ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonErrSourceCommonInfoParser) },
|
|
|
|
|
{ "MachineBankInfoTokenArray", sizeof (CM_ARCH_COMMON_OBJ_REF), "0x%p",NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmX64Ia32ErrSourceMachineCheckExceptionInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64Ia32ErrSourceMachineCheckExceptionInfoParser[] = {
|
|
|
|
|
{ "MachineCheckCommon", sizeof (MACHINE_CHECK_ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmX64Ia32ErrSourceMachineCheckCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmX64Ia32ErrSourceMachineCheckCommonInfoParser), },
|
|
|
|
|
{ "GlobalCapInitData", 8, "0x%llx", NULL },
|
|
|
|
|
{ "GlobalControlInitData", 8, "0x%llx", NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EX64ObjErrSourceIa32CorrectedMachineCheckInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64Ia32ErrSourceCorrectedMachineCheckInfoParser[] = {
|
|
|
|
|
{ "MachineCheckCommon", sizeof (MACHINE_CHECK_ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmX64Ia32ErrSourceMachineCheckCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmX64Ia32ErrSourceMachineCheckCommonInfoParser), },
|
|
|
|
|
{ "NotificationInfo", sizeof (EFI_ACPI_6_6_HARDWARE_ERROR_NOTIFICATION_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiHwErrNotificationParser,
|
|
|
|
|
ARRAY_SIZE (AcpiHwErrNotificationParser) },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmX64Ia32ErrSourceDeferredMachineCheckInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64Ia32ErrSourceDeferredMachineCheckInfoParser[] = {
|
|
|
|
|
{ "MachineCheckCommon", sizeof (MACHINE_CHECK_ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmX64Ia32ErrSourceMachineCheckCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmX64Ia32ErrSourceMachineCheckCommonInfoParser), },
|
|
|
|
|
{ "NotificationInfo", sizeof (EFI_ACPI_6_6_HARDWARE_ERROR_NOTIFICATION_STRUCTURE),
|
|
|
|
|
NULL, NULL, AcpiHwErrNotificationParser,
|
|
|
|
|
ARRAY_SIZE (AcpiHwErrNotificationParser) },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for CmX64Ia32ErrSourceNmiInfo
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmX64Ia32ErrSourceNmiInfoParser[] = {
|
|
|
|
|
{ "Common", sizeof (ERROR_SOURCE_COMMON_INFO),
|
|
|
|
|
NULL, NULL, CmArchCommonErrSourceCommonInfoParser,
|
|
|
|
|
ARRAY_SIZE (CmArchCommonErrSourceCommonInfoParser) },
|
|
|
|
|
{ "MaxRawDataLength", 4, "0x%x",NULL },
|
|
|
|
|
};
|
|
|
|
|
|
2024-07-31 10:51:52 +00:00
|
|
|
/** A parser for X64 namespace objects.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER_ARRAY X64NamespaceObjectParser[] = {
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EX64ObjReserved),
|
2026-03-01 12:12:00 +00:00
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtSciInterrupt, CmX64ObjFadtSciInterruptParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtSciCmdInfo, CmX64ObjFadtSciCmdInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtPmBlockInfo, CmX64ObjFadtPmBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtGpeBlockInfo, CmX64ObjFadtGpeBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtXpmBlockInfo, CmX64ObjFadtXpmBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtXgpeBlockInfo, CmX64ObjFadtXgpeBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtSleepBlockInfo, CmX64ObjFadtSleepBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtResetBlockInfo, CmX64ObjFadtResetBlockInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFadtMiscInfo, CmX64ObjFadtMiscInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjWsmtFlagsInfo, CmX64ObjWsmtFlagsInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjHpetInfo, CmX64ObjHpetInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjMadtInfo, CmX64ObjMadtInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjLocalApicX2ApicInfo, CmX64ObjLocalApicX2ApicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjIoApicInfo, CmX64IoApicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjIntrSourceOverrideInfo, CmX64IntrSourceOverrideInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjLocalApicX2ApicNmiInfo, CmX64LocalApicNmiInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjFacsInfo, CmX64ObjFacsInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjLocalApicX2ApicAffinityInfo, CmX64LocalApicX2ApicAffinityInfo),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjIa32MachineCheckBankInfo, CmX64Ia32MachineCheckBankInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjErrSourceIa32MachineCheckExceptionInfo,CmX64Ia32ErrSourceMachineCheckExceptionInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjErrSourceIa32CorrectedMachineCheckInfo,CmX64Ia32ErrSourceCorrectedMachineCheckInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjErrSourceIa32DeferredMachineCheckInfo, CmX64Ia32ErrSourceDeferredMachineCheckInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EX64ObjErrSourceIa32NmiInfo, CmX64Ia32ErrSourceNmiInfoParser),
|
2024-07-31 10:51:52 +00:00
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EX64ObjMax)
|
|
|
|
|
};
|
|
|
|
|
|
2024-07-02 11:03:55 +05:30
|
|
|
/** A parser for RISC-V namespace objects.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER_ARRAY RiscVNamespaceObjectParser[] = {
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (ERiscVObjReserved),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjRintcInfo, CmRiscVRintcInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjImsicInfo, CmRiscVImsicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjAplicInfo, CmRiscVAplicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjPlicInfo, CmRiscVPlicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjIsaStringInfo, CmRiscVIsaStringInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjCmoInfo, CmRiscVCmoInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjMmuInfo, CmRiscVMmuInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ERiscVObjTimerInfo, CmRiscVTimerInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (ERiscVObjMax)
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-28 20:51:40 +08:00
|
|
|
/** A parser for ELoongArch64ObjMadtInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64MadtInfoParser[] = {
|
|
|
|
|
{ "LocalApicAddress", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjCorePicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64CorePicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "AcpiProcessorUid", 4, "0x%x", NULL },
|
|
|
|
|
{ "CoreId", 4, "0x%x", NULL },
|
|
|
|
|
{ "Flags", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjLioPicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64LioPicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Address", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Size", 2, "0x%x", NULL },
|
|
|
|
|
{ "Cascade", sizeof (UINT8) * 2, NULL, HexDump },
|
|
|
|
|
{ "CascadeMap", sizeof (UINT32) * 2, NULL, HexDump }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjHtPicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64HtPicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Address", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Size", 2, "0x%x", NULL },
|
|
|
|
|
{ "Cascade", sizeof (UINT8) * 8, NULL, HexDump }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjEioPicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64EioPicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Cascade", 1, "0x%x", NULL },
|
|
|
|
|
{ "Node", 1, "0x%x", NULL },
|
|
|
|
|
{ "NodeMap", 8, "0x%llx", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjMsiPicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64MsiPicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "MsgAddress", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Start", 4, "0x%x", NULL },
|
|
|
|
|
{ "Count", 4, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjBioPicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64BioPicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Address", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Size", 2, "0x%x", NULL },
|
|
|
|
|
{ "Id", 2, "0x%x", NULL },
|
|
|
|
|
{ "GsiBase", 2, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for ELoongArch64ObjLpcPicInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER CmLoongArch64LpcPicInfoParser[] = {
|
|
|
|
|
{ "Version", 1, "0x%x", NULL },
|
|
|
|
|
{ "Address", 8, "0x%llx", NULL },
|
|
|
|
|
{ "Size", 2, "0x%x", NULL },
|
|
|
|
|
{ "Cascade", 1, "0x%x", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for LoongArch64 namespace objects.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER_ARRAY LoongArch64NamespaceObjectParser[] = {
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (ELoongArch64ObjReserved),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjMadtInfo, CmLoongArch64MadtInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjCorePicInfo, CmLoongArch64CorePicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjLioPicInfo, CmLoongArch64LioPicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjHtPicInfo, CmLoongArch64HtPicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjEioPicInfo, CmLoongArch64EioPicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjMsiPicInfo, CmLoongArch64MsiPicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjBioPicInfo, CmLoongArch64BioPicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (ELoongArch64ObjLpcPicInfo, CmLoongArch64LpcPicInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (ELoongArch64ObjMax)
|
|
|
|
|
};
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
/** A parser for EStdObjCfgMgrInfo.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER StdObjCfgMgrInfoParser[] = {
|
2024-06-18 17:50:02 -07:00
|
|
|
{ "Revision", 4, "0x%x", NULL },
|
|
|
|
|
{ "OemId[6]", 6, NULL, PrintChars }
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EStdObjAcpiTableList.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER StdObjAcpiTableInfoParser[] = {
|
2024-06-18 17:50:02 -07:00
|
|
|
{ "AcpiTableSignature", 4, NULL, PrintChars },
|
|
|
|
|
{ "AcpiTableRevision", 1, "%d", NULL },
|
|
|
|
|
{ "TableGeneratorId", sizeof (ACPI_TABLE_GENERATOR_ID), "0x%x", NULL },
|
|
|
|
|
{ "AcpiTableData", sizeof (EFI_ACPI_DESCRIPTION_HEADER *), "0x%p", NULL },
|
|
|
|
|
{ "OemTableId", 8, NULL, PrintChars },
|
|
|
|
|
{ "OemRevision", 4, "0x%x", NULL },
|
|
|
|
|
{ "MinorRevision", 1, "0x%x", NULL },
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for EStdObjSmbiosTableList.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER StdObjSmbiosTableInfoParser[] = {
|
|
|
|
|
{ "TableGeneratorId", sizeof (SMBIOS_TABLE_GENERATOR_ID), "0x%x", NULL },
|
|
|
|
|
{ "SmbiosTableData", sizeof (SMBIOS_STRUCTURE *), "0x%p", NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** A parser for Standard namespace objects.
|
|
|
|
|
*/
|
|
|
|
|
STATIC CONST CM_OBJ_PARSER_ARRAY StdNamespaceObjectParser[] = {
|
2024-03-07 14:05:40 +00:00
|
|
|
CM_PARSER_ADD_OBJECT (EStdObjCfgMgrInfo, StdObjCfgMgrInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EStdObjAcpiTableList, StdObjAcpiTableInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT (EStdObjSmbiosTableList, StdObjSmbiosTableInfoParser),
|
|
|
|
|
CM_PARSER_ADD_OBJECT_RESERVED (EStdObjMax)
|
2021-09-30 08:48:17 +01:00
|
|
|
};
|
|
|
|
|
|
2023-10-06 16:28:06 +00:00
|
|
|
/** Print string data.
|
|
|
|
|
|
|
|
|
|
The string must be NULL terminated.
|
2021-09-30 08:48:17 +01:00
|
|
|
|
|
|
|
|
@param [in] Format Format to print the Ptr.
|
2023-10-06 16:28:06 +00:00
|
|
|
@param [in] Ptr Pointer to the string.
|
2024-06-18 17:50:02 -07:00
|
|
|
@param [in] Length Length of the field
|
2023-10-06 16:28:06 +00:00
|
|
|
**/
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
|
|
|
|
PrintString (
|
|
|
|
|
IN CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
IN UINT8 *Ptr,
|
|
|
|
|
IN UINT32 Length
|
2023-10-06 16:28:06 +00:00
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (Ptr == NULL) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-18 17:50:02 -07:00
|
|
|
DEBUG ((DEBUG_INFO, "%a", Ptr));
|
2023-10-06 16:28:06 +00:00
|
|
|
}
|
|
|
|
|
|
2026-04-20 21:50:31 +00:00
|
|
|
/** Print GUID data.
|
|
|
|
|
|
|
|
|
|
@param [in] Format Format to print the Ptr.
|
|
|
|
|
@param [in] Ptr Pointer to the GUID.
|
|
|
|
|
@param [in] Length Length of the field.
|
|
|
|
|
**/
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
|
|
|
|
PrintGuid (
|
|
|
|
|
IN CONST CHAR8 *Format,
|
|
|
|
|
IN UINT8 *Ptr,
|
|
|
|
|
IN UINT32 Length
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if ((Ptr == NULL) || (Length != sizeof (GUID))) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DEBUG ((DEBUG_INFO, "%g", (GUID *)Ptr));
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-06 16:28:06 +00:00
|
|
|
/** Print string from pointer.
|
|
|
|
|
|
|
|
|
|
The string must be NULL terminated.
|
|
|
|
|
|
|
|
|
|
@param [in] Format Format to print the string.
|
|
|
|
|
@param [in] Ptr Pointer to the string pointer.
|
2024-06-18 17:50:02 -07:00
|
|
|
@param [in] Length Length of the field
|
2021-09-30 08:48:17 +01:00
|
|
|
**/
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2023-10-06 16:28:06 +00:00
|
|
|
PrintStringPtr (
|
|
|
|
|
IN CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
IN UINT8 *Ptr,
|
|
|
|
|
IN UINT32 Length
|
2023-10-06 16:28:06 +00:00
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
UINT8 *String;
|
|
|
|
|
|
|
|
|
|
if (Ptr == NULL) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String = *(UINT8 **)Ptr;
|
|
|
|
|
|
|
|
|
|
if (String == NULL) {
|
|
|
|
|
String = (UINT8 *)"(NULLPTR)";
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-18 17:50:02 -07:00
|
|
|
PrintString (Format, String, Length);
|
2023-10-06 16:28:06 +00:00
|
|
|
}
|
|
|
|
|
|
2024-06-18 17:50:02 -07:00
|
|
|
/** Print characters.
|
2023-10-06 16:28:06 +00:00
|
|
|
|
|
|
|
|
@param [in] Format Format to print the Ptr.
|
|
|
|
|
@param [in] Ptr Pointer to the characters.
|
2024-06-18 17:50:02 -07:00
|
|
|
@param [in] Length Length of the field
|
2023-10-06 16:28:06 +00:00
|
|
|
**/
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2024-06-18 17:50:02 -07:00
|
|
|
PrintChars (
|
2021-09-30 08:48:17 +01:00
|
|
|
IN CONST CHAR8 *Format,
|
2024-06-18 17:50:02 -07:00
|
|
|
IN UINT8 *Ptr,
|
|
|
|
|
IN UINT32 Length
|
2021-09-30 08:48:17 +01:00
|
|
|
)
|
|
|
|
|
{
|
2024-06-18 17:50:02 -07:00
|
|
|
UINT32 Index;
|
2023-10-06 16:28:06 +00:00
|
|
|
|
2024-06-18 17:50:02 -07:00
|
|
|
for (Index = 0; Index < Length; Index++) {
|
|
|
|
|
DEBUG ((DEBUG_INFO, "%c", Ptr[Index]));
|
|
|
|
|
}
|
2021-09-30 08:48:17 +01:00
|
|
|
}
|
|
|
|
|
|
2024-06-18 17:50:02 -07:00
|
|
|
/** Dump data in Hex format
|
2022-10-10 11:20:46 +02:00
|
|
|
|
|
|
|
|
@param [in] Format Format to print the Ptr.
|
2024-06-18 17:50:02 -07:00
|
|
|
@param [in] Ptr Pointer to the string.
|
|
|
|
|
@param [in] Length Length of the field
|
2022-10-10 11:20:46 +02:00
|
|
|
**/
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
2024-06-18 17:50:02 -07:00
|
|
|
HexDump (
|
|
|
|
|
IN CONST CHAR8 *Format,
|
|
|
|
|
IN UINT8 *Ptr,
|
|
|
|
|
IN UINT32 Length
|
2022-10-10 11:20:46 +02:00
|
|
|
)
|
|
|
|
|
{
|
2024-06-18 17:50:02 -07:00
|
|
|
UINT32 Index;
|
|
|
|
|
|
|
|
|
|
for (Index = 0; Index < Length; Index++) {
|
|
|
|
|
DEBUG ((DEBUG_INFO, "0x%02x ", *Ptr++));
|
|
|
|
|
}
|
2022-10-10 11:20:46 +02:00
|
|
|
}
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
/** Print fields of the objects.
|
|
|
|
|
|
|
|
|
|
@param [in] Data Pointer to the object to print.
|
|
|
|
|
@param [in] Parser Parser containing the object fields.
|
|
|
|
|
@param [in] ItemCount Number of entries/fields in the Parser.
|
|
|
|
|
@param [in] RemainingSize Parse at most *RemainingSize bytes.
|
|
|
|
|
This function decrements the value
|
|
|
|
|
from the number bytes consumed.
|
|
|
|
|
@param [in] IndentLevel Indentation to use when printing.
|
|
|
|
|
**/
|
|
|
|
|
STATIC
|
|
|
|
|
VOID
|
|
|
|
|
PrintCmObjDesc (
|
|
|
|
|
IN VOID *Data,
|
|
|
|
|
IN CONST CM_OBJ_PARSER *Parser,
|
|
|
|
|
IN UINTN ItemCount,
|
|
|
|
|
IN INTN *RemainingSize,
|
|
|
|
|
IN UINT32 IndentLevel
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
UINT32 Index;
|
|
|
|
|
UINT32 IndentIndex;
|
|
|
|
|
INTN SubStructSize;
|
|
|
|
|
|
|
|
|
|
if ((Data == NULL) ||
|
|
|
|
|
(Parser == NULL) ||
|
|
|
|
|
(ItemCount == 0) ||
|
|
|
|
|
(RemainingSize == NULL))
|
|
|
|
|
{
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Print each field.
|
|
|
|
|
for (Index = 0; Index < ItemCount; Index++) {
|
|
|
|
|
// Check there is enough space in left.
|
|
|
|
|
*RemainingSize -= Parser[Index].Length;
|
|
|
|
|
if (*RemainingSize < 0) {
|
|
|
|
|
DEBUG ((
|
2024-03-07 14:05:40 +00:00
|
|
|
DEBUG_ERROR,
|
2021-09-30 08:48:17 +01:00
|
|
|
"\nERROR: %a: Buffer overrun\n",
|
|
|
|
|
Parser[Index].NameStr
|
|
|
|
|
));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Indentation
|
|
|
|
|
for (IndentIndex = 0; IndentIndex < IndentLevel; IndentIndex++) {
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, " "));
|
2021-09-30 08:48:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DEBUG ((
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG_INFO,
|
2021-09-30 08:48:17 +01:00
|
|
|
"%-*a :",
|
|
|
|
|
OUTPUT_FIELD_COLUMN_WIDTH - 2 * IndentLevel,
|
|
|
|
|
Parser[Index].NameStr
|
|
|
|
|
));
|
|
|
|
|
if (Parser[Index].PrintFormatter != NULL) {
|
2024-06-18 17:50:02 -07:00
|
|
|
Parser[Index].PrintFormatter (Parser[Index].Format, Data, Parser[Index].Length);
|
2021-09-30 08:48:17 +01:00
|
|
|
} else if (Parser[Index].Format != NULL) {
|
|
|
|
|
switch (Parser[Index].Length) {
|
|
|
|
|
case 1:
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, Parser[Index].Format, *(UINT8 *)Data));
|
2021-09-30 08:48:17 +01:00
|
|
|
break;
|
|
|
|
|
case 2:
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, Parser[Index].Format, *(UINT16 *)Data));
|
2021-09-30 08:48:17 +01:00
|
|
|
break;
|
|
|
|
|
case 4:
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, Parser[Index].Format, *(UINT32 *)Data));
|
2021-09-30 08:48:17 +01:00
|
|
|
break;
|
|
|
|
|
case 8:
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, Parser[Index].Format, ReadUnaligned64 (Data)));
|
2021-09-30 08:48:17 +01:00
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
DEBUG ((
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG_INFO,
|
2021-09-30 08:48:17 +01:00
|
|
|
"\nERROR: %a: CANNOT PARSE THIS FIELD, Field Length = %d\n",
|
|
|
|
|
Parser[Index].NameStr,
|
|
|
|
|
Parser[Index].Length
|
|
|
|
|
));
|
|
|
|
|
} // switch
|
|
|
|
|
} else if (Parser[Index].SubObjParser != NULL) {
|
|
|
|
|
SubStructSize = Parser[Index].Length;
|
|
|
|
|
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, "\n"));
|
2021-09-30 08:48:17 +01:00
|
|
|
PrintCmObjDesc (
|
|
|
|
|
Data,
|
|
|
|
|
Parser[Index].SubObjParser,
|
|
|
|
|
Parser[Index].SubObjItemCount,
|
|
|
|
|
&SubStructSize,
|
|
|
|
|
IndentLevel + 1
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
DEBUG ((
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG_INFO,
|
2021-09-30 08:48:17 +01:00
|
|
|
"\nERROR: %a: CANNOT PARSE THIS FIELD, Field Length = %d\n",
|
|
|
|
|
Parser[Index].NameStr,
|
|
|
|
|
Parser[Index].Length
|
|
|
|
|
));
|
|
|
|
|
}
|
2021-12-05 14:53:55 -08:00
|
|
|
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG ((DEBUG_INFO, "\n"));
|
2021-10-14 15:59:22 +01:00
|
|
|
Data = (UINT8 *)Data + Parser[Index].Length;
|
2021-09-30 08:48:17 +01:00
|
|
|
} // for
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Parse and print a CmObjDesc.
|
|
|
|
|
|
|
|
|
|
@param [in] CmObjDesc The CmObjDesc to parse and print.
|
|
|
|
|
**/
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
|
|
|
|
ParseCmObjDesc (
|
|
|
|
|
IN CONST CM_OBJ_DESCRIPTOR *CmObjDesc
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
UINTN ObjId;
|
|
|
|
|
UINTN NameSpaceId;
|
|
|
|
|
UINT32 ObjIndex;
|
|
|
|
|
UINT32 ObjectCount;
|
|
|
|
|
INTN RemainingSize;
|
2021-12-09 10:25:05 +01:00
|
|
|
INTN Offset;
|
2021-09-30 08:48:17 +01:00
|
|
|
CONST CM_OBJ_PARSER_ARRAY *ParserArray;
|
|
|
|
|
|
|
|
|
|
if ((CmObjDesc == NULL) || (CmObjDesc->Data == NULL)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NameSpaceId = GET_CM_NAMESPACE_ID (CmObjDesc->ObjectId);
|
|
|
|
|
ObjId = GET_CM_OBJECT_ID (CmObjDesc->ObjectId);
|
|
|
|
|
|
|
|
|
|
switch (NameSpaceId) {
|
|
|
|
|
case EObjNameSpaceStandard:
|
|
|
|
|
if (ObjId >= EStdObjMax) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-12-05 14:53:55 -08:00
|
|
|
|
2023-10-06 16:28:07 +00:00
|
|
|
if (ObjId >= ARRAY_SIZE (StdNamespaceObjectParser)) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the StdNamespaceObjectParser array\n", ObjId));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
ParserArray = &StdNamespaceObjectParser[ObjId];
|
|
|
|
|
break;
|
|
|
|
|
case EObjNameSpaceArm:
|
|
|
|
|
if (ObjId >= EArmObjMax) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-12-05 14:53:55 -08:00
|
|
|
|
2023-10-06 16:28:07 +00:00
|
|
|
if (ObjId >= ARRAY_SIZE (ArmNamespaceObjectParser)) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the ArmNamespaceObjectParser array\n", ObjId));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
ParserArray = &ArmNamespaceObjectParser[ObjId];
|
|
|
|
|
break;
|
2024-03-07 14:11:31 +00:00
|
|
|
|
2024-07-02 11:03:55 +05:30
|
|
|
case EObjNameSpaceRiscV:
|
|
|
|
|
if (ObjId >= ERiscVObjMax) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjId >= ARRAY_SIZE (RiscVNamespaceObjectParser)) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the RiscVNamespaceObjectParser array\n", ObjId));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ParserArray = &RiscVNamespaceObjectParser[ObjId];
|
|
|
|
|
break;
|
|
|
|
|
|
2026-07-28 20:51:40 +08:00
|
|
|
case EObjNameSpaceLoongArch64:
|
|
|
|
|
if (ObjId >= ELoongArch64ObjMax) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjId >= ARRAY_SIZE (LoongArch64NamespaceObjectParser)) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the LoongArch64NamespaceObjectParser array\n", ObjId));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ParserArray = &LoongArch64NamespaceObjectParser[ObjId];
|
|
|
|
|
break;
|
|
|
|
|
|
2024-03-07 14:11:31 +00:00
|
|
|
case EObjNameSpaceArchCommon:
|
|
|
|
|
if (ObjId >= EArchCommonObjMax) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjId >= ARRAY_SIZE (ArchCommonNamespaceObjectParser)) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the ArchCommonNamespaceObjectParser array\n", ObjId));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ParserArray = &ArchCommonNamespaceObjectParser[ObjId];
|
|
|
|
|
break;
|
2024-07-31 10:51:52 +00:00
|
|
|
|
|
|
|
|
case EObjNameSpaceX64:
|
|
|
|
|
if (ObjId >= EX64ObjMax) {
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjId >= ARRAY_SIZE (X64NamespaceObjectParser)) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the X64NamespaceObjectParser array\n", ObjId));
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ParserArray = &X64NamespaceObjectParser[ObjId];
|
|
|
|
|
break;
|
|
|
|
|
|
2021-09-30 08:48:17 +01:00
|
|
|
default:
|
|
|
|
|
// Not supported
|
2023-10-06 16:28:07 +00:00
|
|
|
DEBUG ((DEBUG_ERROR, "NameSpaceId 0x%x, ObjId 0x%x is not supported by the parser\n", NameSpaceId, ObjId));
|
2021-09-30 08:48:17 +01:00
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
} // switch
|
|
|
|
|
|
|
|
|
|
ObjectCount = CmObjDesc->Count;
|
|
|
|
|
RemainingSize = CmObjDesc->Size;
|
2021-12-09 10:25:05 +01:00
|
|
|
Offset = 0;
|
2021-09-30 08:48:17 +01:00
|
|
|
|
|
|
|
|
for (ObjIndex = 0; ObjIndex < ObjectCount; ObjIndex++) {
|
|
|
|
|
DEBUG ((
|
2022-05-25 18:56:25 +01:00
|
|
|
DEBUG_INFO,
|
2021-09-30 08:48:17 +01:00
|
|
|
"\n%-*a [%d/%d]:\n",
|
|
|
|
|
OUTPUT_FIELD_COLUMN_WIDTH,
|
|
|
|
|
ParserArray->ObjectName,
|
|
|
|
|
ObjIndex + 1,
|
|
|
|
|
ObjectCount
|
|
|
|
|
));
|
2024-03-07 14:05:40 +00:00
|
|
|
|
|
|
|
|
ASSERT (ObjId == ParserArray->ObjectId);
|
|
|
|
|
|
2023-10-06 16:28:07 +00:00
|
|
|
if (ParserArray->Parser == NULL) {
|
|
|
|
|
DEBUG ((DEBUG_ERROR, "Parser not implemented\n"));
|
|
|
|
|
RemainingSize = 0;
|
|
|
|
|
} else {
|
|
|
|
|
PrintCmObjDesc (
|
|
|
|
|
(VOID *)((UINTN)CmObjDesc->Data + Offset),
|
|
|
|
|
ParserArray->Parser,
|
|
|
|
|
ParserArray->ItemCount,
|
|
|
|
|
&RemainingSize,
|
|
|
|
|
1
|
|
|
|
|
);
|
2024-01-03 15:22:39 +05:30
|
|
|
if ((RemainingSize > (INTN)CmObjDesc->Size) ||
|
2023-10-06 16:28:07 +00:00
|
|
|
(RemainingSize < 0))
|
|
|
|
|
{
|
|
|
|
|
ASSERT (0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-12-09 10:25:05 +01:00
|
|
|
|
2023-10-06 16:28:07 +00:00
|
|
|
Offset = CmObjDesc->Size - RemainingSize;
|
|
|
|
|
}
|
2021-09-30 08:48:17 +01:00
|
|
|
} // for
|
2021-12-09 10:25:05 +01:00
|
|
|
|
|
|
|
|
ASSERT (RemainingSize == 0);
|
2021-09-30 08:48:17 +01:00
|
|
|
}
|