Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
pjanevskiTT committed Mar 7, 2025
1 parent 5c50468 commit 7d8239b
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 11 deletions.
2 changes: 2 additions & 0 deletions device/api/umd/device/tt_device/grayskull_tt_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,7 @@ class GrayskullTTDevice : public TTDevice {
GrayskullTTDevice(std::unique_ptr<PCIDevice> pci_device);

ChipInfo get_chip_info() override;

BoardType get_board_type() override;
};
} // namespace tt::umd
2 changes: 1 addition & 1 deletion device/api/umd/device/tt_device/tt_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ class TTDevice {

virtual uint32_t get_clock();

virtual BoardType get_board_type();
virtual BoardType get_board_type() = 0;

protected:
std::unique_ptr<PCIDevice> pci_device_;
Expand Down
1 change: 0 additions & 1 deletion device/api/umd/device/types/cluster_descriptor_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ inline BlackholeChipType get_blackhole_chip_type(const BoardType board_type, con
}
}

// TODO: add Wormhole and Grayskull board types to this function
inline BoardType get_board_type_from_board_id(const uint64_t board_id) {
uint64_t upi = (board_id >> 36) & 0xFFFFF;

Expand Down
1 change: 1 addition & 0 deletions device/api/umd/device/wormhole_implementation.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ static constexpr auto TLB_16M_OFFSET = tlb_offsets{

enum class arc_message_type {
NOP = 0x11, // Do nothing
GET_SMBUS_TELEMETRY_ADDR = 0x2C,
GET_AICLK = 0x34,
ARC_GO_BUSY = 0x52,
ARC_GO_SHORT_IDLE = 0x53,
Expand Down
6 changes: 6 additions & 0 deletions device/tt_device/grayskull_tt_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,10 @@ ChipInfo GrayskullTTDevice::get_chip_info() {
throw std::runtime_error("Reading ChipInfo is not supported for Grayskull.");
}

BoardType GrayskullTTDevice::get_board_type() {
throw std::runtime_error(
"Base TTDevice class does not have get_board_type implemented. Move this to abstract function once Grayskull "
"TTDevice is deleted.");
}

} // namespace tt::umd
6 changes: 0 additions & 6 deletions device/tt_device/tt_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -379,10 +379,4 @@ uint32_t TTDevice::get_clock() {
"TTDevice is deleted.");
}

BoardType TTDevice::get_board_type() {
throw std::runtime_error(
"Base TTDevice class does not have get_board_type implemented. Move this to abstract function once Grayskull "
"TTDevice is deleted.");
}

} // namespace tt::umd
13 changes: 10 additions & 3 deletions device/tt_device/wormhole_tt_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,23 @@ BoardType WormholeTTDevice::get_board_type() {
::std::vector<uint32_t> arc_msg_return_values = {0};
static const uint32_t timeout_ms = 1000;
uint32_t exit_code = get_arc_messenger()->send_message(
tt::umd::wormhole::ARC_MSG_COMMON_PREFIX | 0x2C, arc_msg_return_values, 0, 0, timeout_ms);
tt::umd::wormhole::ARC_MSG_COMMON_PREFIX |
(uint32_t)tt::umd::wormhole::arc_message_type::GET_SMBUS_TELEMETRY_ADDR,
arc_msg_return_values,
0,
0,
timeout_ms);

static constexpr uint64_t noc_telemetry_offset = 0x810000000;
uint64_t telemetry_struct_offset = arc_msg_return_values[0] + noc_telemetry_offset;

uint32_t board_id_lo;
uint32_t board_id_hi;
tt_xy_pair arc_core = tt::umd::wormhole::ARC_CORES[0];
read_from_device(&board_id_hi, arc_core, telemetry_struct_offset + 16, sizeof(uint32_t));
read_from_device(&board_id_lo, arc_core, telemetry_struct_offset + 20, sizeof(uint32_t));
static uint64_t board_id_hi_telemetry_offset = 16;
static uint64_t board_id_lo_telemetry_offset = 20;
read_from_device(&board_id_hi, arc_core, telemetry_struct_offset + board_id_hi_telemetry_offset, sizeof(uint32_t));
read_from_device(&board_id_lo, arc_core, telemetry_struct_offset + board_id_lo_telemetry_offset, sizeof(uint32_t));

return get_board_type_from_board_id(((uint64_t)board_id_hi << 32) | board_id_lo);
}
Expand Down

0 comments on commit 7d8239b

Please sign in to comment.