Hasty Briefsbeta

Bilingual

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.