Difference between revisions of "Board:lenovo/x60"

From coreboot
Jump to: navigation, search
(removed reference to libreboot rom's (already mentioned on the install page). cleaned up wifi section.)
(removed unneeded info. moved info about static noise to the TODO section)
Line 131: Line 131:
 
More information can be found [http://www.coreboot.org/ACPI#STOP_0xa5 here]
 
More information can be found [http://www.coreboot.org/ACPI#STOP_0xa5 here]
  
 +
===high pitched noise from the board during low power states===
 +
 +
During low power state (cstate 3), a high-pitched "humming" noise eminates from the board. Some discussion has been made about this; suggestions include "using an oscilliscope in clever ways" (to detect where the noise is coming from to debug the issue). There are some workarounds:
 +
 +
Use "idle=halt" (higher power consumption) or "processor.max_cstate=2" (higher power consumption, but not as bad) kernel parameter in GRUB. These increase heat and power consumption.
 +
 +
Another option (for increased battery life and lower temperatures) is to use '''powertop --auto-tune''', or set 'Tunables' in powertop (without any parameters).
  
 
== Text Mode ==
 
== Text Mode ==
Line 145: Line 152:
  
 
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: [http://paste.debian.net/plain/122548 patch]
 
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: [http://paste.debian.net/plain/122548 patch]
 
  
 
=== Other things ===
 
=== Other things ===
Line 155: Line 161:
 
By using that advise:
 
By using that advise:
 
  <phcoder> GNUtoo-x60: in this case it looks like same range is declared twice in DSDT/SSDT
 
  <phcoder> GNUtoo-x60: in this case it looks like same range is declared twice in DSDT/SSDT
 
== Features ==
 
=== nvramtool ===
 
Without the VGA option 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:
 
Console  --->
 
Enable it:
 
[*] 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
 
  
 
== Documentation ==
 
== Documentation ==
 
* The touchscreen serial port is on irq 5 at port 0x0200. [http://forum.bongofish.co.uk/index.php?topic=2307.0 Some additional info from a x61t wacom]
 
* The touchscreen serial port is on irq 5 at port 0x0200. [http://forum.bongofish.co.uk/index.php?topic=2307.0 Some additional info from a x61t wacom]

Revision as of 13:49, 23 September 2014

works fine with GNU/Linux, some ACPI issues with Windows needs to be fixed.

Lenovo ThinkPad X60

Except where noted all status items apply to:

  • x60
  • x60s
  • 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:

Board:lenovo/x60/Installation

Wifi chipsets

Lenovo BIOS has a whitelist of approved PCI ID's for wifi cards. Coreboot does not, so you are free to use any wifi chipset of your choosing once coreboot is installed.

The Libreboot distribution lists Wifi chipsets not needing proprietary software to work.

Status

Device/functionality Status Comments
CPU
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
RAM
EDO N/A
SDRAM N/A
SO-DIMM N/A
DDR N/A
DDR2 OK
DDR3 N/A
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 Untested
On-board FireWire N/A
On-board Smartcard reader N/A
On-board CompactFlash N/A
On-board PCMCIA OK Ricoh rl5c476
On-board Wifi N/A
On-board Bluetooth N/A
On-board SD card reader N/A
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
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
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 WIP Submited for review
PC speaker N/A
DiskOnChip N/A
Input
Trackpoint N/A
Touchpad N/A
Fn Hotkeys N/A
Fingerprint Reader N/A
Laptop
Docking VGA N/A
Docking LAN N/A
Docking USB N/A
Docking Audio N/A
Docking Displayport N/A
Thinklight N/A
Webcam N/A
Miscellaneous
Sensors / fan control OK
Hardware watchdog N/A
SMBus OK
CAN bus N/A
CPU frequency scaling OK
Other powersaving features OK
ACPI 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
TPM Unknown
Flashrom OK See Lenovo_x60x
Laptop specific
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)

TODO

Non-free components replacements

  • Replace the non-free VGA option rom by making native graphics init work. (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 [1]

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

high pitched noise from the board during low power states

During low power state (cstate 3), a high-pitched "humming" noise eminates from the board. Some discussion has been made about this; suggestions include "using an oscilliscope in clever ways" (to detect where the noise is coming from to debug the issue). There are some workarounds:

Use "idle=halt" (higher power consumption) or "processor.max_cstate=2" (higher power consumption, but not as bad) kernel parameter in GRUB. These increase heat and power consumption.

Another option (for increased battery life and lower temperatures) is to use powertop --auto-tune, or set 'Tunables' in powertop (without any parameters).

Text Mode

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)

See x60 notes and t60 notes.

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

Other things

  • 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

Documentation