Porting the ThinkPad X61 to Coreboot
5 hours ago
- #coreboot
- #thinkpad
- #reverse engineering
- The author has a long history with ThinkPad laptops and free software, leading to interest in libreboot and coreboot.
- He accumulated various ThinkPad models over years, but the x61 generation was missing from his collection.
- The x61 uses GM965 northbridge and ICH8 southbridge, similar to supported platforms but requiring reverse engineering.
- AI-assisted reverse engineering using LLMs (like Claude Opus) significantly sped up the porting process.
- Traditional tools like inteltool, lspci, acpidump, ectool were used to dump information from the vendor BIOS.
- Phoenix BIOS was split into modules; AI agent utilized ghidra-cli and radare2 for analysis.
- Multiple versions of raminit were found in the firmware, likely for recovery purposes.
- LLMs required extensive hand-holding and corrections based on prior knowledge of similar platforms.
- Issues included GPIO mux for SMBUS, memory controller frequencies, register sizes, and CAS encoding confusion.
- Testing involved a docking station with RS232 UART and flashing with a clip on the SOIC8 chip.
- libgfxinit was ported to GM965 with minor adjustments, leveraging Linux driver knowledge.
- Upstreaming the code revealed many errors, corrected by thorough review, including wrong registers and hardcoded assumptions.
- AI-assisted reverse engineering transforms months of work into weeks, potentially making closed firmware like Intel FSP feasible to reverse engineer.
- The platform was also ported to fstart, a Rust-based coreboot/u-boot alternative, currently in experimental phase.