Skip to content

Commit 68d9787

Browse files
authored
AIESW-26143 Fix advanced disclaimer usage (Xilinx#9654)
* AIESW-26143 Fix advanced disclaimer usage Signed-off-by: Ryan Chane <rchane@xilinx.com> * Update isUsingAdvanced to check advanced internally Signed-off-by: Ryan Chane <rchane@xilinx.com> * Check for options in examine for disclaimer Signed-off-by: Ryan Chane <rchane@xilinx.com> * Revert previous change and move disclaimer to OptionOption level Signed-off-by: Ryan Chane <rchane@xilinx.com> * Move disclaimer to OptionOption level for SubCmdConfigure Signed-off-by: Ryan Chane <rchane@xilinx.com> * Update copyright and fix duplicate disclaimer Signed-off-by: Ryan Chane <rchane@xilinx.com> --------- Signed-off-by: Ryan Chane <rchane@xilinx.com>
1 parent 8349360 commit 68d9787

8 files changed

Lines changed: 72 additions & 15 deletions

File tree

src/runtime_src/core/tools/common/XBMain.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: Apache-2.0
22
// Copyright (C) 2019-2022 Xilinx, Inc
3-
// Copyright (C) 2022-2025 Advanced Micro Devices, Inc. All rights reserved.
3+
// Copyright (C) 2022-2026 Advanced Micro Devices, Inc. All rights reserved.
44

55
// ------ I N C L U D E F I L E S -------------------------------------------
66
// Local - Include Files
@@ -225,14 +225,6 @@ void main_(int argc, char** argv,
225225
std::istringstream command_config_stream(config);
226226
boost::property_tree::read_json(command_config_stream, configTreeMain);
227227
subCommand->setOptionConfig(configTreeMain);
228-
229-
if (XBU::getAdvance()) {
230-
std::cout << "-------------------------------------------------------------------------\n";
231-
std::cout << " DISCLAIMER (xrt-smi --advanced) \n";
232-
std::cout << "You are running a developer command that may change system configuration.\n";
233-
std::cout << " Continue only if you understand the risks. \n";
234-
std::cout << "-------------------------------------------------------------------------\n";
235-
}
236228
}
237229

238230
// -- Execute the sub-command

src/runtime_src/core/tools/common/XBUtilities.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -954,3 +954,39 @@ get_archive_install_path(const std::string& xrt_version)
954954

955955
return std::string(home) + "/.local/share/xrt/" + xrt_version + "/amdxdna/bins";
956956
}
957+
958+
void
959+
XBUtilities::
960+
printAdvancedDisclaimer()
961+
{
962+
std::cout << "-------------------------------------------------------------------------\n";
963+
std::cout << " DISCLAIMER (xrt-smi --advanced) \n";
964+
std::cout << "You are running a developer command that may change system configuration.\n";
965+
std::cout << " Continue only if you understand the risks. \n";
966+
std::cout << "-------------------------------------------------------------------------\n";
967+
}
968+
969+
bool
970+
XBUtilities::
971+
isUsingAdvanced(
972+
const std::vector<std::tuple<std::string, std::string, std::string>>& configItems,
973+
const std::vector<std::string>& requestedNames)
974+
{
975+
// If advanced is not set, return false immediately
976+
if (!getAdvance())
977+
return false;
978+
979+
for (const auto& name : requestedNames) {
980+
if (name == "all")
981+
return true;
982+
}
983+
984+
// Check if any specific requested item is hidden
985+
for (const auto& name : requestedNames) {
986+
for (const auto& item : configItems) {
987+
if (std::get<0>(item) == name && std::get<2>(item) == "hidden")
988+
return true;
989+
}
990+
}
991+
return false;
992+
}

src/runtime_src/core/tools/common/XBUtilities.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: Apache-2.0
22
// Copyright (C) 2019-2022 Xilinx, Inc
3-
// Copyright (C) 2022-2024 Advanced Micro Devices, Inc. All rights reserved.
3+
// Copyright (C) 2022-2026 Advanced Micro Devices, Inc. All rights reserved.
44

55
#ifndef __XBUtilities_h_
66
#define __XBUtilities_h_
@@ -18,6 +18,7 @@
1818
#include <map>
1919
#include <memory>
2020
#include <string>
21+
#include <tuple>
2122
#include <vector>
2223

