Ratchet – 一款內建MCP伺服器的BIOS刷寫工具,專為AI代理設計
Ratchet是一款用Rust編寫的硬體除錯與快閃記憶體程式設計工具包,專為CH341A和CH347 USB程式設計器設計。其核心功能包括SPI快閃記憶體程式設計和BIOS分析,並支援I2C、UART、1-Wire、JTAG、SWD、CAN等多種協議。該工具整合了MCP(模型上下文協議)伺服器,允許AI代理直接控制硬體操作,如讀取、寫入、驗證和修復BIOS晶片。目前為預釋出版本,需從原始碼安裝。
Ratchet 是一款由 Rust 編寫的硬體除錯與快閃記憶體程式設計工具包,專為 CH341A 和 CH347 USB 程式設計器設計。其核心功能集中在 SPI 快閃記憶體程式設計和 BIOS 分析,為從端到端驅動實際矽片提供了完整路徑。此外,它還包含經過單元測試的協議層(I2C、UART、1-Wire、被動 SPI 嗅探、JTAG、SWD、CAN)、目標 MCU 程式設計器(AVR ISP、STK500/Arduino 引導載入程式、24Cxx 和 93xxx EEPROM、ESP32/ESP8266、透過 SWD 和 AN3155 UART 的 STM32)、ARM 除錯介面(ADIv5、Cortex-M 暫停/恢復/單步、支援 ELF 的記憶體窺探)、JTAG IDCODE 和 BSDL 邊界掃描、邏輯分析器模型(支援 Saleae/sigrok 匯出)以及 Bus Pirate/slcan CAN 橋接器。不過,並非所有功能都已連線到實際硬體;每個命令的狀態標記為 [live]、[offline] 或 [n/w](未連線)。規則是:任何沒有實際傳輸通道的命令都會以非零退出並顯示明確資訊,絕不會偽造成功。
Ratchet 完全用 Rust 編寫,生成單個自包含二進位制檔案,使用自定義 libusb FFI 和手寫 JSON-RPC MCP 伺服器,無需 Node 或 Python 執行時。它在 SPI 快閃記憶體路徑上替代了 AsProgrammer 和 NeoProgrammer,並覆蓋了通常由 flashrom、avrdude、esptool、stm32flash 和 OpenOCD 分別處理的功能:原生 USB、映象分析、診斷知識庫,以及內建的 AI 代理 MCP 伺服器。
目前 Ratchet 處於預釋出階段,尚未釋出任何 GitHub Release,因此唯一的安裝方式是從原始碼編譯。當前支援的實際硬體操作(透過 CLI 和 MCP)包括:SPI 快閃記憶體和 BIOS 的完整端到端操作(狀態檢測、識別、讀取、寫入、驗證、擦除、區域擦除、空白檢查、SFDP、防寫狀態、完全修復和完全備份);透過 CH341A 位碰撞或 CH347 原生方式進行的 I2C 操作(掃描、讀寫、24Cxx EEPROM 讀寫);透過 CH347 JTAG 引擎進行的 JTAG IDCODE 掃描(CH341A 不支援)。後端自動選擇:首先探測 CH347,然後 CH341A,最後回退到模擬模式(帶警告),也可透過環境變數強制模擬。所有協議使用統一的開放匯流排介面,在無裝置時返回錯誤而非靜默回退。
離線工具包括:I2C 嗅探(解碼捕獲的時序)、JTAG BSDL 解析、邏輯分析匯出、序列埠列舉、REPL 互動式終端,以及分析、差異比較、校驗和、晶片資訊、搜尋、後解碼和電壓參考等命令。尚未連線到實際硬體的功能包括:UART、1-Wire、SWD、AVR、Microwire EEPROM、ESP、STM32、邏輯分析捕獲、Bus Pirate 和 CAN。這些命令的協議邏輯已實現並透過模擬測試,但尚未編寫對應的 CH341A/CH347 傳輸介面卡,它們會以非零退出或返回 JSON-RPC 錯誤,絕不會偽造成功。
破壞性路徑經過強化:短 USB 讀取視為硬錯誤而非靜默填充零;擦除和寫入拒絕防寫的矽片、未知容量的晶片以及靜默選擇的模擬後端;4 位元組地址模式在使用後始終退出;全範圍讀取在單個片選斷言內流式傳輸。SPI 寫入路徑透過 LoopbackFlash 測試匯流排在無硬體情況下驗證,該匯流排模擬 CH341A USB 幀後的 SPI NOR 晶片。模擬後端確保在無裝置連線時仍可在 CI 中測試 SPI 快閃記憶體表面。目前共有 472 個單元測試和整合測試透過。
安裝過程需要 Rust 1.82+ 和 libusb-1.0,可透過 cargo 從原始碼安裝。提供了詳細的 BIOS 修復指南,包括必要的硬體(CH341A 或 CH347 程式設計器、SOIC-8/16 測試夾)、注意事項(電壓檢查)、以及從備份到寫入的完整步驟。特別強調寫入前務必備份,並且寫入會自動建立時間戳備份,在擦除前進行逐頁程式設計,並輪詢寫入中位。寫入命令會拒絕全 0xFF 或全 0x00 的映象,以及大於晶片容量的映象。
總而言之,Ratchet 是一個功能強大且安全的 BIOS 刷寫工具,其內建的 MCP 伺服器為 AI 代理提供了硬體控制能力,適合需要自動化硬體除錯和程式設計的場景。