v19.15.0ο
We are pleased to announce the release of TT System Firmware version 19.15.0 π₯³π.
Major enhancements with this release include:
Second-source SPI flash support on Blackhole Galaxy, with a flash-tool interlock so an image that cannot drive the fitted EEPROM cannot be written.
Galaxy bin6 board revision (
0x202), for UBB parts that permit one harvested DRAM instance.Persistent
bh-modoverride of per-instance PCIe max generation.Fix of inverted Tensix clock-gate enable:
feature_enable.cg_ennow actually enables clock gating (lower idle / light-load Tensix power on production tables).
Whatβs Changedο
Blackholeο
Second-source SPI Flashο
Blackhole Galaxy boards may now ship a second-source SPI EEPROM instead of the original Micron MT25QU512ABB. Firmware selects the matching flash configuration at boot from a mux of known parts, and reports the fitted JEDEC ID in telemetry.
Supported parts (JEDEC ID as 0x00MMTTCC):
JEDEC ID |
Part |
|---|---|
|
Micron MT25QU512ABB |
|
Macronix MX25U51245G |
|
GigaDevice GD25LF512MF |
|
Winbond W25Q51RW-Q/-N, W25Q512NW-IQ/IN |
An unrecognized chip still comes up on a single-I/O fallback so the board remains readable and reflashable.
Writing an MT25-only image onto a second-source board would leave firmware that cannot read itself back, including recovery. This release therefore adds a three-way interlock between the firmware bundle, tt-flash, and the running firmware:
Each image in the bundle carries a
compat-variables.jsonlisting the board variables it constrains and the values it supports. The first variable is SPI EEPROM JEDEC ID (BOARD_VAR_SPI_JEDEC_ID, telemetry tag 80).tt-flash compares those constraints to the value reported by the running firmware and refuses an incompatible image.
TT_SMC_MSG_FLASH_UNLOCKcarries a bitmap of the variables tt-flash verified. Firmware refuses to unlock if a required variable was not checked, so an older tt-flash that does not know about board variables cannot write a second-source board.
Original Micron MT25 boards are exempt from the JEDEC-ID requirement, so existing tt-flash continues to work on those boards. Second-source boards require a tt-flash that implements the interlock and a 19.15 (or later) bundle. See the 19.15 Migration Guide and the board variables documentation.
Boardsο
New board revision: Galaxy bin6 (
tt_blackhole@galaxy_bin6, board type0x202). SPI config is based on Galaxy Rev C withproduct_spec_harvesting.dram_disable_countset to 1 (one harvested DRAM instance). The SMC overlay reuses Rev C GDDR parameters.
Persistent SPI Flash Parametersο
Expose
pci0_property_table.max_pcie_speedandpci1_property_table.max_pcie_speedtobh-mod, valid values{0, 1, 2, 3, 4, 5}.0is unconstrained (Gen 5 default).bh-mod resrestores the cmfwcfg value. Set the instance whosepcie_modeis EP.
Powerο
Fix accidentally inverted Tensix clock-gate enable.
EnableTensixCG()now applies clock gating whenfeature_enable.cg_enis set, and skips it when the flag is clear. Every production firmware table shipscg_en: true, so Tensix clock gating takes effect on upgrade. Expect lower idle and light-load Tensix power; full-load draw is largely unchanged.
Telemetryο
Publish the SPI flash JEDEC ID as
TAG_FLASH_JEDEC_ID(tag 80), packed as0x00MMTTCC(MMmanufacturer,TTmemory type,CCcapacity).0if the ID could not be read.Add characterization submessage
TT_SUB_MSG_SET_TELEMETRY_UPDATE_INTERVALto set the periodic telemetry interval (10β1000 ms;0restores the 100 ms default).
Loggingο
Publish error-level logs to the host (KMD) immediately rather than waiting for the next periodic flush.
Drain queued logs when a GDDR thermal trip is processed, so the trip context is visible on the host.
Host Interfaceο
TT_SMC_MSG_FLASH_UNLOCKnow accepts a verified-board-variable bitmap. The reply always reports the variables this board requires indata[1]. Seeflash_unlock_rqstinmsgqueue.h.Board type extracted from
board_idis auint32_t(was narrower), covering up to 5-hex-digit types such as Galaxy bin6.
Driversο
Add a flash mux that probes JEDEC-ID-matched candidate configurations at boot and selects the first that accepts the fitted chip.
Drive Tensix and Ethernet tile/RISC resets through the Zephyr reset API, with complete Blackhole reset DT coverage.
DMC: initial MCTP/PLDM support.
Toolingο
Blackhole recovery flashloader probe table adds Macronix MX25U51245G, GigaDevice GD25LF512MF, and Winbond W25Q51RW.
Remove the unused
tt-consolebinary from tooling.SMC pytest waits 0.7 s after a power-state toggle and polls the power delta after the low-power settle, so the power-state tests are less timing-sensitive.
Documentationο
Document board variables and the flash interlock under
doc/services/board_variables/.
Grendelο
New SoC/board bring-up:
tt_keraunos,tt_mmk, Mimir remote boot, and K-SMC-bl0p5 (with BL0p5 logging).Msgqueue gains a mailbox IRQ doorbell backend, used by MMK.
Register-name shim for Keraunos.
Migration guideο
An overview of required and recommended changes to make when migrating from the previous v19.14.0 release can be found in 19.15 Migration Guide.
Full ChangeLogο
The full ChangeLog from the previous v19.14.0 release can be found at the link below.
https://github.com/tenstorrent/tt-system-firmware/compare/v19.14.0β¦v19.15.0