Liberating the ASRock BC-250.
Project Ariel is Cachenetics' open-source effort to reverse
engineer and liberate the ASRock BC-250 - a Zen 2 + RDNA accelerator on a harvested AMD
console-class APU (codename Ariel, PCI 1002:13FE), built by the tens of thousands for a
crypto workload that evaporated and now sold as e-waste: 16 GB of unified memory and a real
GPU, locked down and underclocked as shipped.
We tear down the firmware and the silicon - mapping SMU mailboxes, freeing the full GPU, retraining memory, and lifting the factory clock and power limits - to unlock hardware the vendor left crippled. The result is a board that punches well above its throwaway price: console-class compute for the cost of e-waste. All open, all reproducible, all documented.
- arieltune - the unified BC-250 tuning suite. One tabbed TUI + CLI (WIKI / BIOS / APU / MEM): browse the firmware surface, tune GDDR6 memory timings, unlock and tune the APU (40-CU liberation, CPU/GPU/CU control), and read the hardware-verified BC-250 manual. Built on reverse-engineered SMU mailboxes and a liberated amdgpu.
Runs on a BC-250 (or an Ariel-APU board) under Linux x86-64. You need a Rust
toolchain to build (rustup.rs) and root for any actuation.
git clone https://github.com/cachenetics/project-ariel.git
cd project-ariel
./install.sh # build (release) + install to /usr/local/bin
arieltune # launch the TUI (opens on WIKI)install.sh installs one binary (arieltune), a short at alias, and
aputune/memtune/biostune/wikitune compat symlinks. Jump straight to a tab with
arieltune apu (or bios / mem / wiki); everything is also scriptable from the CLI.
See arieltune/README.md for the full build/usage guide.
These tools write hardware - SMU registers, CMOS/NVRAM, SPI flash, memory training. A
bad value can fail to POST and need a power-cycle or CMOS-clear. Read each tool's
SECURITY.md and its inline safety notes first; firmware and memory tuning are done at your
own risk, on hardware you own.
This suite is the work of the BC-250 community. It exists because people did the hard measurement on real hardware and shared it.
Core of this release:
- nightcarnage - the liberation suite, end to end: the amdgpu kernel patch series (13-28), the 8-core CPU unlock with its safety gates and Core Map UI, the out-of-tree driver fixes (nct6687, smiflash), and the userland tuning tools, plus the C refactors of the KIQ/GFXOFF work and the clean-blade validation behind every patch.
- GabriWar (Gabriel Duarte Guerra) - the compute-TLB fix (patch 25,
flush-by-runlist), the only invalidation measured to actually work on this silicon; the SMU core-mask unlock primitive; the ROCm kernel hardening series; and the MEC firmware disassembly / fault corpus. - Fabian (with Dani) - the original GFXOFF-disable and KIQ-bypass fixes (patches 13/14/15) and the production research repo they stand on.
- FilippoR - the 8-core telemetry / core-count helper (patch 28) and the userspace gfxclk-query work.
- neoney - the KIQ bypass discovery and PASID-flush investigation (patch 21).
Standing on prior BC-250 community work, with thanks:
- the bc250-collective - mrfrakes and dantistnfs - who started it all: the original board bring-up, SMU mailboxing, and enablement groundwork everything here builds on.
- duggasco - the 40-CU enumeration/dispatch research on Cyan Skillfish.
- WinnieLV - the live CU manager whose
apply_target_masksregister sequence this ports. - ethkey, the ASRock
bc250_memcfg/ RobinMemTiming work - the memory-timing tooling the MEM tab is built on; and walkjivefly for taking the first plunge. - anrp, wtfuzz - additional findings; and humvee and the wider BC-250 Discord community for the testing, reports, and momentum that keep this effort moving.
Full license attribution is in THIRD_PARTY_NOTICES and the per-subtree NOTICE files; see
arieltune/README.md for the detailed technical acknowledgments.
The whole project is GPL-2.0-only, matching upstream cachenetics/project-ariel.
Kernel-derived parts (the amdgpu liberation patch series and kernel modules, under
arieltune/) inherit the Linux kernel's GPL-2.0 — the same license, no conflict.
Third-party attribution: see THIRD_PARTY_NOTICES and the per-subtree NOTICE files
under arieltune/crates/.