AI Foundry lab

Power management on the three lab machines, and other ways to stop the idle runaway

Covers Wed 7 Oct 2026 (week 41), 18:15–21:00 PDT: aifoundry1, aifoundry2 and aifoundry3 in the AI Foundry lab at Studio 45. Written Wed 7 Oct 2026 in answer to Roman's question in #community-lab at 18:28. Read-only checks on aifoundry1 and aifoundry3. aifoundry2 is off the network. Sources: the lab repo, the open firmware and the board's manual. The analysis of the runaway itself is on the 6 October page.

Roman's question: no power-management option was changed. On 6 October only Smart Fan 6 was touched on aifoundry2: CPU_FAN to Full Speed, copied to every header with TUNE ALL, then F10. Settings → Platform Power (AC BACK, ErP, Resume by Alarm) was never opened. The machine then booted twice and ran for 25 hours, so the fan change can't block a power-on.

Why aifoundry2 stayed dark tonight, most likely first:

  1. AC BACK is still at the board's factory default, Always Off. At about 18:16:40 all three machines lost mains power together. aifoundry1 and aifoundry3 came back on their own 40–70 s later, as they have after every cut on record (18 Sep, 30 Sep, 7 Oct). Setting aifoundry2's AC BACK to Always On has been on the visit list since before 2 October, and no visit has done it. Against this: aifoundry2 did come back after the 30 Sep cut, but Roman was on site that day and may have pressed its button.
  2. A boot stop nobody can see. For example a "Press F1" halt after a CMOS checksum error on a five-year-old coin cell, which would also silently undo the 6 October fan setting.
  3. The card holding the boot. After the 138 °C runaway it is in an unknown state. Against this: the same host booted twice with the card already bad on 2 and 6 October.
  4. Running but unreachable: Wi-Fi didn't connect, or the root filesystem dropped to a repair shell.

From outside these all look the same: the wired ports carry no address, and the boards have no remote console. Someone on site has to look first, then press.

The three machines side by side

