7#ifndef TENSTORRENT_MSGQUEUE_H_
8#define TENSTORRENT_MSGQUEUE_H_
14#define NUM_MSG_QUEUES 4
15#define MSG_QUEUE_SIZE 4
16#define MSG_QUEUE_POINTER_WRAP (2 * MSG_QUEUE_SIZE)
17#define REQUEST_MSG_LEN 8
18#define RESPONSE_MSG_LEN 8
20#define MSG_TYPE_INDEX 0
21#define MSG_TYPE_MASK 0xFF
22#define MSG_TYPE_SHIFT 0
24#define MESSAGE_QUEUE_STATUS_MESSAGE_RECOGNIZED 0xff
25#define MESSAGE_QUEUE_STATUS_SCRATCH_ONLY 0xfe
1165#define REGISTER_MESSAGE(msg, func) \
1166 const STRUCT_SECTION_ITERABLE(msgqueue_handler, registration_for_##msg) = { \
counter_cmd
Counter commands.
Definition msgqueue.h:66
counter_bank
Available counter banks.
Definition msgqueue.h:76
dvfs_counter_index
Counter indices within COUNTER_BANK_DVFS.
Definition msgqueue.h:84
eth_reset_err
Error codes in response data[1] for TT_SMC_MSG_TOGGLE_ETH_RESET.
Definition msgqueue.h:632
gddr_reset_err
Error codes returned in response data[1] for TT_SMC_MSG_TOGGLE_GDDR_RESET.
Definition msgqueue.h:593
@ COUNTER_CMD_FREEZE
Set the frozen bitmask; frozen counters stop counting.
Definition msgqueue.h:72
@ COUNTER_CMD_GET
Read counter values and status.
Definition msgqueue.h:68
@ COUNTER_CMD_CLEAR
Clear selected counters and their overflow bits.
Definition msgqueue.h:70
@ COUNTER_BANK_DVFS
DVFS loop counters indexed by dvfs_counter_index.
Definition msgqueue.h:80
@ COUNTER_BANK_THROTTLERS
Throttler counters indexed by aiclk_arb_max.
Definition msgqueue.h:78
@ DVFS_COUNTER_COUNT
Number of counters in this bank.
Definition msgqueue.h:107
@ DVFS_COUNTER_MAX_PASS_US
Longest duration of a single DVFS pass, in microseconds.
Definition msgqueue.h:105
@ DVFS_COUNTER_DROPPED_TICKS
DVFS timer ticks that expired while the previous pass was still queued.
Definition msgqueue.h:91
@ DVFS_COUNTER_MAX_PERIOD_US
Longest gap between consecutive DVFS passes, in microseconds.
Definition msgqueue.h:98
@ ETH_RESET_ERR_CFG_SIZE
Definition msgqueue.h:639
@ ETH_RESET_ERR_SERDES_FW_LOAD
Definition msgqueue.h:642
@ ETH_RESET_ERR_SERDES_FW_LOOKUP
Definition msgqueue.h:641
@ ETH_RESET_ERR_CFG_LOOKUP
Definition msgqueue.h:638
@ ETH_RESET_ERR_FW_LOOKUP
Definition msgqueue.h:636
@ ETH_RESET_ERR_NO_FLASH
Definition msgqueue.h:635
@ ETH_RESET_ERR_SERDES_CFG_LOAD
Definition msgqueue.h:644
@ ETH_RESET_ERR_FW_LOAD
Definition msgqueue.h:637
@ ETH_RESET_ERR_SERDES_CFG_LOOKUP
Definition msgqueue.h:643
@ ETH_RESET_ERR_INVALID_MASK
Definition msgqueue.h:633
@ ETH_RESET_ERR_CFG_LOAD
Definition msgqueue.h:640
@ ETH_RESET_ERR_CABLE_FAULT
Definition msgqueue.h:634
@ GDDR_RESET_ERR_MASKED
Definition msgqueue.h:596
@ GDDR_RESET_ERR_HARVESTED
Definition msgqueue.h:595
@ GDDR_RESET_ERR_POWERDOWN
Definition msgqueue.h:599
@ GDDR_RESET_ERR_INVALID_INST
Definition msgqueue.h:594
@ GDDR_RESET_ERR_BIST
Definition msgqueue.h:598
@ GDDR_RESET_ERR_TRAINING
Definition msgqueue.h:597
void process_message_queues(void)
Definition msgqueue.c:332
uint8_t(* msgqueue_request_handler_t)(const union request *req, struct response *rsp)
Definition msgqueue.h:1158
int msgqueue_request_push(uint32_t msgqueue_id, const union request *request)
Definition msgqueue.c:113
int msgqueue_response_push(uint32_t msgqueue_id, const struct response *response)
Definition msgqueue.c:153
int msgqueue_request_pop(uint32_t msgqueue_id, union request *request)
Definition msgqueue.c:133
void msgqueue_register_handler(uint32_t msg_code, msgqueue_request_handler_t handler)
Definition msgqueue.c:342
#define REQUEST_MSG_LEN
Definition msgqueue.h:17
int msgqueue_response_pop(uint32_t msgqueue_id, struct response *response)
Definition msgqueue.c:173
int init_msgqueue(void)
Definition msgqueue.c:544
#define RESPONSE_MSG_LEN
Definition msgqueue.h:18
Host request to adjust the AICLK speed.
Definition msgqueue.h:164
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:171
uint8_t command_code
The command code corresponding to TT_SMC_MSG_AICLK_GO_BUSY or TT_SMC_MSG_AICLK_GO_LONG_IDLE.
Definition msgqueue.h:168
Host request to start or stop AICLK frequency sweep.
Definition msgqueue.h:182
uint32_t sweep_low
Low end of sweep range in MHz.
Definition msgqueue.h:192
uint32_t sweep_high
High end of sweep range in MHz.
Definition msgqueue.h:195
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:189
uint8_t command_code
The command code corresponding to TT_SMC_MSG_AISWEEP_START or TT_SMC_MSG_AISWEEP_STOP.
Definition msgqueue.h:186
Host request to change ASIC state.
Definition msgqueue.h:668
uint8_t command_code
The command code corresponding to TT_SMC_MSG_ASIC_STATE0 or TT_SMC_MSG_ASIC_STATE3.
Definition msgqueue.h:674
Submessage for enabling/disabling the GDDR thermal-trip action.
Definition msgqueue.h:837
uint32_t enabled
0 to disable, 1 to enable
Definition msgqueue.h:839
Submessage for setting the periodic telemetry update interval.
Definition msgqueue.h:851
uint32_t interval_ms
0 to restore the default, or the update interval in ms
Definition msgqueue.h:853
Submessage for enabling/disabling kernel throttler at AICLK floor.
Definition msgqueue.h:817
uint32_t enabled
0 to disable, 1 to enable
Definition msgqueue.h:819
Submessage for setting kernel throttler stop NOPs frequency.
Definition msgqueue.h:827
uint32_t frequency
0 to restore FW control, or frequency in MHz where NOPs stop (200-1400)
Definition msgqueue.h:829
Generic characterization message for internal SMC use.
Definition msgqueue.h:879
union characterisation_submsg_data submsg_data
The submessage payload (interpretation depends on submsg_ID)
Definition msgqueue.h:887
uint8_t pad[2]
Two bytes of padding.
Definition msgqueue.h:885
uint8_t submsg_ID
Submessage ID identifying which payload structure is active.
Definition msgqueue.h:883
uint8_t command_code
The command code corresponding to TT_SMC_MSG_CHARACTERISATION.
Definition msgqueue.h:881
Characterization submessage to set host-requested minimum frequency floor.
Definition msgqueue.h:807
uint32_t value
Either 1 (restore) or frequency in MHz (200-1400)
Definition msgqueue.h:809
Host request to confirm SPI flash operation.
Definition msgqueue.h:979
uint32_t challenge_data
Challenge data for confirmation.
Definition msgqueue.h:987
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:984
uint8_t command_code
The command code corresponding to TT_SMC_MSG_CONFIRM_FLASHED_SPI.
Definition msgqueue.h:981
Host request for generic counter operations.
Definition msgqueue.h:126
uint8_t command
The command to execute, of type counter_cmd.
Definition msgqueue.h:134
uint8_t bank_index
For GET: counter index within counter_bank; ignored for CLEAR/FREEZE.
Definition msgqueue.h:140
uint8_t counter_bank
The counter bank to operate on, of type counter_bank.
Definition msgqueue.h:137
uint8_t reserved[1]
Reserved; host must set to zero.
Definition msgqueue.h:143
uint8_t command_code
The command code corresponding to TT_SMC_MSG_COUNTER.
Definition msgqueue.h:128
uint16_t mask
CLEAR (bits to reset) and FREEZE (frozen bitmask)
Definition msgqueue.h:146
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:131
Host request for debug NOC translation.
Definition msgqueue.h:383
uint8_t pcie_instance_override
Set to 1 to use pcie instance from the pcie_instance field, or 0 to get the pcie instance from FW tab...
Definition msgqueue.h:396
uint16_t bad_tensix_cols
Bitmask of bad tensix columns.
Definition msgqueue.h:399
uint8_t skip_eth_hi
hi byte of skip_eth field
Definition msgqueue.h:408
uint8_t enable_translation
Enable or disable NOC translation.
Definition msgqueue.h:388
uint8_t command_code
The command code corresponding to TT_SMC_MSG_DEBUG_NOC_TRANSLATION.
Definition msgqueue.h:385
uint8_t bad_gddr
Instance number of the bad GDDR. 0xFF if all GDDR are good.
Definition msgqueue.h:402
uint8_t pcie_instance
The PCIE instance.
Definition msgqueue.h:391
uint8_t skip_eth_low
low byte of skip_eth field
Definition msgqueue.h:405
Host request to ping DMC.
Definition msgqueue.h:415
uint8_t command_code
The command code corresponding to TT_SMC_MSG_PING_DM.
Definition msgqueue.h:417
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:420
bool legacy_ping
Use legacy ping mode.
Definition msgqueue.h:426
Host request to read or write SPI EEPROM.
Definition msgqueue.h:701
uint8_t buffer_mem_type
Buffer memory type (0 = CSM scratch buffer)
Definition msgqueue.h:708
uint32_t num_bytes
Number of bytes to transfer.
Definition msgqueue.h:717
uint8_t pad[2]
Two bytes of padding.
Definition msgqueue.h:711
uint8_t command_code
The command code corresponding to TT_SMC_MSG_READ_EEPROM or TT_SMC_MSG_WRITE_EEPROM.
Definition msgqueue.h:705
uint32_t csm_addr
CSM buffer address for the data.
Definition msgqueue.h:720
uint32_t spi_address
SPI flash address to read from or write to.
Definition msgqueue.h:714
Host request to reset and reinitialize one or more ETH tiles.
Definition msgqueue.h:617
uint32_t eth_inst_mask
Bitmask of ETH instances to reset (bit N -> ETH N)
Definition msgqueue.h:625
uint8_t command_code
Command code TT_SMC_MSG_TOGGLE_ETH_RESET.
Definition msgqueue.h:619
uint8_t pad[3]
Padding.
Definition msgqueue.h:622
uint8_t no_fw_reload
If 1, tile/RISC reset only; skip SPI FW/cfg reload and ReleaseEthReset.
Definition msgqueue.h:628
Host request to lock flash writes.
Definition msgqueue.h:966
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:971
uint8_t command_code
The command code corresponding to TT_SMC_MSG_FLASH_LOCK.
Definition msgqueue.h:968
Host request to unlock flash for writing.
Definition msgqueue.h:917
uint8_t command_code
The command code corresponding to TT_SMC_MSG_FLASH_UNLOCK.
Definition msgqueue.h:919
uint8_t pad[2]
Two bytes of padding.
Definition msgqueue.h:929
uint8_t num_variable_words
Number of valid words in verified_variables.
Definition msgqueue.h:925
uint32_t verified_variables[1]
Board variables the flash writer has verified against the image it is about to write.
Definition msgqueue.h:936
Host request to force AICLK to a specific frequency.
Definition msgqueue.h:203
uint8_t command_code
The command code corresponding to TT_SMC_MSG_FORCE_AICLK.
Definition msgqueue.h:205
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:208
uint32_t forced_freq
Frequency to force in MHz, or 0 to disable.
Definition msgqueue.h:211
Host request to force the fan speed.
Definition msgqueue.h:150
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:155
uint8_t command_code
The command code corresponding to TT_SMC_MSG_FORCE_FAN_SPEED.
Definition msgqueue.h:152
uint32_t raw_speed
The raw speed of the fan to set, as a percentage from 0 to 100.
Definition msgqueue.h:158
Host request to force the VDD core voltage.
Definition msgqueue.h:313
uint32_t forced_voltage
The voltage to force in millivolts, or 0 to disable forcing.
Definition msgqueue.h:321
uint8_t command_code
The command code corresponding to TT_SMC_MSG_FORCE_VDD.
Definition msgqueue.h:315
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:318
Host request to toggle GDDR reset.
Definition msgqueue.h:581
uint32_t gddr_inst
GDDR controller instance (0-7)
Definition msgqueue.h:589
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:586
uint8_t command_code
The command code corresponding to TT_SMC_MSG_TOGGLE_GDDR_RESET.
Definition msgqueue.h:583
Host request to get the current AICLK frequency and control mode.
Definition msgqueue.h:222
uint8_t command_code
The command code corresponding to TT_SMC_MSG_GET_AICLK.
Definition msgqueue.h:224
Host request to get frequency curve from voltage.
Definition msgqueue.h:355
uint8_t command_code
The command code corresponding to TT_SMC_MSG_GET_FREQ_CURVE_FROM_VOLTAGE.
Definition msgqueue.h:357
uint32_t input_voltage_mv
The input voltage in mV.
Definition msgqueue.h:363
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:360
Host request to get voltage curve from frequency.
Definition msgqueue.h:369
uint8_t command_code
The command code corresponding to TT_SMC_MSG_GET_VOLTAGE_CURVE_FROM_FREQ.
Definition msgqueue.h:371
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:374
uint32_t input_freq_mhz
The input frequency in MHz.
Definition msgqueue.h:377
Host request to get voltage.
Definition msgqueue.h:295
uint8_t command_code
The command code corresponding to TT_SMC_MSG_GET_VOLTAGE.
Definition msgqueue.h:297
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:300
uint32_t slave_addr
I2C slave address (P0V8_VCORE_ADDR or P0V8_VCOREM_ADDR)
Definition msgqueue.h:303
Host request for I2C message transaction.
Definition msgqueue.h:465
uint8_t num_read_bytes
Number of bytes to read.
Definition msgqueue.h:479
uint8_t write_data[24]
Write data buffer (up to 24 bytes)
Definition msgqueue.h:485
uint8_t i2c_mst_id
I2C master ID.
Definition msgqueue.h:470
uint8_t i2c_slave_address
I2C slave address (7-bit)
Definition msgqueue.h:473
uint8_t num_write_bytes
Number of bytes to write.
Definition msgqueue.h:476
uint8_t command_code
The command code corresponding to TT_SMC_MSG_I2C_MESSAGE.
Definition msgqueue.h:467
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:482
Host request to blink the LED.
Definition msgqueue.h:493
uint8_t command_code
The command code corresponding to TT_SMC_MSG_BLINKY.
Definition msgqueue.h:495
uint8_t is_blinking
Whether LED should be blinking or not. Set to 1 to start continuous blinking, 0 to stop blinking.
Definition msgqueue.h:503
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:498
Definition msgqueue.h:1160
msgqueue_request_handler_t handler
Definition msgqueue.h:1162
uint32_t msg_type
Definition msgqueue.h:1161
Host request to initiate a PCIe DMA transfer.
Definition msgqueue.h:530
uint8_t command_code
The command code corresponding to TT_SMC_MSG_PCIE_DMA_CHIP_TO_HOST_TRANSFER or TT_SMC_MSG_PCIE_DMA_HO...
Definition msgqueue.h:535
uint8_t pad[2]
Two bytes of padding.
Definition msgqueue.h:541
uint8_t completion_data
Completion data written to the MSI completion address.
Definition msgqueue.h:538
uint64_t msi_completion_addr
MSI completion address on the host.
Definition msgqueue.h:553
uint64_t host_addr
Host-side address for the transfer.
Definition msgqueue.h:550
uint64_t chip_addr
Chip-side address for the transfer.
Definition msgqueue.h:547
uint32_t transfer_size_bytes
Transfer size in bytes.
Definition msgqueue.h:544
Host request to adjust the power settings.
Definition msgqueue.h:230
uint16_t reserved
Reserved.
Definition msgqueue.h:266
struct power_setting_rqst::@364260271035044055320364336346370330326342300150 power_settings_array
uint8_t power_flags_valid
The number of bits in the power_flags_bitfield that are valid.
Definition msgqueue.h:235
uint16_t future_use
Future use flags currently not supported.
Definition msgqueue.h:263
uint8_t power_settings_valid
The number of fields that are valid in the power_settings_array.
Definition msgqueue.h:238
uint16_t l2cpu_enable
1 - Enable L2CPU cores 0 - Disable L2CPU cores
Definition msgqueue.h:260
uint8_t command_code
The command code corresponding to TT_SMC_MSG_POWER_SETTING.
Definition msgqueue.h:232
uint16_t tensix_enable
1 - Enable Tensix cores 0 - Disable Tensix cores
Definition msgqueue.h:255
struct power_setting_rqst::@140120167246117267343245340300140063053015126121 power_flags_bitfield
The list of On/Off style power flags SMC supports toggling.
uint16_t mrisc_phy_power
1 - Set MRISC power setting to Phy wakeup 0 - Set MRISC power setting to Phy Powerdown
Definition msgqueue.h:250
uint16_t max_ai_clk
1 - Set AICLK to Busy 0 - Set AICLK to Idle
Definition msgqueue.h:245
Host request to read a process detector.
Definition msgqueue.h:729
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:734
uint8_t command_code
The command code corresponding to TT_SMC_MSG_READ_PD.
Definition msgqueue.h:731
uint32_t delay_chain
Delay chain selection.
Definition msgqueue.h:737
uint32_t sensor_id
Process detector instance ID.
Definition msgqueue.h:740
Host request to read a temperature sensor.
Definition msgqueue.h:683
uint8_t command_code
The command code corresponding to TT_SMC_MSG_READ_TS.
Definition msgqueue.h:685
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:688
uint32_t sensor_id
Temperature sensor instance ID.
Definition msgqueue.h:691
Host request to read a voltage monitor.
Definition msgqueue.h:749
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:754
uint32_t sensor_id
Voltage monitor instance ID.
Definition msgqueue.h:757
uint8_t command_code
The command code corresponding to TT_SMC_MSG_READ_VM.
Definition msgqueue.h:751
Host request to reinitialize Tensix NOC programming and tile configuration.
Definition msgqueue.h:895
uint8_t command_code
The command code corresponding to TT_SMC_MSG_REINIT_TENSIX.
Definition msgqueue.h:897
Host request to report scratch-only status.
Definition msgqueue.h:783
uint8_t command_code
The command code corresponding to TT_SMC_MSG_REPORT_SCRATCH_ONLY.
Definition msgqueue.h:785
Definition msgqueue.h:1154
uint32_t data[8]
Definition msgqueue.h:1155
Host request to send PCIE MSI.
Definition msgqueue.h:448
uint8_t pad[2]
2 bytes of padding
Definition msgqueue.h:456
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SEND_PCIE_MSI.
Definition msgqueue.h:450
uint8_t pcie_inst
The PCIE instance 0 or 1.
Definition msgqueue.h:453
uint32_t vector_id
MSI vector ID.
Definition msgqueue.h:459
Host request to set the ASIC fmax.
Definition msgqueue.h:791
uint8_t restore_default
Restore the ASIC host fmax to the default value.
Definition msgqueue.h:799
uint32_t asic_fmax
The ASIC host fmax to set in MHz.
Definition msgqueue.h:797
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:795
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SET_ASIC_HOST_FMAX.
Definition msgqueue.h:793
Host request to set the message queue serial number.
Definition msgqueue.h:434
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SET_LAST_SERIAL.
Definition msgqueue.h:436
uint32_t serial_number
The serial number to set in the message queue header.
Definition msgqueue.h:442
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:439
Host request to set the TDP limit.
Definition msgqueue.h:763
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:768
uint32_t tdp_limit
The TDP limit to set in watts.
Definition msgqueue.h:771
uint8_t restore_default
Restore the TDP limit to the default value.
Definition msgqueue.h:774
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SET_TDP_LIMIT.
Definition msgqueue.h:765
Host request to set voltage.
Definition msgqueue.h:278
uint32_t slave_addr
I2C slave address (P0V8_VCORE_ADDR or P0V8_VCOREM_ADDR)
Definition msgqueue.h:286
uint32_t voltage_in_mv
Voltage to set in millivolts.
Definition msgqueue.h:289
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:283
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SET_VOLTAGE.
Definition msgqueue.h:280
Host request to set watchdog timeout.
Definition msgqueue.h:942
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SET_WDT_TIMEOUT.
Definition msgqueue.h:944
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:947
uint32_t timeout_ms
The watchdog timeout value in milliseconds.
Definition msgqueue.h:958
Host request to switch clock scheme.
Definition msgqueue.h:341
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SWITCH_CLK_SCHEME.
Definition msgqueue.h:343
uint32_t scheme
Clock scheme to switch to
Definition msgqueue.h:349
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:346
Host request to switch VOUT control.
Definition msgqueue.h:327
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:332
uint32_t source
VOUT control source.
Definition msgqueue.h:335
uint8_t command_code
The command code corresponding to TT_SMC_MSG_SWITCH_VOUT_CONTROL.
Definition msgqueue.h:329
Host request for test message.
Definition msgqueue.h:509
uint32_t test_value
Test input value that will be incremented in the response.
Definition msgqueue.h:517
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:514
uint8_t command_code
The command code corresponding to TT_SMC_MSG_TEST.
Definition msgqueue.h:511
Host request to reset a single Tensix tile.
Definition msgqueue.h:562
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:567
uint8_t noc_y
NOC0 Y coordinate of the target tile.
Definition msgqueue.h:573
uint8_t noc_x
NOC0 X coordinate of the target tile.
Definition msgqueue.h:570
uint8_t command_code
The command code corresponding to TT_SMC_MSG_TOGGLE_SINGLE_TENSIX_RESET.
Definition msgqueue.h:564
Host request to toggle Tensix reset.
Definition msgqueue.h:905
uint8_t command_code
The command code corresponding to TT_SMC_MSG_TOGGLE_TENSIX_RESET.
Definition msgqueue.h:907
Host request to trigger a chip reset.
Definition msgqueue.h:654
uint32_t reset_level
Reset level: 0 = ASIC-only reset, 3 = ASIC + M3 (DMC) reset.
Definition msgqueue.h:662
uint8_t command_code
The command code corresponding to TT_SMC_MSG_TRIGGER_RESET.
Definition msgqueue.h:656
uint8_t pad[3]
Three bytes of padding.
Definition msgqueue.h:659
Host request to setup/release FW logging.
Definition msgqueue.h:997
uint8_t version
Host version for tt_pcie_log protocol (for SETUP)
Definition msgqueue.h:1005
uint8_t pad
One byte of padding.
Definition msgqueue.h:1008
uint32_t buffer_addr_lo
Lower 32 bits of host buffer IOVA (for SETUP)
Definition msgqueue.h:1011
uint8_t subcmd
tt_pcie_log sub-command: 1=SETUP, 2=RELEASE
Definition msgqueue.h:1002
uint32_t buffer_addr_hi
Upper 32 bits of host buffer IOVA (for SETUP)
Definition msgqueue.h:1014
uint32_t buffer_size
Buffer size in bytes (for SETUP)
Definition msgqueue.h:1017
uint8_t command_code
The command code corresponding to TT_SMC_MSG_TT_PCIE_LOG.
Definition msgqueue.h:999
Union of all possible characterization submessage payloads.
Definition msgqueue.h:857
struct char_throttle_enabled_submsg throttler_enabled
Enable/disable kernel throttler at AICLK floor.
Definition msgqueue.h:861
struct characterisation_set_fmin_submsg fmin_value
Set host-requested minimum frequency floor.
Definition msgqueue.h:859
uint8_t raw_data[4]
Generic fallback for raw access.
Definition msgqueue.h:870
struct char_telemetry_interval_submsg telemetry_interval
Set the periodic telemetry update interval.
Definition msgqueue.h:867
struct char_throttle_stop_freq_submsg throttler_stop_freq
Set frequency limit for stopping kernel throttler.
Definition msgqueue.h:863
struct char_gddr_therm_trip_enabled_submsg gddr_therm_trip_enabled
Enable/disable GDDR thermal-trip action.
Definition msgqueue.h:865
A tenstorrent host request.
Definition msgqueue.h:1021
struct force_vdd_rqst force_vdd
A force VDD voltage request.
Definition msgqueue.h:1055
struct set_last_serial_rqst set_last_serial
A set last serial request.
Definition msgqueue.h:1076
struct get_freq_curve_from_voltage_rqst get_freq_curve_from_voltage
A get frequency curve from voltage request.
Definition msgqueue.h:1064
struct set_voltage_rqst set_voltage
A set voltage request.
Definition msgqueue.h:1049
struct toggle_single_tensix_reset_rqst toggle_single_tensix_reset
A single Tensix reset request.
Definition msgqueue.h:1099
struct flash_lock_rqst flash_lock
A flash lock request.
Definition msgqueue.h:1141
struct test_rqst test
A test request.
Definition msgqueue.h:1088
struct dmc_ping_rqst dmc_ping
A dmc ping request.
Definition msgqueue.h:1073
struct eth_tile_reset_rqst eth_tile_reset
An ETH tile reset request.
Definition msgqueue.h:1105
struct report_scratch_only_rqst report_scratch_only
A report scratch-only request.
Definition msgqueue.h:1129
struct flash_unlock_rqst flash_unlock
A flash unlock request.
Definition msgqueue.h:1138
struct gddr_reset_rqst gddr_reset
A GDDR reset request.
Definition msgqueue.h:1102
struct counter_rqst counter
A generic counter request.
Definition msgqueue.h:1132
struct get_voltage_rqst get_voltage
A get voltage request.
Definition msgqueue.h:1052
struct get_voltage_curve_from_freq_rqst get_voltage_curve_from_freq
A get voltage curve from frequency request.
Definition msgqueue.h:1067
struct asic_state_rqst asic_state
An ASIC state transition request.
Definition msgqueue.h:1094
struct switch_clk_scheme_rqst switch_clk_scheme
A switch clock scheme request.
Definition msgqueue.h:1061
struct confirm_flashed_spi_rqst confirm_flashed_spi
A confirm SPI flash request.
Definition msgqueue.h:1144
struct aisweep_rqst aisweep
An AICLK sweep start or stop request.
Definition msgqueue.h:1037
struct force_fan_speed_rqst force_fan_speed
A force fan speed request.
Definition msgqueue.h:1031
uint32_t data[8]
The interpretation of the request as an array of uint32_t entries.
Definition msgqueue.h:1023
struct eeprom_rqst eeprom
An EEPROM read or write request.
Definition msgqueue.h:1120
struct set_asic_host_fmax_rqst set_asic_host_fmax
A set ASIC host fmax request.
Definition msgqueue.h:1123
struct switch_vout_control_rqst switch_vout_control
A switch VOUT control request.
Definition msgqueue.h:1058
struct set_wdt_timeout_rqst set_wdt_timeout
A set watchdog timeout request.
Definition msgqueue.h:1135
struct set_tdp_limit_rqst set_tdp_limit
A set TDP limit request.
Definition msgqueue.h:1117
struct tt_pcie_log_rqst tt_pcie_log
A tt_pcie_log setup/release request.
Definition msgqueue.h:1147
struct characterisation_msg_rqst characterisation_msg
A set ASIC host fmin request.
Definition msgqueue.h:1126
struct force_aiclk_rqst force_aiclk
A force AICLK frequency request.
Definition msgqueue.h:1040
struct pcie_dma_transfer_rqst pcie_dma_transfer
A PCIe DMA transfer request.
Definition msgqueue.h:1091
struct i2c_message_rqst i2c_message
An I2C message request.
Definition msgqueue.h:1082
struct aiclk_set_speed_rqst aiclk_set_speed
An AICLK set speed request.
Definition msgqueue.h:1034
struct read_vm_rqst read_vm
A voltage monitor read request.
Definition msgqueue.h:1111
struct trigger_reset_rqst trigger_reset
A trigger reset request.
Definition msgqueue.h:1097
struct read_pd_rqst read_pd
A process detector read request.
Definition msgqueue.h:1114
uint8_t command_code
The interpretation of the request as just the first byte representing command code.
Definition msgqueue.h:1028
struct read_ts_rqst read_ts
A temperature sensor read request.
Definition msgqueue.h:1108
struct debug_noc_translation_rqst debug_noc_translation
A debug NOC translation request.
Definition msgqueue.h:1070
struct get_aiclk_rqst get_aiclk
A get AICLK frequency request.
Definition msgqueue.h:1043
struct power_setting_rqst power_setting
A power setting request.
Definition msgqueue.h:1046
struct led_blink_rqst blink
The led blinking request.
Definition msgqueue.h:1085
struct send_pcie_msi_rqst send_pci_msi
A Send PCIE MSI request.
Definition msgqueue.h:1079