Board:lenovo/x220: Difference between revisions
(→Status) |
No edit summary |
||
Line 7: | Line 7: | ||
Tested (and works): | Tested (and works): | ||
* RAM module combinations of 4G+0, 4G+4G | * RAM module combinations of 4G+0, 4G+4G, 8G+8G | ||
* S3 (Suspend to RAM) | * S3 (Suspend to RAM) | ||
* digitizer on x220t variant | * digitizer on x220t variant | ||
Line 17: | Line 17: | ||
* touchpad | * touchpad | ||
* battery indicator | * battery indicator | ||
* Fingerprint reader | * Fingerprint reader | ||
* Thermal management | * Thermal management | ||
* Webcam | * Webcam | ||
Line 30: | Line 30: | ||
* Windows (through SeaBIOS; you have to use extracted VGA blob, dumped from memory isn't good enough) | * Windows (through SeaBIOS; you have to use extracted VGA blob, dumped from memory isn't good enough) | ||
* msata | * msata | ||
* | * Displayport | ||
* Thinklight | |||
Not tested: | Not tested: | ||
* dock (probably works) | * dock (probably works) | ||
* USB 3.0 in some models (probably doesn't work) | * USB 3.0 in some models (probably doesn't work) | ||
Line 39: | Line 39: | ||
== proprietary components status == | == proprietary components status == | ||
* CPU Microcode | * CPU Microcode | ||
* VGA option rom (optional): you need it if you | * VGA option rom (optional): you need it if you want graphics in SeaBIOS but most payloads should work without it (text mode or corebootfb mode), SeaBIOS works with coreboot native gfx init | ||
* ME(Management Engine) => you do not have to touch it(just leave it where it is) | * ME(Management Engine) => 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) | * EC(Embedded Controller) => you do not have to touch it(just leave it where it is) |
Revision as of 16:05, 25 July 2015
Status
Thanks for your interest in Lenovo X220 port. Issues:
- no MRC cache (longer boot time)
- yellow USB port isn't powered in power-off state.
- Badly seated RAM may prevent booting (not really a problem but coreboot is more suspicious to this than vendor BIOS)
Tested (and works):
- RAM module combinations of 4G+0, 4G+4G, 8G+8G
- S3 (Suspend to RAM)
- digitizer on x220t variant
- WLAN (first minipcie slot)
- Linux (through GRUB-as-payload)
- trackpoint
- Fn hotkeys
- Video (both internal and VGA, including native gfx init)
- touchpad
- battery indicator
- Fingerprint reader
- Thermal management
- Webcam
- Expresscard slot (including hotplugging)
- USB (all 3 ports)
- bluetooth
- SD card slot
- LAN
- Sound (integrated speakers, integrated mic, external headphones, external mic)
- WWAN
- WLAN slot USB
- Windows (through SeaBIOS; you have to use extracted VGA blob, dumped from memory isn't good enough)
- msata
- Displayport
- Thinklight
Not tested:
- dock (probably works)
- USB 3.0 in some models (probably doesn't work)
proprietary components status
- CPU Microcode
- VGA option rom (optional): you need it if you want graphics in SeaBIOS but most payloads should work without it (text mode or corebootfb mode), SeaBIOS works with coreboot native gfx init
- ME(Management Engine) => 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)
Flashing
X220 has 1 flash chip of 8M. It's subdivided in roughly in 3 parts:
- Descriptor (12K)
- ME firmware (5M-12K)
- System flash (7M)
ME firmware is not readable. Vendor firmware locks the flash and so you need to flash externally (unless until someone figures out a way around it).
Proceeds as follows:
- Turn off your laptop, remove battery and AC adapter.
- Remove the keyboard.
- Connect your external SPI flasher to the top SPI chip which is under palm resting space, on left side of the board. It's a 8M chip.
I recommend using SOIC clip. Depending on the flasher you use, you may have to use separate 3.3V source. Make sure not to feed more than 3.3V ot the chip. I used buspirate as flasher and 3.3V power lines from another computer.
- Read the flash. Twice. Compare the files to be sure. Save a copy of it on
external media.
flashrom -p <yourprogrammer> -r flash.bin flashrom -p <yourprogrammer> -r flash2.bin diff flash.bin flash2.bin
If they don't match, do not proceed.
- Recover descriptor and me firmare:
dd if=flash.bin of=coreboot/3rdparty/mainboard/lenovo/x220/descriptor.bin \ count=12288 bs=1M iflag=count_bytes dd if=flash.bin of=coreboot/3rdparty/mainboard/lenovo/x220/me.bin \ skip=12288 count=5230592 bs=1M iflag=count_bytes,skip_bytes
- Compile coreboot
- Flash the resulting build/coreboot.rom
If you have trouble reading the chip successfully, the most common problems are
- insufficient power supply
- bad contacts
- too long wires
- bad pinout
The cable shipped with buspirate was too long, and needed to be trimmed.
See also In-System Programming