From ec7956c013ad3a8582ef372855ab0bd47d5a8983 Mon Sep 17 00:00:00 2001 From: Anvesh Bakwad Date: Mon, 19 May 2025 06:15:44 +0000 Subject: [PATCH] feature(sysman): Add rev 3 punit PMT support for BMG Linux Related-To: NEO-14989 Signed-off-by: Anvesh Bakwad --- .../bmg/sysman_product_helper_bmg.cpp | 8 +++++++ .../sysman_product_helper_pmt_tests.cpp | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/level_zero/sysman/source/shared/linux/product_helper/xe2_hpg_core/bmg/sysman_product_helper_bmg.cpp b/level_zero/sysman/source/shared/linux/product_helper/xe2_hpg_core/bmg/sysman_product_helper_bmg.cpp index 11bb18dfb3..2174f415e4 100644 --- a/level_zero/sysman/source/shared/linux/product_helper/xe2_hpg_core/bmg/sysman_product_helper_bmg.cpp +++ b/level_zero/sysman/source/shared/linux/product_helper/xe2_hpg_core/bmg/sysman_product_helper_bmg.cpp @@ -36,6 +36,14 @@ static std::map> guidToKeyOffsetMap {"XTAL_COUNT", 1024}, {"VCCGT_ENERGY_ACCUMULATOR", 1628}, {"VCCDDR_ENERGY_ACCUMULATOR", 1640}}}, + {"0x1e2f8202", // BMG PUNIT rev 3 + {{"XTAL_CLK_FREQUENCY", 4}, + {"ACCUM_PACKAGE_ENERGY", 48}, + {"ACCUM_PSYS_ENERGY", 52}, + {"VRAM_BANDWIDTH", 56}, + {"XTAL_COUNT", 1024}, + {"VCCGT_ENERGY_ACCUMULATOR", 1628}, + {"VCCDDR_ENERGY_ACCUMULATOR", 1640}}}, {"0x5e2f8210", // BMG OOBMSM Rev 15 {{"PACKAGE_ENERGY_STATUS_SKU_0_0_0_PCU", 136}, {"PLATFORM_ENERGY_STATUS", 140}, diff --git a/level_zero/sysman/test/unit_tests/sources/shared/linux/product_helper/sysman_product_helper_pmt_tests.cpp b/level_zero/sysman/test/unit_tests/sources/shared/linux/product_helper/sysman_product_helper_pmt_tests.cpp index 6df2365532..d405782ad2 100644 --- a/level_zero/sysman/test/unit_tests/sources/shared/linux/product_helper/sysman_product_helper_pmt_tests.cpp +++ b/level_zero/sysman/test/unit_tests/sources/shared/linux/product_helper/sysman_product_helper_pmt_tests.cpp @@ -67,6 +67,28 @@ HWTEST2_F(SysmanProductHelperPmtTest, GivenSysmanProductHelperInstanceWhenGetGui EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x5e2f8210").at("reg_PCIESS_tx_bytecount_msb"), (*pGuidToKeyOffsetMap).at("0x5e2f8210").at("reg_PCIESS_tx_bytecount_msb")); } +HWTEST2_F(SysmanProductHelperPmtTest, GivenSysmanProductHelperInstanceWhenGetGuidToKeyOffsetMapIsCalledForRev3PunitThenValidMapIsReturned, IsBMG) { + const std::map> mockBmgGuidToKeyOffsetMap = {{"0x1e2f8202", + {{"XTAL_CLK_FREQUENCY", 4}, + {"ACCUM_PACKAGE_ENERGY", 48}, + {"ACCUM_PSYS_ENERGY", 52}, + {"VRAM_BANDWIDTH", 56}, + {"XTAL_COUNT", 1024}, + {"VCCGT_ENERGY_ACCUMULATOR", 1628}, + {"VCCDDR_ENERGY_ACCUMULATOR", 1640}}}}; + + auto pSysmanProductHelper = L0::Sysman::SysmanProductHelper::create(defaultHwInfo->platform.eProductFamily); + auto pGuidToKeyOffsetMap = pSysmanProductHelper->getGuidToKeyOffsetMap(); + EXPECT_NE(nullptr, pGuidToKeyOffsetMap); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("XTAL_CLK_FREQUENCY"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("XTAL_CLK_FREQUENCY")); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("ACCUM_PACKAGE_ENERGY"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("ACCUM_PACKAGE_ENERGY")); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("ACCUM_PSYS_ENERGY"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("ACCUM_PSYS_ENERGY")); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("VRAM_BANDWIDTH"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("VRAM_BANDWIDTH")); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("XTAL_COUNT"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("XTAL_COUNT")); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("VCCGT_ENERGY_ACCUMULATOR"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("VCCGT_ENERGY_ACCUMULATOR")); + EXPECT_EQ(mockBmgGuidToKeyOffsetMap.at("0x1e2f8202").at("VCCDDR_ENERGY_ACCUMULATOR"), (*pGuidToKeyOffsetMap).at("0x1e2f8202").at("VCCDDR_ENERGY_ACCUMULATOR")); +} + } // namespace ult } // namespace Sysman } // namespace L0