Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
33679ac
[SWDEV-504583] Resolve Additional Compiler Warnings
amd-josnarlo Jan 23, 2025
6a08813
Integrate Broadcom Devices
mcharles-brcm Jan 24, 2025
dd2ce07
[SWDEV-504583] Resolve Additional Compiler Warnings (#59)
amd-josnarlo Jan 24, 2025
e5f94bd
Merge branch 'amd-staging' into SWDEV-504389/Synch_Comment_In_Linux_BM
amd-josnarlo Jan 24, 2025
1d305dc
Merge branch 'amd-staging' into SWDEV-504389/Synch_Comment_In_Linux_BM
amd-josnarlo Jan 24, 2025
b0f2a3c
Merge branch 'SWDEV-504389/Synch_Comment_In_Linux_BM' of github.com:A…
amd-josnarlo Jan 24, 2025
e18c0c2
[SWDEV-504389] Sync Comments in Linux BM (#63)
amd-josnarlo Jan 24, 2025
67d7ee7
Update amdsmi_logger.py
shbirada-brcm Jan 25, 2025
aea6e8a
NIC/Switch LIST
shbirada-brcm Jan 25, 2025
e7637e8
Merge pull request #1 from shbiradar2025/amd-staging
mcharles-brcm Jan 26, 2025
e933b64
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Jan 26, 2025
358b2d2
brcm devices monitor command
mcharles-brcm Jan 27, 2025
2949a5a
BRCM Monitor
shbirada-brcm Jan 27, 2025
dbc802d
Monitor Logger
shbirada-brcm Jan 27, 2025
f6061c6
updated interface
shbirada-brcm Jan 27, 2025
b6984b3
Merge pull request #2 from shbirada-brcm/amd-staging
mcharles-brcm Jan 27, 2025
9872083
SWDEV-511296 - update violation_status->violation_timestamp to read t…
salvatoreg3 Jan 27, 2025
d32bb1a
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Jan 28, 2025
ac5b8f8
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Feb 19, 2025
04d9f51
Integrate BRCM devices in topology command
mcharles-brcm Mar 13, 2025
09e67e5
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Mar 13, 2025
eccd034
Remove duplicate entries issues
mcharles-brcm Mar 13, 2025
7b11bb3
Resolve duplicate entries in python
mcharles-brcm Mar 13, 2025
a748f01
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Mar 21, 2025
8a9842a
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Mar 24, 2025
cbc1fdb
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Mar 26, 2025
827f42c
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Mar 27, 2025
f65f278
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Apr 1, 2025
46efd34
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Apr 8, 2025
cb30a00
Update amdsmi_commands.py
mcharles-brcm Apr 8, 2025
47f0ad9
Merge branch 'amd-staging' into amd-staging
mcharles-brcm May 13, 2025
ded8146
Remove duplicate methods from merges
mcharles-brcm May 13, 2025
789cf6f
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm May 19, 2025
cd2bada
Review Comments Phase - 1
mcharles-brcm May 20, 2025
a936fc1
Merge branch 'amd-staging' into amd-staging
mcharles-brcm May 22, 2025
2c53e54
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm May 26, 2025
62c8880
Review Comments Phase 2.1
mcharles-brcm May 27, 2025
a0a5900
Update sys_info_read.cc
mcharles-brcm May 27, 2025
bfff8d5
Update sys_info_read.cc
mcharles-brcm May 27, 2025
c33ab54
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Jun 11, 2025
9e7a205
Merge Issue
mcharles-brcm Jun 11, 2025
fd2f938
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Jun 19, 2025
5f5e1e9
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Jul 3, 2025
6955b0c
Update amd_smi_drm.cc
mcharles-brcm Jul 3, 2025
a98dbbc
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Jul 7, 2025
e151c77
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Jul 9, 2025
cfd796d
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Jul 17, 2025
f0a7e3f
Integrate dump command
mcharles-brcm Jul 22, 2025
9a0bff4
Incorporated review comments
mcharles-brcm Jul 24, 2025
7c37382
Update CMakeLists.txt
mcharles-brcm Jul 24, 2025
63093dc
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Jul 24, 2025
f3dc4d1
Defect Fixes
mcharles-brcm Jul 30, 2025
cf3634c
Merge branch 'amd-staging' of https://github.com/mcharles-brcm/amdsmi…
mcharles-brcm Jul 30, 2025
67688f1
Merge branch 'ROCm:amd-staging' into amd-staging
mcharles-brcm Jul 30, 2025
c0f3b91
Merge branch 'amd-staging' of https://github.com/mcharles-brcm/amdsmi…
mcharles-brcm Jul 30, 2025
81dd998
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Aug 20, 2025
2701b55
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Aug 25, 2025
a716626
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Sep 19, 2025
cbeb67d
Update amd_smi_system.cc
mcharles-brcm Sep 19, 2025
7426806
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Sep 29, 2025
6e92d2b
brcm-smi module
mcharles-brcm Sep 30, 2025
e6251ea
Update CMakeLists.txt
mcharles-brcm Sep 30, 2025
e9a243d
brcm-smi module
mcharles-brcm Sep 30, 2025
93ebfb9
Merge branch 'amd-staging' of https://github.com/mcharles-brcm/amdsmi…
mcharles-brcm Sep 30, 2025
07ec493
Create configure_init.cmake
mcharles-brcm Sep 30, 2025
fe83a2f
Create __init__.py.in
mcharles-brcm Sep 30, 2025
b349ce8
Merge branch 'amd-staging' into amd-staging
mcharles-brcm Feb 25, 2026
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
31 changes: 31 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ include(GNUInstallDirs)
option(BUILD_TESTS "Build test suite" OFF)
option(ENABLE_ASAN_PACKAGING "" OFF)
option(ENABLE_ESMI_LIB "Build ESMI Library" ON)
option(ENABLE_BRCM_SMI "Build BRCM SMI Library" OFF)
option(BUILD_EXAMPLES "Build examples" OFF)

# If amdsmi is built as a static library, it should support being embedded in other programs. The setting below essentially enables the -fPIC flag.
Expand Down Expand Up @@ -291,6 +292,36 @@ set(CMN_INC_LIST
"${ROCM_INC_DIR}/rocm_smi_npm.h")

add_subdirectory("rocm_smi")

# Conditionally include BRCM SMI sources before building the main library
if(ENABLE_BRCM_SMI)
message(STATUS "BRCM SMI Library enabled")
add_compile_definitions(ENABLE_BRCM_SMI=1)

# Add BRCM SMI sources to the common source list
set(BRCM_SMI_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/brcm-smi/src")
list(APPEND CMN_SRC_LIST
"${BRCM_SMI_SRC_DIR}/brcm_smi.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_discovery.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_device.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_utils.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_nic_device.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_switch_device.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_no_drm_nic.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_no_drm_switch.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_lspci_commands.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_socket.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_processor.cc"
"${BRCM_SMI_SRC_DIR}/brcm_smi_system.cc"
)
message(STATUS "BRCM SMI sources added to main library")

# Include BRCM SMI headers
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/brcm-smi/include")

add_subdirectory("brcm-smi")
endif()

add_subdirectory("src")

if(BUILD_TESTS)
Expand Down
3 changes: 3 additions & 0 deletions amdsmi_cli/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ add_custom_command(
OUTPUT ${PY_PACKAGE_DIR}/__init__.py
${PY_PACKAGE_DIR}/amdsmi_cli.py
${PY_PACKAGE_DIR}/amdsmi_commands.py
${PY_PACKAGE_DIR}/brcmsmi_commands.py
${PY_PACKAGE_DIR}/amdsmi_helpers.py
${PY_PACKAGE_DIR}/amdsmi_init.py
${PY_PACKAGE_DIR}/amdsmi_logger.py
Expand All @@ -27,6 +28,7 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py ${PY_PACKAGE_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_cli.py ${PY_PACKAGE_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_commands.py ${PY_PACKAGE_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/brcmsmi_commands.py ${PY_PACKAGE_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_helpers.py ${PY_PACKAGE_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_init.py ${PY_PACKAGE_DIR}/
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_logger.py ${PY_PACKAGE_DIR}/
Expand All @@ -44,6 +46,7 @@ add_custom_target(
${PY_PACKAGE_DIR}/_version.py
${PY_PACKAGE_DIR}/amdsmi_cli.py
${PY_PACKAGE_DIR}/amdsmi_commands.py
${PY_PACKAGE_DIR}/brcmsmi_commands.py
${PY_PACKAGE_DIR}/amdsmi_helpers.py
${PY_PACKAGE_DIR}/amdsmi_init.py
${PY_PACKAGE_DIR}/amdsmi_logger.py
Expand Down
1 change: 1 addition & 0 deletions amdsmi_cli/amdsmi_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ def configure_logging_and_execute(args, amd_smi_commands):
amd_smi_commands.xgmi,
amd_smi_commands.partition,
amd_smi_commands.ras,
amd_smi_commands.dump,
amd_smi_commands.node,
amd_smi_commands.default,
sys_argv=sys.argv,
Expand Down
31 changes: 25 additions & 6 deletions amdsmi_cli/amdsmi_cli_exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,13 @@
}

def _get_error_message(error_code):
if abs(error_code) in AMDSMI_ERROR_MESSAGES:
return AMDSMI_ERROR_MESSAGES[abs(error_code)]
# Handle non-numeric error codes gracefully
try:
error_code_num = int(error_code)
if abs(error_code_num) in AMDSMI_ERROR_MESSAGES:
return AMDSMI_ERROR_MESSAGES[abs(error_code_num)]
except (ValueError, TypeError):
pass
return "Generic error"


Expand Down Expand Up @@ -297,11 +302,25 @@ def __init__(self, command, outputformat: str):
class AmdSmiLibraryErrorException(AmdSmiException):
def __init__(self, outputformat: str, error_code):
super().__init__()
self.value = -1000 - abs(error_code)
self.smilibcode = error_code

# Handle non-numeric error codes gracefully
try:
error_code_num = int(error_code)
self.value = -1000 - abs(error_code_num)
self.smilibcode = error_code_num

# Get error message safely
if abs(error_code_num) in AMDSMI_ERROR_MESSAGES:
error_msg = AMDSMI_ERROR_MESSAGES[abs(error_code_num)]
else:
error_msg = "Unknown error"
except (ValueError, TypeError):
self.value = -1000
self.smilibcode = error_code
error_msg = "Invalid error code"

self.output_format = outputformat

common_message = f"AMDSMI has returned error '{self.value}' - '{AMDSMI_ERROR_MESSAGES[abs(self.smilibcode)]}'"
common_message = f"AMDSMI has returned error '{self.value}' - '{error_msg}'"

self.json_message["error"] = common_message
self.json_message["code"] = self.value
Expand Down
Loading