Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 76 additions & 16 deletions src/shim/device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ struct partition_info

struct context_health_info {

static ert_ctx_health_data
static xrt_core::query::context_health_info::smi_context_health
fill_health_entry(const amdxdna_drm_hwctx_entry& entry)
{
ert_ctx_health_data new_entry{};
Expand All @@ -380,7 +380,12 @@ struct context_health_info {
new_entry.fatal_error_exception_type = entry.fatal_error_exception_type;
new_entry.fatal_error_exception_pc = entry.fatal_error_exception_pc;
new_entry.fatal_error_app_module = entry.fatal_error_app_module;
return new_entry;

xrt_core::query::context_health_info::smi_context_health val{};
val.ctx_id = entry.context_id;
val.pid = entry.pid;
val.health_data = new_entry;
return val;
}
using result_type = std::any;

Expand Down Expand Up @@ -589,15 +594,25 @@ struct event_trace
}

static result_type
get(const xrt_core::device* device, key_type key)
get(const xrt_core::device* device, key_type key, const std::any& any)
{
switch (key) {
case key_type::event_trace_data:
{
// static query::firmware_debug_buffer log_buffer;
// TODO : implement IOCTL to get event_trace data
// return log_buffer;
case key_type::event_trace_data:
{
// static query::firmware_debug_buffer log_buffer;
// TODO : implement IOCTL to get event_trace data
// return log_buffer;
}
default:
throw xrt_core::error("Unsupported event_trace query key");
}
// TODO : Implement IOCTL to get event_trace configuration
}

static result_type
get(const xrt_core::device* device, key_type key)
{
switch (key) {
case key_type::event_trace_version:
{
// query::event_trace_version::result_type version;
Expand Down Expand Up @@ -633,15 +648,26 @@ struct firmware_log
}

static result_type
get(const xrt_core::device* device, key_type key)
get(const xrt_core::device* device, key_type key, const std::any& any)
{
switch (key) {
case key_type::firmware_log_data:
{
// static query::firmware_debug_buffer log_buffer;
// TODO : implement IOCTL to get firmware log data
// return log_buffer;
case key_type::firmware_log_data:
{
// static query::firmware_debug_buffer log_buffer;
// TODO : implement IOCTL to get firmware_log data
// return log_buffer;
}
default:
throw xrt_core::error("Unsupported firmware_log query key");
}
// TODO : Implement IOCTL to get firmware_log configuration
}

static result_type
get(const xrt_core::device* device, key_type key)
{
switch (key) {

case key_type::firmware_log_version:
{
// query::firmware_log_version::result_type version;
Expand All @@ -664,6 +690,39 @@ struct firmware_log
}
};

struct archive_path
{
using result_type = query::archive_path::result_type;

static result_type
get(const xrt_core::device* device, key_type key)
{
const auto& pcie_id = xrt_core::device_query<xrt_core::query::pcie_id>(device);
xrt_core::smi::smi_hardware_config smi_hrdw;
auto hardware_type = smi_hrdw.get_hardware_type(pcie_id);

switch (key) {
case key_type::archive_path:
{
switch (hardware_type)
{
case xrt_core::smi::smi_hardware_config::hardware_type::stxA0:
case xrt_core::smi::smi_hardware_config::hardware_type::stxB0:
case xrt_core::smi::smi_hardware_config::hardware_type::stxH:
case xrt_core::smi::smi_hardware_config::hardware_type::krk1:
return std::string(get_shim_data_dir() + "bins/xrt_smi_strx.a");
case xrt_core::smi::smi_hardware_config::hardware_type::phx:
return std::string(get_shim_data_dir() + "bins/xrt_smi_phx.a");
default:
throw xrt_core::error("Unsupported hardware type");
}
}
default:
throw xrt_core::error("Unsupported archive_path query key");
}
}
};

struct frame_boundary_preemption
{
using result_type = query::frame_boundary_preemption::result_type;
Expand Down Expand Up @@ -1596,14 +1655,15 @@ initialize_query_table()
emplace_func0_getput<query::preemption, preemption>();
emplace_func0_getput<query::frame_boundary_preemption, frame_boundary_preemption>();

emplace_func0_request<query::event_trace_data, event_trace>();
emplace_func1_request<query::event_trace_data, event_trace>();
emplace_func0_request<query::event_trace_version, event_trace>();
emplace_func0_request<query::event_trace_config, event_trace>();
emplace_func0_getput<query::event_trace_state, event_trace>();
emplace_func0_request<query::firmware_log_data, firmware_log>();
emplace_func1_request<query::firmware_log_data, firmware_log>();
emplace_func0_request<query::firmware_log_version, firmware_log>();
emplace_func0_request<query::firmware_log_config, firmware_log>();
emplace_func0_getput<query::firmware_log_state, firmware_log>();
emplace_func0_request<query::archive_path, archive_path>();
emplace_func0_request<query::aie_telemetry, telemetry>();
emplace_func0_request<query::misc_telemetry, telemetry>();
emplace_func0_request<query::opcode_telemetry, telemetry>();
Expand Down
2 changes: 2 additions & 0 deletions src/shim/smi_xdna.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ config_gen_xdna::create_examine_subcommand()
{"preemption", "Preemption telemetry data for the device", "hidden"},
{"clocks", "Clock frequency information", "hidden"},
{"context-health", "Log to console context health information", "hidden"},
{"event-trace", "Event trace report", "hidden"},
{"firmware-log", "Firmware Log report", "hidden"}
};

std::map<std::string, std::shared_ptr<option>> examine_suboptions;
Expand Down
2 changes: 1 addition & 1 deletion tools/info.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"copyright": "Copyright (C) 2023-2025 Advanced Micro Devices, Inc. All rights reserved.",
"xrt" : {
"version": "202520.2.20.132",
"version": "202520.2.20.144",
"os_rel": ["22.04", "24.04"]
},
"firmwares": [
Expand Down
2 changes: 1 addition & 1 deletion xrt
Submodule xrt updated 55 files
+2 −0 .github/workflows/xrt_ci.yml
+3 −0 .github/workflows/xrt_master_2025.2.yml
+2 −3 build/build_yocto.sh
+1 −1 build/petalinux.build
+2 −2 build/yocto.build
+30 −0 src/runtime_src/core/common/api/xrt_device.cpp
+30 −8 src/runtime_src/core/common/detail/linux/sysinfo.h
+5 −0 src/runtime_src/core/common/detail/windows/sysinfo.h
+5 −0 src/runtime_src/core/common/query.h
+35 −1 src/runtime_src/core/common/query_requests.h
+60 −0 src/runtime_src/core/edge/common/aie_parser.cpp
+9 −0 src/runtime_src/core/edge/common/aie_parser.h
+26 −0 src/runtime_src/core/edge/user/aie/common_layer/adf_api_config.h
+78 −0 src/runtime_src/core/edge/user/aie/common_layer/adf_runtime_api.cpp
+4 −0 src/runtime_src/core/edge/user/aie/common_layer/adf_runtime_api.h
+26 −9 src/runtime_src/core/edge/user/aie/graph_object.cpp
+3 −0 src/runtime_src/core/edge/user/aie/graph_object.h
+84 −0 src/runtime_src/core/edge/user/device_linux.cpp
+0 −5 src/runtime_src/core/include/xrt/detail/windows/CMakeLists.txt
+38 −0 src/runtime_src/core/include/xrt/xrt_aie.h
+4 −25 src/runtime_src/core/tools/common/SmiWatchMode.cpp
+4 −24 src/runtime_src/core/tools/common/SmiWatchMode.h
+6 −4 src/runtime_src/core/tools/common/TestRunner.cpp
+17 −1 src/runtime_src/core/tools/common/TestRunner.h
+87 −56 src/runtime_src/core/tools/common/reports/ReportContextHealth.cpp
+1 −0 src/runtime_src/core/tools/common/reports/ReportHost.cpp
+42 −11 src/runtime_src/core/tools/common/tests/TestNPULatency.cpp
+8 −0 src/runtime_src/core/tools/common/tests/TestNPULatency.h
+20 −12 src/runtime_src/core/tools/xbmgmt2/xbmgmt
+6 −7 src/runtime_src/core/tools/xbutil2/ReportEventTrace.cpp
+6 −7 src/runtime_src/core/tools/xbutil2/ReportFirmwareLog.cpp
+20 −1 src/runtime_src/core/tools/xbutil2/SubCmdValidate.cpp
+32 −16 src/runtime_src/core/tools/xbutil2/xrt-smi
+16 −14 src/runtime_src/tools/scripts/loader
+31 −41 src/runtime_src/tools/scripts/setup.sh
+28 −11 src/runtime_src/tools/xclbinutil/xclbinutil
+6 −4 src/runtime_src/xdp/profile/database/dynamic_event_database.cpp
+3 −2 src/runtime_src/xdp/profile/database/dynamic_event_database.h
+12 −6 src/runtime_src/xdp/profile/database/dynamic_info/aie_db.cpp
+5 −3 src/runtime_src/xdp/profile/database/dynamic_info/aie_db.h
+5 −4 src/runtime_src/xdp/profile/database/dynamic_info/device_db.h
+3 −2 src/runtime_src/xdp/profile/database/events/creator/aie_trace_data_logger.cpp
+2 −1 src/runtime_src/xdp/profile/database/events/creator/aie_trace_data_logger.h
+18 −0 src/runtime_src/xdp/profile/database/static_info/filetypes/aie_trace_config_filetype.cpp
+11 −21 src/runtime_src/xdp/profile/database/static_info_database.cpp
+1 −0 src/runtime_src/xdp/profile/database/static_info_database.h
+14 −4 src/runtime_src/xdp/profile/plugin/aie_profile/aie_profile_metadata.cpp
+7 −3 src/runtime_src/xdp/profile/plugin/aie_trace/aie_trace_metadata.h
+259 −0 src/runtime_src/xdp/profile/plugin/aie_trace/aie_trace_offload_manager.cpp
+89 −0 src/runtime_src/xdp/profile/plugin/aie_trace/aie_trace_offload_manager.h
+59 −138 src/runtime_src/xdp/profile/plugin/aie_trace/aie_trace_plugin.cpp
+7 −8 src/runtime_src/xdp/profile/plugin/aie_trace/aie_trace_plugin.h
+5 −3 src/runtime_src/xdp/profile/writer/aie_trace/aie_trace_writer.cpp
+3 −1 src/runtime_src/xdp/profile/writer/aie_trace/aie_trace_writer.h
+9 −5 src/runtime_src/xocl/CMakeLists.txt