Difference between revisions of "Board:lenovo/t60"

From coreboot
Jump to: navigation, search
(libre-ated T60)
Line 97: Line 97:
 
* VGA option rom (optional): Native graphics initialization (free replacement) is also available with [http://review.coreboot.org/#/c/5345 this patch] that is under review. 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.  
 
* VGA option rom (optional): Native graphics initialization (free replacement) is also available with [http://review.coreboot.org/#/c/5345 this patch] that is under review. 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)
 
* EC(Embedded Controller) =>  you do not have to touch it(just leave it where it is)
 +
 +
== Building the ROM without proprietary blobs ==
 +
 +
This basically means:
 +
* No microcode updates
 +
* Native graphics (replacement for the proprietary VBIOS / VGA Option ROM)
 +
* GRUB2 payload
 +
 +
In this configuration, only GNU/Linux is known to work. If you plan to use other operating systems, you might be out of luck.
 +
 +
Download coreboot like usual:
 +
<pre>
 +
git clone http://review.coreboot.org/coreboot
 +
cd coreboot
 +
</pre>
 +
At the time of writing for (for these instructions), the following git revision was used:
 +
<pre>
 +
git reset --hard 9310df8d0351842e7bb9efe3cabc0ff82ec99c53
 +
</pre>
 +
Apply the following patches in this order:
 +
<pre>
 +
# Enable T60 native graphics
 +
git fetch http://review.coreboot.org/coreboot refs/changes/45/5345/9 && git cherry-pick FETCH_HEAD
 +
# Enable text-mode graphics for T60
 +
git fetch http://review.coreboot.org/coreboot refs/changes/50/7050/2 && git cherry-pick FETCH_HEAD
 +
 +
# If you want legacy brightness controls (if using this, make sure not to include the ACPI brightness patch below)
 +
git fetch http://review.coreboot.org/coreboot refs/changes/51/7051/1 && git cherry-pick FETCH_HEAD
 +
 +
# OR if you want ACPI brightness controls (if using this, make sure not to include the legacy brightness patch above):
 +
git fetch http://review.coreboot.org/coreboot refs/changes/31/6731/7 && git cherry-pick FETCH_HEAD
 +
# Fix uneven backlight levels (for ACPI brightness controls):
 +
git fetch http://review.coreboot.org/coreboot refs/changes/49/7049/1 && git cherry-pick FETCH_HEAD
 +
# Apply this patch to fix compilation:
 +
wget http://paste.debian.net/plain/125769
 +
git apply 125769
 +
rm -rf 125769
 +
 +
# ACPI brightness patches above were abandoned due to Windows incompatibility. If you only want to use GNU/Linux, then it should work fine.
 +
</pre>
 +
 +
Now you will want this basic configuration for X60/X60s (in '''make menuconfig'''):
 +
<pre>
 +
    General setup / Expert mode = enable
 +
    General setup / Local version string = 79ETE7WW (2.27 )
 +
    Mainboard / Mainboard vendor = Lenovo
 +
    Mainboard / Mainboard model = ThinkPad T60 / T60p
 +
    Mainboard / ROM chip size = 2048 KB (2 MB)
 +
    Mainboard / SMBIOS Serial Number = L3DKE06
 +
    Mainboard / SMBIOS Version Number = ThinkPad T60
 +
    Mainboard / SMBIOS Manufacturer = LENOVO
 +
    Mainboard / SMBIOS Product name = 1951FEG
 +
    Chipset / Include CPU microcode in CBFS = Do not include microcode updates
 +
    Devices / Use native graphics initialization = enable
 +
    Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer)
 +
    Console / Send console output to a CBMEM buffer = enable
 +
    Payload / Add a payload = An ELF executable payload
 +
    Payload / Payload path and filename = grub.elf
 +
 +
Go back into Devices:
 +
 +
    Devices / Run VGA Option ROMs = disable
 +
    Devices / Run Option ROMs on PCI devices = disable
 +
</pre>
 +
 +
Note, the above assumes that you already built your grub.elf from source along with everything that you need. Building GRUB is not covered here.
 +
 +
Build crossgcc as usual and then build your ROM.
  
 
== TODO ==
 
== TODO ==
Line 120: Line 188:
  
 
Another option (for increased battery life and lower temperatures) is to use '''powertop --auto-tune''', or set 'Tunables' in powertop (without any parameters).
 
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 ==
 
 
Use [http://review.coreboot.org/#/c/6725/ this patch].
 
 
Also, enable it for T60 with [http://paste.debian.net/plain/122565 this patch]
 
 
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.
 
 
== Make backlight (Fn keys) control work with native gpu init ==
 
 
You first need native graphics support (free VBIOS replacement). Apply [http://review.coreboot.org/#/c/5345 this patch] using '''cherry pick''' on top of master.
 
 
Before building the ROM with native graphics, in src/mainboard/lenovo/t60/devicetree.cb, change gpu_backlight to 0x58BF58BE
 
 
This value was obtained by reading BLC_PWM_CTL when running the VBIOS (option ROM), like so:
 
 
'''sudo devmem2 0xe4361254 w'''
 
 
Another method is shown in changeset 6731 on review.coreboot.org. If you use this method, also apply this patch to fix uneven backlight levels: [http://paste.debian.net/plain/122548 patch] - also, [http://paste.debian.net/plain/122563 apply this patch]
 
  
 
=== Other things ===
 
=== Other things ===

Revision as of 00:33, 12 October 2014

Coreboot supports all ThinkPad T60/T60p Series laptops, by using proprietary VGABIOS blobs.

Installation and Flashing

 Instructions on Installation and flashing the x60 or t60 

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

This table needs review. I copied the x60 table and ran through it from memory, expresscard comes to mind...

Device/functionality Status Comments
CPU
CPU works OK
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
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 docking station
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 Untested
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 Board:lenovo/x60/Installation


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 with this patch that is under review. 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)

Building the ROM without proprietary blobs

This basically means:

  • No microcode updates
  • Native graphics (replacement for the proprietary VBIOS / VGA Option ROM)
  • GRUB2 payload

In this configuration, only GNU/Linux is known to work. If you plan to use other operating systems, you might be out of luck.

Download coreboot like usual:

git clone http://review.coreboot.org/coreboot
cd coreboot

At the time of writing for (for these instructions), the following git revision was used:

git reset --hard 9310df8d0351842e7bb9efe3cabc0ff82ec99c53

Apply the following patches in this order:

# Enable T60 native graphics
git fetch http://review.coreboot.org/coreboot refs/changes/45/5345/9 && git cherry-pick FETCH_HEAD
# Enable text-mode graphics for T60
git fetch http://review.coreboot.org/coreboot refs/changes/50/7050/2 && git cherry-pick FETCH_HEAD

# If you want legacy brightness controls (if using this, make sure not to include the ACPI brightness patch below)
git fetch http://review.coreboot.org/coreboot refs/changes/51/7051/1 && git cherry-pick FETCH_HEAD

# OR if you want ACPI brightness controls (if using this, make sure not to include the legacy brightness patch above):
git fetch http://review.coreboot.org/coreboot refs/changes/31/6731/7 && git cherry-pick FETCH_HEAD
# Fix uneven backlight levels (for ACPI brightness controls):
git fetch http://review.coreboot.org/coreboot refs/changes/49/7049/1 && git cherry-pick FETCH_HEAD
# Apply this patch to fix compilation:
wget http://paste.debian.net/plain/125769
git apply 125769
rm -rf 125769

# ACPI brightness patches above were abandoned due to Windows incompatibility. If you only want to use GNU/Linux, then it should work fine.

Now you will want this basic configuration for X60/X60s (in make menuconfig):

    General setup / Expert mode = enable
    General setup / Local version string = 79ETE7WW (2.27 )
    Mainboard / Mainboard vendor = Lenovo
    Mainboard / Mainboard model = ThinkPad T60 / T60p
    Mainboard / ROM chip size = 2048 KB (2 MB)
    Mainboard / SMBIOS Serial Number = L3DKE06
    Mainboard / SMBIOS Version Number = ThinkPad T60
    Mainboard / SMBIOS Manufacturer = LENOVO
    Mainboard / SMBIOS Product name = 1951FEG
    Chipset / Include CPU microcode in CBFS = Do not include microcode updates
    Devices / Use native graphics initialization = enable
    Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer)
    Console / Send console output to a CBMEM buffer = enable
    Payload / Add a payload = An ELF executable payload
    Payload / Payload path and filename = grub.elf

Go back into Devices:

    Devices / Run VGA Option ROMs = disable
    Devices / Run Option ROMs on PCI devices = disable

Note, the above assumes that you already built your grub.elf from source along with everything that you need. Building GRUB is not covered here.

Build crossgcc as usual and then build your ROM.

TODO

Non-free components replacements

  • Replace the non-free VGA option rom by making native graphics init work. See [1] (under review on 5345 changeset, review.coreboot.org]
  • 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 6731 on review.coreboot.org

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).

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