From coreboot
Revision as of 21:58, 12 June 2013 by GNUtoo (Talk | contribs)

Jump to: navigation, search

Lenovo ThinkPad X60s


Device/functionality Status Comments
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
Multi-core support OK
Hardware virtualization OK
Dual channel support OK
ECC support N/A
On-board Hardware
On-board IDE 3.5" N/A
On-board IDE 2.5" N/A
On-board SATA OK
On-board SCSI N/A
On-board USB OK
On-board VGA OK
On-board ethernet OK Intel 82573L
On-board audio OK
On-board modem N/A
On-board FireWire N/A
On-board smartcard reader N/A
On-board CompactFlash N/A
On-board PCMCIA OK Ricoh rl5c476
Add-on slots/cards
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
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
Floppy N/A
Serial port 1 (COM1) OK located in Ultrabase X6
Serial port 2 (COM2) N/A
Parallel port N/A
PS/2 keyboard N/A
PS/2 mouse N/A
Game port N/A
Infrared N/A
PC speaker N/A
DiskOnChip N/A
Sensors / fan control OK
Hardware watchdog N/A
CAN bus N/A
CPU frequency scaling OK
Other powersaving features OK
Reboot OK
Poweroff OK
Suspend 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
Flashrom OK See Lenovo_x60x

proprietary components status

  • CPU Microcode (optional?)
  • VGA option rom (optional): without it you will get no graphics during early boot, until the kernel initializes the intel graphic card
  • 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.
  • Create a Native graphics<->VGA option rom.
  • Make backlight work without the non-free option rom.

Other things

  • Add support for more batteries in ACPI.
  • Make the wifi card and/or the laptop produce less heat.
  • Finish and merge support for thinkpad_acpi linux kernel module
  • 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

cbmem console

To get cbmem console working you need the non-free i915 option rom or native graphics(doesn't work yet, don't use). Even with a dummy VGA option rom it fails:

[root@X60 cbmem]# ./cbmem -c -VVV
Looking for coreboot table at 0
Mapping 1MB of physical memory at 0x0.
Unmapping 1MB of virtual memory at 0xb7463000.
Looking for coreboot table at f0000
Mapping 1MB of physical memory at 0xf0000.
Failed to mmap /dev/mem: Operation not permitted
[root@X60 cbmem]# dmesg -c
[26300.943482] Program cbmem tried to access /dev/mem between f0000->1f0000.

Using fmem doesn't work either:

[root@X60 cbmem]# ./cbmem -c -VVV
Looking for coreboot table at 0
Mapping 1MB of physical memory at 0x0.
Unmapping 1MB of virtual memory at 0xb74ae000.
Looking for coreboot table at f0000
Mapping 1MB of physical memory at 0xf0000.
Unmapping 1MB of virtual memory at 0xb74ae000.
No console found in coreboot table.
[root@X60 cbmem]# dmesg -c
[26404.984342] fmem init_module 449: init
[26404.984349] fmem find_symbols 439: set guess_page_is_ram: c10440b0


Go in console:

Console  --->

Enable it:

[*] Send console output to a CBMEM buffer
(0x10000) Room allocated for console output in CBMEM
(0xc00) Room allocated for console output in Cache as RAM

thinkpad_acpi compatibility

First cherry-pick the commits that permit thinkpad_acpi to work:

git fetch refs/changes/56/1556/4 && git cherry-pick FETCH_HEAD
git fetch refs/changes/57/1557/4 && git cherry-pick FETCH_HEAD
git fetch refs/changes/03/3403/3 && git cherry-pick FETCH_HEAD

Dmidecode from the BIOS says:

BIOS Information
	Vendor: LENOVO
	Version: 7BETC7WW (2.08 )

So in make menuconfig go in

General setup  --->

And modify Local version string accordinly

(7BETC7WW (2.08 )) Local version string

Then locate the following in dmidecode:

System Information
	Manufacturer: LENOVO
	Product Name: 1707Y8W
	Version: ThinkPad X60
	Serial Number: L3BY949

Then in

Mainboard  --->

do that:

(L3BY949) Serial number
(ThinkPad X60) Version number
(LENOVO) BIOS table vendor string
(ThinkPad X60 / X60s) BIOS table part number string

Then configure and build coreboot as usual

To modprobe the module use that:

modprobe thinkpad_acpi force_load=1 debug=0xffff fan_control=1 experimental=1