![]() |
TT-System-Firmware APIs 19.16.99
Tenstorrent Firmware
|
Tenstorrent Grendel die-to-die (D2D) firmware loading APIs. More...


Go to the source code of this file.
Functions | |
| int | tt_d2d_reset_release (const struct device *dev) |
| Deassert a D2D tile's subsystem resets, in hardware order. | |
| int | tt_d2d_load_fw (const struct device *dev, const uint8_t *img, size_t img_size) |
| Load firmware into a D2D tile, leaving the Rocket halted. | |
| int | tt_d2d_start (const struct device *dev) |
| Release a D2D tile's Rocket so loaded firmware begins executing. | |
| int | tt_d2d_wait_link (const struct device *dev, k_timeout_t timeout) |
| Wait for this end of the link to finish training. | |
| uint32_t | tt_d2d_progress_code (const struct device *dev) |
| Firmware training progress code (drop d2d_api_fw_progress_codes.h). | |
Tenstorrent Grendel die-to-die (D2D) firmware loading APIs.
Sequence: reset_release (before the CCE PLL switch, straps sample the current clock) -> load_fw (Rocket stays halted) -> start (both ends close together; sideband sync is off on emu) -> wait_link.
Cold reset and firewalls are chip-wide and are not done here. Until they are, load_fw() fails the SRAM probe with -ENODEV.
Load firmware into a D2D tile, leaving the Rocket halted.
| dev | D2D tile device |
| img | Firmware image |
| img_size | Size of img in bytes. Multiple of 4; must not overrun the configuration block at the top of SRAM. |
| 0 | on success |
| -EINVAL | if img is NULL, empty, or not a multiple of 4 bytes |
| -ENOSPC | if img would overrun the configuration block |
| -ENODEV | if the tile does not answer a write to its SRAM |
| -EIO | if the image read back from SRAM does not match img |
Firmware training progress code (drop d2d_api_fw_progress_codes.h).
| dev | D2D tile device |
| int tt_d2d_reset_release | ( | const struct device * | dev | ) |
Deassert a D2D tile's subsystem resets, in hardware order.
| dev | D2D tile device |
| 0 | on success |
| int tt_d2d_start | ( | const struct device * | dev | ) |
Release a D2D tile's Rocket so loaded firmware begins executing.
| dev | D2D tile device |
| 0 | on success |
| int tt_d2d_wait_link | ( | const struct device * | dev, |
| k_timeout_t | timeout ) |
Wait for this end of the link to finish training.
Polls the firmware progress code in SRAM (link-layer status is not modelled on emu). Both ends must already have been started.
| dev | D2D tile device |
| timeout | How long to wait, or K_FOREVER |
| 0 | if the link trained |
| -EIO | if the firmware reported a training failure |
| -ETIMEDOUT | if it did neither |