The original tip said 1000 mV is enough for 2150-2200 MHz on the BC-250 and
dismissed 1025-1075 mV curves as overvolted. That is correct on some
40 CU boards but not all: board verification on the live test board shows
its stable curve runs 1035 mV at 2150 and 1050 mV at 2200, exactly the
older-guide curve the tip dismissed.
Reframed as: start at 1000 mV, raise per-board only if stability tests
fail, never past ~1075 mV (drop the top frequency point instead).
Recommended workload list updated to use headless-friendly tools
(memtest_vulkan, llama-bench) since vkmark needs a display.
The BC-250 enumerates as /sys/class/drm/card0 on a typical install (no
secondary GPU). Verified live on Fedora 43, kernel 7.0.9, PCI 1002:13fe.
Many doc snippets hardcoded card1, so copy-paste failed on a stock single-
GPU board.
Replaced /sys/class/drm/card1/ with /sys/class/drm/card0/ across:
bios/overclocking.md, bios/vram.md, drivers/radv.md,
getting-started/quick-start.md, linux/{arch,bazzite,cachyos,debian,fedora}.md,
reference/quick-reference.md, system/{governor,sensors}.md,
troubleshooting/{boot,display,performance,stability}.md.
Existing card0-vs-card1 disclaimers preserved at governor.md L166/L503,
quick-start.md L78, bazzite.md L104, kernel.md L222 (and quick-reference.md
intro rewritten to lead with card0 + note the iGPU edge case).
The Configuration section showed an old flat schema (safe-points = [...] array,
[load_target] with min/max, [timing] with interval_ms) that does not parse
against the current smu branch. Anyone copying the example got a config the
governor rejected.
Replaced with the real section-based schema as shipped in upstream
default-config.toml and as found on a live BC-250
(/etc/cyan-skillfish-governor-smu/config.toml):
- [timing.intervals] with sample/adjust in microseconds
- [gpu-usage] / [gpu] / [dbus] (SMU-specific sections)
- [timing.ramp-rates], [timing] burst-samples/down-events
- [frequency-thresholds], [load-target] upper/lower as fractions
- [temperature] throttling/throttling_recovery in C
- [[safe-points]] as array of tables (frequency MHz, voltage mV)
Also updated three downstream snippets that used the same stale syntax:
the cap-the-curve example, the per-board voltage-bump example, the
governor-high-CPU polling-interval example, and the overclock step-2
config update.
TT section rewritten in the same schema (minus SMU-only sections; TT
goes through sysfs, not SMU firmware calls). Voltage-ceiling tip
(community-validated 1000 mV at 2150-2200 MHz) preserved.
The active upstream of cyan-skillfish-governor is filippor/cyan-skillfish-governor
(v0.4.6, May 2026, 27 stars), not Magnap/cyan-skillfish-governor (v0.1.3,
Aug 2025, 12 stars). Several install paths in the docs were pointing readers
at Magnap releases and telling them to wget a .deb that no longer exists in
the upstream release pipeline.
- system/governor.md: TT section repo link, SMU feature list (drop .deb/Nix
claims, mention tarball + COPR + AUR), Option 2 rewritten as tarball
install with scripts/install.sh, Option 3 build-from-source link updated.
- linux/cachyos.md: build-from-source link updated.
- linux/debian.md: Option 1 rewritten as tarball install.
- troubleshooting/performance.md: Debian quick-install line rewritten.
Magnap is preserved as historical credit in two developer-attribution lines
(SMU was originally Magnap, filippor maintains the active fork).
The SMU and TT example configs recommended 1025-1075 mV at 2175-2300 MHz.
Community testing on Discord and live verification on a 40 CU board
agree that 1000 mV holds 2150-2200 MHz under sustained load on stock
cooling, and that the extra voltage in the older curves only added
heat without buying stability.
- SMU config example: replaced the 2175/1025 and 2300/1075 points with
2150/1000 and 2200/1000, added a tip explaining the rationale and a
pointer to sustained-load testing
- TT config example: replaced 2175/1025 with 2150/1000 for consistency
- Crash troubleshooting: reordered to check temperatures first
(the most common real cause on stock cooling), reduce frequency
second, and only consider a small voltage bump as a last resort.
The old advice to bump 1000 -> 1050 was the wrong starting move
when most crashes are thermal-induced.
Key fixes:
- nct6687 for fan control (not nct6683 which is read-only)
- GPU is card1 not card0 in all sysfs paths
- Fan on pwm2/fan2 (Pump Fan header), not pwm1
- Vulkan 1.4.328 (not 1.3), Mesa 25.3.6 (not 25.2.4)
- cpupower doesn't work on BC-250 (removed recommendations)
- pp_dmu_clock -> pp_dpm_mclk
- ACPI fix marked as optional/experimental (not essential)
- amdgpu.sg_display=0 only needed for kernels < 6.10
- GPU voltage range 700-1129 mV (from OD_RANGE)
- Added CoolerControl installation instructions
- Expanded sensors.md with proper nct6687 setup guide
Troubleshooting and overclocking sections now show cyan-skillfish-governor-tt
as primary example with oberon-governor as alternative comment. Oberon-specific
sections (config, build-from-source, iostream fix) left as-is.
Discord criticism: oberon-governor references are outdated, cyan-skillfish-governor-tt
is the community standard. Removed duplicate oberon config examples from overclocking
page, removed contradictory dual-"Recommended" labels from governor page, updated
verification section to default to cyan-skillfish-governor-tt.
Governor fixes:
- filippor/bazzite oberon-governor crashes on kernel 6.17+ with
std::__ios_failure error when writing to pp_od_clk_voltage
- Updated to recommend @exotic-soc/oberon-governor which works correctly
- Added detailed troubleshooting section for iostream crash error
- Added fix instructions: remove broken package, install working one
- Note about GPU card number (card0 vs card1) in sysfs paths
Documentation cleanup:
- Removed non-existent #bios-help channel reference
- Removed r/BC250 subreddit reference (doesn't exist)
- Removed claim about pre-programmed BIOS chips being available
Tested on Fedora 43 with kernel 6.17.1 - governor now runs properly
and GPU scales from 1000MHz (idle) to 2000MHz (load).
- Remove unverified 980 MHz instability claim (no source found)
- Correct M.2 slot specification: PCIe Gen 2 x2 (not Gen 3)
- Add critical warning: 350 MHz governor config requires kernel patch
- Document governor crash with std::__ios_failure on stock kernels
- Instruct users to use min: 1000 MHz without kernel patch
Based on Discord feedback from community members questioning
documentation accuracy.
Applied final corrections based on rigorous verification of Discord feedback:
DISPLAY ADAPTERS (CRITICAL FIX):
- Fixed backwards recommendation: Passive adapters NOW recommended (not active)
- Passive: Reliable audio, $5-10, works for most users
- Active: Audio often broken, only for 4K @120Hz+
- Community: "Not sure why you wouldn't reccomend a passive adapter"
BIOS FLASHING (CRITICAL FIX):
- Removed fake "ZIP file" references (GitLab only has .ROM files)
- Added separate flashing utility download info (Discord forum thread)
- Community: "this only gives you the .rom file, there is no .zip"
- Clarified: ROM from GitLab, utility from Discord (two separate downloads)
COOLING GUIDE:
- Removed detailed Dremel/hacksaw fin cutting instructions
- Replaced with minimal warning about manual pull/tear method only
- Removed "screw fan into heatsink" references
- Community: "this cutting guide is not accurate, I wouldnt recommend any of those"
BIOS FLASHING:
- Removed AMIBCP/Smokeless section (not used by community)
- Community: "Lets not reccomend smokeless" / "AMIBCP is a bit of a meme"
GOVERNOR:
- Updated COPR instructions with correct repos
- Added warning about filippor oberon-governor core dumps
- Clarified: @exotic-soc for Oberon, filippor for cyan-skillfish
All issues from community review now addressed.
Build passes with --strict flag.
Fixed multiple issues identified by DeathStalker and Astrocast:
Hardware corrections:
- FSP500 model: FSP500-30AS (not FSP500-50FGBBI)
- Board length: 340mm/310mm (not ~200mm)
- Added Arctic P12 Pro to cooling (more available than Max)
- Power draw: Can exceed 235W with GPU frequency patch
GPU comparisons:
- Standardized to GTX 1660 Ti (removed inconsistent 3060 Ti refs)
VRAM allocation:
- Clarified 512MB setting is DYNAMIC (not a limit)
- Can allocate nearly full 16GB to GPU (~14GB+)
Software updates:
- Fedora 42/43: nomodeset no longer needed with working kernels
- COPR repos available for governors (Fedora/Bazzite)
- Added SteamOS to distro list (Mesa now updated)
- Added Ubuntu to supported distros
Thanks to DeathStalker and Astrocast for detailed feedback.