2324
#include <boost/algorithm/string.hpp>
@@ -156,7 +157,23 @@ namespace XBUtilities {
156157

157158
bool
158159
is_strix_hardware(xrt_core::smi::smi_hardware_config::hardware_type hw_type);
159-
/**
160+
161+
void
162+
printAdvancedDisclaimer();
163+
164+
/**
165+
* isUsingAdvanced() - Check if user is using xrt-smi advanced/hidden features
166+
*
167+
* @configItems: Vector of tuples (name, description, type) from shim config
168+
* @requestedNames: Vector of names requested by the user
169+
* Return: true if advanced mode is enabled and user is using advanced/hidden features
170+
*/
171+
bool
172+
isUsingAdvanced(
173+
const std::vector<std::tuple<std::string, std::string, std::string>>& configItems,
174+
const std::vector<std::string>& requestedNames);
175+
176+
/**
160177
* Open archive from device
161178
*/
162179
std::unique_ptr<xrt_core::archive>

src/runtime_src/core/tools/xbutil2/EventTracing/OO_EventTrace.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: Apache-2.0
2-
// Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.
2+
// Copyright (C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
33

44
// ------ I N C L U D E F I L E S -------------------------------------------
55
// Local - Include Files
@@ -133,6 +133,8 @@ void
133133
OO_EventTrace::
134134
execute(const SubCmdOptions& _options) const
135135
{
136+
XBUtilities::printAdvancedDisclaimer();
137+
136138
XBUtilities::verbose("SubCommand option: Event Trace");
137139
XBUtilities::sudo_or_throw("Event tracing requires admin privileges");
138140

src/runtime_src/core/tools/xbutil2/FirmwareLogging/OO_FirmwareLog.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: Apache-2.0
2-
// Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.
2+
// Copyright (C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
33

44
// ------ I N C L U D E F I L E S -------------------------------------------
55
// Local - Include Files
@@ -49,6 +49,8 @@ OO_FirmwareLog::validate_args() const {
4949
void
5050
OO_FirmwareLog::execute(const SubCmdOptions& _options) const
5151
{
52+
XBUtilities::printAdvancedDisclaimer();
53+
5254
XBUtilities::verbose("SubCommand option: Firmware Log");
5355
XBUtilities::sudo_or_throw("Firmware logging requires admin privileges");
5456

src/runtime_src/core/tools/xbutil2/OO_Preemption.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: Apache-2.0
2-
// Copyright (C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
2+
// Copyright (C) 2024-2026 Advanced Micro Devices, Inc. All rights reserved.
33

44
// ------ I N C L U D E F I L E S -------------------------------------------
55
// Local - Include Files
@@ -51,6 +51,8 @@ OO_Preemption::validate_args() const {
5151
void
5252
OO_Preemption::execute(const SubCmdOptions& _options) const
5353
{
54+
XBUtilities::printAdvancedDisclaimer();
55+
5456
XBUtilities::verbose("SubCommand option: Pre-emption");
5557

5658
XBUtilities::verbose("Option(s):");

src/runtime_src/core/tools/xbutil2/SubCmdExamine.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: Apache-2.0
22
// Copyright (C) 2020-2022 Xilinx, Inc
3-
// Copyright (C) 2022-2025 Advanced Micro Devices, Inc. All rights reserved.
3+
// Copyright (C) 2022-2026 Advanced Micro Devices, Inc. All rights reserved.
44

55
// ------ I N C L U D E F I L E S -------------------------------------------
66
// Local - Include Files
@@ -288,6 +288,9 @@ SubCmdExamine::execute(const SubCmdOptions& _options) const
288288
if (device){
289289
const xrt_core::smi::tuple_vector& reportList = xrt_core::device_query<xrt_core::query::xrt_smi_lists>(device, xrt_core::query::xrt_smi_lists::type::examine_reports);
290290
runnableReports = getReportsList(reportList);
291+
292+
if (XBU::isUsingAdvanced(reportList, reportsToRun))
293+
XBU::printAdvancedDisclaimer();
291294
}
292295
else {
293296
runnableReports = uniqueReportCollection;

src/runtime_src/core/tools/xbutil2/SubCmdValidate.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,9 @@ SubCmdValidate::execute(const SubCmdOptions& _options) const
531531
// All Error Handling for xrt-smi validate should go here
532532
handle_errors_and_validate_tests(vm, options, testOptions, validatedTests, param);
533533

534+
if (XBU::isUsingAdvanced(tests, validatedTests))
535+
XBU::printAdvancedDisclaimer();
536+
534537
// check if xclbin folder path is provided
535538
if (!validateXclbinPath.empty()) {
536539
XBU::verbose("Sub command: --path");

0 commit comments

Comments
 (0)