
マイコンのファームウェアは通常、ハードウェアの初期化からアプリケーションまでを1つの塊として書き込む。Rompass氏が公開した「OpenC6 BIOS」は、この構造を変える。ESP32-C6にPCのBIOSのような層を設け、ハードウェアの初期化とアプリケーション(ペイロード)を分離した。ペイロードはRAMやフラッシュに動的にロードでき、Wi-Fi経由で差し替えられる。GitHubで公開されている。
ESP32-C6はEspressifのRISC-Vマイコンで、160MHzのメインコア(HPコア)と20MHzの低消費電力コア(LPコア)を搭載する。OpenC6 BIOSはこの2つのコアを明確に役割分担させた。HPコアがBIOSとペイロードを実行し、LPコアはPCのBMC(ベースボード管理コントローラー)のように独立して動作する。電源ボタンの監視、ウォッチドッグタイマー、アウトオブバンド管理をLPコアが担い、メインコアがフリーズしてもリセットできる。
BIOSの設定画面はWi-Fi経由でブラウザーからアクセスする。PCの青い画面を模したレトロなUIが表示され、Wi-Fiの接続先やPXEサーバーのURLを設定できる。ペイロードの読み込みにはPXE(ネットワークブート)方式を採用しており、PC上でPythonのHTTPサーバーを立ち上げ、コンパイル済みのペイロードをWi-Fi経由でESP32-C6に送り込む。
ファームウェア更新にはA/B OTAを採用し、新しいBIOSが起動に失敗した場合はLPコアのウォッチドッグが検知してハードウェアリセットをかけ、前のバージョンに自動でロールバックする。文鎮化を防ぐ仕組みだ。電源ボタンの操作体系もPCに似ており、短押しで起動、3秒長押しで設定画面、5秒長押しでハードリセットになる。
プロジェクトはまだ開発途上で、7コミットの段階だ。カスタムzRAM圧縮アルゴリズムやオープンソースのファイルシステムなど、今後追加したい機能のバウンティボードも公開されている。