aifoundry1aifoundry2aifoundry3Why it matters
Board, BIOSZ590 AORUS MASTER, F5 (Jun 2021)same board; BIOS not read from the machinesame board, F6 (Aug 2021)Nothing from F4 to F10 changes fan control, PCIe or power-loss behaviour; no reason to update now (F7 and later can't be rolled back)
CPUi7-11700Ki5-11600i7-11700Kaifoundry2 is the odd one
Comes back by itself after a power cutyes, every time on recordnot tonight; AC BACK never setyes, every time on recordThe leading reason aifoundry2 is dark
Remote power and consoleOne remote-controlled outlet switches all three together; no per-machine outlet, no remote console, no Wake-on-LAN (the network chip offers none), no management controllerAny remote power cycle hits all three, and only a visit sees a stuck boot
Chassis fan settingstock curve, follows the CPUevery header at Full Speed since 6 Octstock curve, follows the CPUOnly aifoundry2 was changed, and the setting lives only in its CMOS
Fan-fail warningoffoffoffNo machine reports a stopped header fan
Fan speeds visible from LinuxnononoA stopped fan shows only as the die heating at constant power
The card's own fancard 0's was found stuck and replaced on 2 Oct; card 1's originalnever inspected: the prime suspectnever inspectedPowered by the card, no speed sensor, invisible to everything
Card slotcard 0 in PCIEX16, card 1 in PCIEX8PCIEX8PCIEX8aifoundry2 and aifoundry3 share the slot, so the slot isn't the difference
PCIe power saving (ASPM)off (BIOS)off (same board, assumed)off (BIOS)Neither a cause nor a lever
Above 4G decodingonnot readonA CMOS clear turns it off, and then the card looks dead
Card firmwarecard 0: 1.4.1 (BL2 0.21.2); card 1: 1.2.0 (BL2 0.18.0)1.3.1 (BL2 0.20.0)1.3.1 (BL2 0.20.0)Four cards, three builds
What its firmware does to a hot idle cardcard 0 parks at 300 MHz and 398 mV: 18.6–20.8 W idle. Card 1: nothingnothing: the 65 °C loop is already at its floor, the safe state is a no-opnothing: its 0 W power limit wedges the governor, every throttle counter reads 0Only aifoundry1's card 0 has a real low-power idle
Static power limit (TDP)65 W65 W0 W, set at every boot by et-board-clock-guardThe driver reports 65 W for all four regardless
Idle card, 7 Octcard 0: 49–53 °C, 19–21 W; card 1: 53–59 °C, 30–34 W64 → 138 °C, then off the bus54–58 °C, 24–26 W
Other work a reboot interruptsa GitHub Actions runnerthe lab dashboard and history jobsa demo and a chatbot that launch card jobsThe dashboard froze at 17:50 because it runs on the machine that died

Other ways to stop the runaway, ranked

Three independent designers proposed 66 fixes from three angles: airflow, host software, and firmware. Two skeptics then attacked each one, one on the physics and one on the risk. Most of what survives buys recovery or warning rather than margin. Only three proposals move the tipping point itself, and their size is uncertain:

Only the card's fan, its firmware and better airflow move the tipping point

How much warmer the air at the card could get before the idle card runs away, gained by each fix (°C, the skeptics' corrected ranges)

0+5+10+15+20 °C Inspect / replace the card's fanif it's the fault 1.4.1-class firmware (low-power idle) A fan ducted into the card's fins For reference: 6 Oct Full Speed fans
proposed fix, rangealready done
#FixWhat it buysWho
1Inspect, and if needed replace, aifoundry2's card fan; clean the fins, clear the intake, record the part, stock two spares+9 to +20 °C of margin if the fan is the fault; otherwise about +5 °C, the 03:55 step back. No cut-offon site
2Photograph every BIOS page first, then set AC BACK = Always On; confirm ErP Disabled and Above 4G decoding Enabled, on all threeNo thermal effect. The machine returns by itself after a cut (five lab-wide cuts since July). This must come before any remote power planon site
3An alarm that doesn't live on the machine it watches: a step in implied cooling resistance, plus a die-temperature ladder, posted to DiscordWarning, not protection. Replayed on 7 Oct, the step rule fires at 03:55–04:40, 12–13 hours before the bus drop, with no false alarms over six healthy card-days. The ladder fires 2 hours ahead at 85 °C and 12 minutes ahead at 95 °Clab door
4One switched outlet per machine, a remote console with power control on aifoundry2, a UPS upstreamRecovery in about 3 minutes instead of a visit. Works only with fix 2. A remote console is what sees a stuck bootRoman to buy, on site to fit
5A fan on a board header, ducted into the card's fin stack, at Full Speed+4 to +9 °C, about half the first estimate. On a board header, a fan-fail warning can see iton site, about $30
6Measure the air at each card (the board's spare thermistor in EC_TEMP1, or a logging probe)No thermal effect, but it settles the biggest unknown: every margin above assumes the inlet temperatureon site
7Move aifoundry2 and aifoundry3 to a 1.4.1-class build, the one on aifoundry1's card 0, including its flash settings+6 to +10 °C, from the 300 MHz / 398 mV idle that 0.20.0's own floors can't reach. Vendor-gated; check read-only first whether it's code or flash settingsAinekko to supply and sign; lab to flash
8Say yes to Roman's per-sensor patch, with amendments: raw 12-bit readings of all 35 sensors, and don't serve the group that resets the peak-holdNo thermal effect: diagnosis, and the easiest first signed buildanswered separately
9One message to Ainekko: the signed 1.4.1 image and its rollback, the dead PMIC alarm, a real cut-off, the API traps (questions below)Unblocks fix 7 and any real cut-offYaroslav to Roman, Gianluca
10Write down the only recovery that works (the full cold reset), and gate any automatic action on a human until fixes 2 and 4 existA known path back, without a second outagelab door
11Fan-fail warning on populated headers only, once a remote console existsCatches a stopped board-header fan; can't see the card's own fan, and may halt booton site
12Out-of-tree it87 driver, read-only, for board fan speeds and slot temperaturesAttribution (which fan), not protection; risky enough to deferhost root
13Lab account in adm so kernel logs are readableaifoundry2's log of 16:46 is on its disk, but no lab account can read itRoman
14A UPS, and a rule: nobody cuts the shared strip to reset one machineProtects the disks (all three run the Samsung 980 PRO firmware with the known bug) and the uptime of the other twoRoman
15Fixed addresses on the wired ports, as a second diagnostic pathTells "running but off Wi-Fi" apart, from a siblinghost root
16Collector fixes: rename the peak-hold field, fsync each record, show the real TDPTruer records; nothing may ever trip on the peak-hold fieldlab door

Ideas that don't survive scrutiny

Both skeptics refuted each of these:

The next visit, in order

  1. Before touching aifoundry2: look and listen. Are the case and power-supply fans spinning? What does the board's POST-code display or its CPU, DRAM, VGA and BOOT lights show? That separates off from running-but-unreachable.
  2. Attach a monitor. A POST code, an F1 prompt or a repair shell answers the question. Photograph it.
  3. Press the power button, briefly, only if the machine is dark. Never hold it for 4 seconds. If it's running, get the kernel logs off it first.
  4. Never Clear CMOS or Load Optimized Defaults. Above 4G decoding reverts, and the card looks dead.
  5. In the BIOS, photograph before changing anything: the version; Platform Power (AC BACK, ErP, Resume by Alarm); IO Ports (Above 4G); every Smart Fan 6 page; PC Health Status with every fan's RPM and both slot temperatures. aifoundry2's current AC BACK value is the only test of the leading hypothesis.
  6. Then set AC BACK = Always On. Confirm ErP Disabled and Above 4G Enabled. If the fans are back on the stock curve, CMOS was lost: replace the coin cell and re-apply Full Speed. Save both profiles to a USB stick.
  7. Power down, pull aifoundry2's own plug (never the shared strip) and open the case. Photograph the card, its fan and the air path, and write down the fan's markings.
  8. Spin the card fan and every chassis fan by hand. Replace anything stiff, keep the old part, clean the fins, clear the intake.
  9. Fit a thermistor in the air ahead of the card, and a ducted fan on a board header. Set that header to Full Speed.
  10. Bring the card back with the full cold reset only. Watch for 60–90 minutes. Switch off above 85 °C.
  11. Test AC BACK on site: clean shutdown, pull the plug for 10 s, plug it back in. The machine should start by itself.
  12. No BIOS update on this visit. On aifoundry1 and aifoundry3, set AC BACK at the next reboot that was going to happen anyway.

Questions for Ainekko

  1. aifoundry1 card 0's 300 MHz / 398 mV idle: does it come from BL2 0.21.x code, or from that card's flash (its boot frequency and operating-point table)? If it's the flash, a firmware-only update onto the other cards gains nothing.
  2. Firmware signing: is the OTP signature "chicken bit" set on these parts? That decides whether the lab can ever boot its own image.
  3. The 1.4.1 image: please send the signed image that runs on card 0, with its update and rollback procedure. Is the version counter one-way?
  4. Fixes in 0.21.1 and 0.21.2: neither is in the public tree. Do they contain SW-21990 (the bounded voltage retry) and SW-22053?
  5. The PMIC alarm has never fired. The throttle counters read 0 through an 87 W pass and a 133 W runaway. Is its interrupt line routed on these boards? Why does the PMIC's temperature read 0?
  6. Master skips all thermal evaluation on an idle card. Is that intended? What is meant to protect one?
  7. A last-resort trip: would you accept one that calls pmic_force_power_off_on() above a hard ceiling, using a live maximum across the 34 sensors, on an idle card?
  8. Specs: is there any ET-SoC-1 airflow, inlet or junction-temperature specification? And what part is the card's own fan?
Sources and method
  • Hosts: read-only checks over ssh on aifoundry1 and aifoundry3, 18:35–19:00 PDT: DMI, /proc, /sys, systemd-analyze, last, tailscale status, the live collectors' records. No device node was opened and nothing was written. aifoundry2 has been unreachable since about 18:20, so its column comes from the lab repo, its collector's records to 16:48 and the 6 October visit record.
  • Card firmware: et-platform at ffca4cbb4 (the cards' BL2 0.20.0) and 836a4ab (newest), et-boards, and the lab repo's findings 14 and 16.
  • The board: Gigabyte's Z590 AORUS MASTER manual (rev 1002) and BIOS release notes.
  • Discord: #community-lab (Roman's messages of 7 Oct; the shared remote outlet, from earlier messages by Roman and Afonso Oliveira).
  • Method: 141 agents. Five surveys produced 225 facts; three designers proposed 66 fixes; two skeptics judged each fix, one on the physics, one on the risk; one synthesis. Margins use the model on the 6 October page; they are model estimates that move one-for-one with the assumed inlet temperature.