The wiki is being retired!
Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!
works fine with GNU/Linux, some ACPI issues with Windows needs to be fixed.
- 1 Lenovo ThinkPad X60
- 1.1 Installation and Flashing
- 1.2 Pre-compiled ROM images
- 1.3 Wifi chipsets
- 1.4 Status
- 1.5 proprietary components status
- 1.6 TODO
- 1.7 Text Mode
- 1.8 Enable backlight controls on X60 (with native gpu init instead of VGA ROM)
- 1.9 Features
- 1.10 Documentation
Lenovo ThinkPad X60
Except where noted all status items apply to:
- x60 tablet (the digitizer also works)
Aside from pre-sales configuration (display, processor speed, optional components) the three models appear identical. It is believed that they share a single schematic.
Installation and Flashing
Tutorial on Installation and flashing the x60 or t60:
Which used to be the main x60 page:
Pre-compiled ROM images
For easy installation, you do not need to build from source to flash coreboot on the ThinkPad X60/X60s/X60t.
The libreboot project has pre-compiled ROM images available which are updated regularly for this machine. These images already have the dd trick applied (for the bucts trick outlined in the link above) and the archives come with scripts to pre-patch flashrom.
By default, these machines typically come with an Intel wifi chipset which does not work at all without proprietary firmware blobs. These blobs are included in the Linux kernel on many distributions. Some (very rare) models come with an Atheros chipset that works without blobs. The Atheros and Intel chipsets also only support 802.11g networking.
After installing coreboot, you can replace the wifi chipset with an 802.11n chipset that works fully with free software, without needing proprietary software of any kind (in the kernel or otherwise).
|CPU works||OK||Core Duo Mobile (L2300), PBGA479|
|L1 cache enabled||OK|
|L2 cache enabled||OK|
|L3 cache enabled||N/A|
|Multiple CPU support||N/A|
|Dual channel support||OK|
|On-board IDE 3.5"||N/A|
|On-board IDE 2.5"||N/A|
|On-board Ethernet||OK||Intel 82573L|
|On-board Smartcard reader||N/A|
|On-board PCMCIA||OK||Ricoh rl5c476|
|On-board SD card reader||N/A|
|ISA add-on cards||N/A|
|Audio/Modem-Riser (AMR/CNR) cards||N/A|
|PCI add-on cards||N/A|
|Mini-PCI add-on cards||OK|
|Mini-PCI-Express add-on cards||Unknown|
|PCI-X add-on cards||N/A|
|AGP graphics cards||N/A|
|PCI Express x1 add-on cards||N/A|
|PCI Express x2 add-on cards||N/A|
|PCI Express x4 add-on cards||N/A|
|PCI Express x8 add-on cards||N/A|
|PCI Express x16 add-on cards||N/A|
|PCI Express x32 add-on cards||N/A|
|HTX add-on cards||N/A|
|Legacy / Super I/O|
|Serial port 1 (COM1)||OK||located in Ultrabase X6|
|Serial port 2 (COM2)||N/A|
|Infrared||WIP||Submited for review|
|Sensors / fan control||OK|
|CPU frequency scaling||OK|
|Other powersaving features||OK|
|Nonstandard LEDs||OK||LEDs are controlled by Embedded Controller (EC). Working without special support.|
|High precision event timers (HPET)||OK|
|Random number generator (RNG)||N/A|
|Wake on modem ring||Unknown|
|Wake on LAN||Unknown|
|Wake on keyboard||Unknown|
|Wake on mouse||Unknown|
|Tablet Touchscreen||OK||x60 tablet wacom "penabled"|
|thinkpad_acpi module compatibility||OK||modprobe thinkpad_acpi works|
proprietary components status
- CPU Microcode (optional?) - works fine without. See http://download.intel.com/design/mobile/SPECUPDT/30922214.pdf
- VGA option rom (optional): Native graphics initialization (free replacement) is also available and merged in the master repo. Note that the replacement doesn't work yet with seabios but works with grub(as a payload) or libpayload based payloads. SeaBIOS can be used with SeaVGABIOS (coreboot linear framebuffer option in seabios menuconfig) but the native graphics implementation currently lacks INT 10H and VBT.
- EC(Embedded Controller) => you do not have to touch it(just leave it where it is)
Non-free components replacements
Replace the non-free VGA option rom by making native graphics init work.submited for review. (native graphics available in master)
- Create a Native graphics<->VGA option rom. SeaVGABIOS (part of SeaBIOS) might be the answer. INT 10H and VBT are missing in native graphics.
Make backlight work without the non-free option rom.See 
Windows currently doesn't boot (STOP A5 error)
Windows 7 was tested and fails to boot at the moment.
The native graphics implementation lacks INT 10H and VBT, and GRUB cannot boot it. Booting with SeaBIOS+SeaVGABIOS results in graphical corruption (and no boot).
Booting with SeaBIOS and the VGA ROM (vbios) can be used to boot it, but booting ends with the message outlined here: STOP A5
More information can be found here
When using native graphics instead of the VBIOS, you can enable Text Mode in menuconfig, under Display.
Disable 'Keep VESA Framebuffer'. This is for booting payloads like MemTest86+ which expect text-mode graphics.
Use this patch.
Enable backlight controls on X60 (with native gpu init instead of VGA ROM)
This is one way to get backlight controls working. Another method is shown in changeset 6731 on review.coreboot.org. If you use this, also apply this patch to fix uneven backlight levels: patch
- Add support for more batteries in ACPI.
- Make the wifi card and/or the laptop produce less heat.
- Sometimes some dock USB port aren't initialized => fix that
- Fix that warning:
[ 14.566817] ACPI Warning: 0x00000400-0x0000041f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130117/utaddress-251)
By using that advise:
<phcoder> GNUtoo-x60: in this case it looks like same range is declared twice in DSDT/SSDT
Without the VGA optiorn rom nvramtool says:
# ./nvramtool -a nvramtool: coreboot table not found. coreboot does not appear to be installed on this system. Scanning for the table produced the following results: 0 valid signatures were found with bad header checksums. 0 valid headers were found with bad table checksums.
Fortunately there is a workarround:
# ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -a boot_option = Fallback last_boot = Fallback baud_rate = 115200 debug_level = Emergency hyper_threading = Enable nmi = Disable # Bad value -> boot_devices boot_default = 0x40 cmos_defaults_loaded = Yes lpt = Disable volume = 0xc tft_brightness = 0xf first_battery = Primary bluetooth = Disable
"whining" (buzzing) noise when idle
Use "idle=halt" (higher power consumption) or "processor.max_cstate=2" (higher power consumption, but not as bad) kernel parameter in GRUB.
Note: Boot without these options, and there will be a high pitched noise coming from the board when the system is idle. A better workaround is to boot without these options, and run sudo powertop --auto-tune
Alternatively run powertop without arguments. Under "tunables", set all options to "Good" settings. This kills the noise. By using this, power consumption falls lower: near the levels in Lenovo BIOS (better battery life).
cbmem console Howto
When configuring coreboot with "make menuconfig" Go in console:
[*] Send console output to a CBMEM buffer (0x20000) Room allocated for console output in CBMEM (0xc00) Room allocated for console output in Cache as RAM
- The touchscreen serial port is on irq 5 at port 0x0200. Some additional info from a x61t wacom