123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type="text/css">
- @import url('../css/main.css');
- </style>
- <title>ThinkPad X200</title>
- </head>
- <body>
- <div class="section">
- <h1 id="pagetop">ThinkPad X200</h1>
-
- <p>
- It is believed that all X200 laptops are compatible. X200S and X200 Tablet will
- also work, <a href="#x200s">depending on the configuration</a>.
- </p>
- <p>
- It *might* be possible to put an X200 motherboard in an X201 chassis, though this is currently untested
- by the libreboot project. The same may also apply between X200S and X201S; again, this is untested.
- <b>It's most likely true.</b>
- </p>
-
- <p>
- There are two possible flash chip sizes for the X200: 4MiB (32Mbit) or 8MiB (64Mbit).
- This can be identified by the type of flash chip below the palmrest: 4MiB is SOIC-8, 8MiB
- is SOIC-16.
- </p>
-
- <p>
- <b>The X200 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. Libreboot disables and removes it
- by using a modified descriptor: see <a href="gm45_remove_me.html">gm45_remove_me.html</a></b> (contains notes, plus
- instructions)
- </p>
- <p>
- Flashing instructions can be found at <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
- </p>
-
- <p>
- <a href="index.html">Back to previous index</a>.
- </p>
- </div>
- <div class="section">
- <h2 id="compatibility_noblobs">Compatibility (without blobs)</h2>
- <p>
- Usual limitations apply for native graphics initialization
- (no VBT and/or INT10H and only GRUB works so no BIOS, so no DOS/Windows support
- - who cares? There is no system but GNU, and Linux is one of it's kernels).
- </p>
- <p>
- When connecting the AC adapter while system is powered off, system will then power on.
- This probably happens in coreboot aswell (with or without blobs).
- It's a minor annoyance, but it should be fixed (if it's not already fixed by now).
- </p>
- <p>
- This method of disabling the ME leaves the flash descriptor and gbe in place (non-functional data, fully documented)
- and disables the ME using soft straps. This means that the gigabit ethernet will still work (putting the machine in
- non-descriptor mode would wipe it out).
- </p>
- <div class="subsection">
- <h3 id="hwvirt">Hardware virtualization (vt-x)</h3>
- <p>
- The X200, when run without CPU microcode updates in coreboot, currently kernel panics
- if running QEMU with vt-x enabled on 2 cores for the guest. With a single core enabled
- for the guest, the guest panics (but the host is fine). Working around this in QEMU
- might be possible; if not, software virtualization should work fine (it's just slower).
- </p>
- <p>
- The following errata datasheet from Intel might help with investigation:
- <a href="http://download.intel.com/design/mobile/specupdt/320121.pdf">http://download.intel.com/design/mobile/specupdt/320121.pdf</a>
- </p>
- </div>
- </div>
- <div class="section">
- <h2 id="x200s">X200S and X200 Tablet.</h2>
- <p>
- X200S and X200 Tablet have raminit issues at the time of writing
- (GS45 chipset. X200 uses GM45).
- </p>
- <p>
- X200S is known to work, but only with certain CPU+RAM configurations.
- The current stumbling block is RCOMP and SFF, mentioned in
- <a href="https://www.cs.cmu.edu/~410/doc/minimal_boot.pdf">https://www.cs.cmu.edu/~410/doc/minimal_boot.pdf</a>.
- </p>
- <p>
- The X200 Tablet should also work, but it is not guaranteed.
- </p>
- <p>
- The issues mostly relate to raminit (memory initialization). With an
- unpatched coreboot, you get the following: <a href="text/x200s/cblog00.txt">text/x200s/cblog00.txt</a>.
- No SODIMM combination that was tested would work. At first glance, it looks
- like GS45 (chipset that X200S uses. X200 uses GM45) is unsupported, but
- there is a workaround that can be used to make certain models of the X200S
- work, depending on the RAM.
- </p>
- <p>
- The datasheet for GS45 describes two modes: low-performance and
- high-performance. Low performance uses the SU range of ultra-low
- voltage procesors (SU9400, for example), and high-performance uses the
- SL range of processors (SL9400, for example). According to datasheets,
- GS45 behaves very similarly to GM45 when operating in high-performance
- mode.
- </p>
- <p>
- The theory then was that you could simply remove
- the checks in coreboot and make it pass GS45 off as GM45; the idea is
- that, with a high-performance mode CPU (SL9400, for example) it would
- just boot up and work.
- </p>
- <p>
- This suspicion was confirmed with the following log:
- <a href="text/x200s/cblog01.txt">text/x200s/cblog01.txt</a>.
- The memory modules in this case are 2x4GB. <s><b>However, not all
- configurations work: <a href="text/x200s/cblog02.txt">text/x200s/cblog02.txt</a> (2x2GB)
- and <a href="text/x200s/cblog03.txt">text/x200s/cblog03.txt</a> (1x2GB)
- show a failed bootup.</b></s> <i>False alarm. The modules were mixed (non-matching). X200S
- with high-performance mode CPU will work so long as you use matching memory modules
- (doesn't matter what size).</i>
- </p>
- <p>
- This was then pushed as a patch for coreboot, which can be found at
- <a href="http://review.coreboot.org/#/c/7786/">http://review.coreboot.org/#/c/7786/</a>
- (libreboot merges this patch in coreboot-libre now. Check the 'getcb' script in
- src or git).
- </p>
- <div class="subsection">
- <h3 id="x200s_raminit">Proper GS45 raminit</h3>
- <p>
- A new northbridge gs45 should be added to coreboot, based on gm45,
- and a new port x200st (X200S and X200T) should be added based on
- the x200 port.
- </p>
- <p>
- This port would have proper raminit. Alternatively, gs45 (if
- raminit is taken to be the only issue with it) can be part of
- gm45 northbridge support (and X200S/Tablet being part of the X200
- port) with conditional checks in the raminit that make raminit
- work differently (as required) for GS45. nico_h and pgeorgi/patrickg
- in the coreboot IRC channel should know more about raminit on gm45
- and likely gs45.
- </p>
- <p>
- pgeorgi recommends to run SerialICE on the factory BIOS (for X200S),
- comparing it with X200 (factory BIOS) and X200 (gm45 raminit code
- in coreboot), to see what the differences are. Then tweak raminit
- code based on that.
- </p>
- </div>
- </div>
-
- <div class="section">
- <h2 id="lcd_supported_list">LCD compatibility list</h2>
- <p>
- Unless otherwise noted (italic styling, underlined), these are CCFL 1280x800 screens with TN panels inside.
- Please do advise if you spot mistakes here.
- </p>
- <p>
- Use the instructions at <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>
- to get the name of your panel, then check it against the list below. If your panel is untested, then by all means
- try it! (and get in touch with the libreboot project to advise whether or not it worked).
- </p>
- <p>
- AUO = AU Optronics. List of panels below based on
- <a href="http://www.thinkwiki.org/wiki/TFT_display">http://www.thinkwiki.org/wiki/TFT_display</a>
- </p>
- <p>
- Tested LCD panels (confirmed working):
- </p>
- <ul>
- <li>X200/X200S: LG-Philips LP121WX3-TLC1 (sgsit on IRC has this panel) (LED backlight)</li>
- <li>X200/X200S: Samsung LTN121AT03 (phcoder on IRC has this panel)</li>
- <li>X200/X200S: AUO B121EW03 V.6 (fchmmr on IRC has this panel)</li>
- <li>X200S: TMD-Toshiba LTD121EQ3B (1440x900 resolution) (LED backlight) (sgsit on IRC has this panel)</li>
- </ul>
- <p>
- Untested LCD panels (status unknown):
- </p>
- <ul>
- <li>X200 Tablet: TMD-Toshiba LTD121KX6B (LED backlight)</li>
- <li>X200/X200S: TMD-Toshiba LTD121EWVB</li>
- <li>X200/X200S: AOU B121EW09 V.2 (LED backlight)</li>
- <li>X200/X200S: FRU 42T0715 (no manufacturer/model given) (LED backlight)</li>
- <li>X200/X200S: LG-Philips LP121WX3-TLA1 (LED backlight)</li>
- <li>X200/X200S: 42T0713 FRU (no model/manufacturer given) (LED backlight)</li>
- </ul>
- <p>
- <a href="#pagetop">Back to top of page.</a>
- </p>
-
- <div class="subsection">
- <h3 id="ips">
- AFFS/IPS panels
- </h3>
- <h4>X200</h4>
- <p>
- Adapted from <a href="https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X200">https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X200</a>
- </p>
- <p>
- Look at wikipedia for difference between TN and IPS panels. IPS have much better colour/contrast than
- a regular TN, and will typically have good viewing angles.
- </p>
- <p>
- These seem to be from the X200 tablet. You need to find one without the glass touchscreen protection on it
- (might be able to remove it, though). It also must not have a digitizer on it (again, might be possible to
- just simply remove the digitizer).
- </p>
- <ul>
- <li>BOE-Hydis HV121WX4-120, HV121WX4-110 or HV121WX4-100 - cheap-ish, might be hard to find</li>
- <li>Samsung LTN121AP02-001 - common to find, cheap</li>
- </ul>
- <p>
- <b>If your X200 has an LED backlit panel in it, then you also need to get an inverter and harness cable
- that is compatible with the CCFL panels. To see which panel type you have, see
- <a href="#led_howtotell">#led_howtotell</a>. If you need the inverter/cable, here are part numbers:
- 44C9909 for CCFL LVDS cable with bluetooth and camera connections, and 42W8009 or 42W8010 for the
- inverter.</b>
- </p>
- <p>
- There are glossy and matte versions of these. Matte means anti-glare, which is what you want (in this authors opinion).
- </p>
- <p>
- Refer to the HMM (hardware maintenance manual) for how to replace the screen.
- </p>
- <p>Sources:</p>
- <ul>
- <li><a href="http://forum.thinkpads.com/viewtopic.php?f=2&t=84941">ThinkPad Forums - Matte AFFS Panel on X200</a></li>
- <li><a href="http://forum.thinkpads.com/viewtopic.php?p=660662#p660662">ThinkPad Forums - Parts for X200 AFFS Mod</a></li>
- <li><a href="http://thinkwiki.de/X200_Displayumbau">ThinkWiki.de - X200 Displayumbau</a> (achtung: du musst lesen und/oder spreche deutsch;
- oder ein freund fur hilfe)</li>
- </ul>
- </div>
- <div class="subsection">
- <h3>X200S</h3>
- <p>
- <a href="http://forum.thinkpads.com/viewtopic.php?p=618928#p618928">http://forum.thinkpads.com/viewtopic.php?p=618928#p618928</a>
- explains that the X200S screens/assemblies are thinner. You need to replace the whole lid with one from a normal X200/X201.
- </p>
- </div>
-
- <p>
- <a href="#pagetop">Back to top of page.</a>
- </p>
-
- </div>
- <div class="section">
- <h2 id="led_howtotell">How to tell if it has an LED or CCFL?</h2>
-
- <p>
- Some X200s have a CCFL backlight and some have an LED backlight, in their LCD panel. This
- also means that the inverters will vary, so you must be careful if ever replacing either
- the panel and/or inverter. (a CCFL inverter is high-voltage and will destroy an LED backlit panel).
- </p>
- <p>
- CCFLs contain mercury. An X200 with a CCFL backlight will (<b></b>unless it has been changed to an LED,
- with the correct inverter. Check with your supplier!</b>) the following: <i>"This product
- contains Lithium Ion Battery, Lithium Battery and a lamp which contains mercury; dispose according to
- local, state or federal laws"</i> (one with an LED backlit panel will say something different).
- </p>
- <p>
- <a href="#pagetop">Back to top of page.</a>
- </p>
- </div>
- <div class="section">
- <h2 id="regdumps">Hardware register dumps</h2>
- <p>
- The coreboot wiki <a href="http://www.coreboot.org/Motherboard_Porting_Guide">shows</a>
- how to collect various logs useful in porting to new
- boards. Following are outputs from the X200:
- </p>
- <ul>
- <li>
- X200 with Atmel AT25DF321 (4-MiB SOIC-8) flash
- chip and Lenovo BIOS 3.18 (EC firmware 1.06):
- <ul>
- <li>lspci <a href="../future/dumps/x200-at25df321-lenovobios3.18/lspci.log">output</a></li>
- <li>lsusb <a href="../future/dumps/x200-at25df321-lenovobios3.18/lsusb.log">output</a></li>
- <li>superiotool <a href="../future/dumps/x200-at25df321-lenovobios3.18/superiotool.log">output</a></li>
- <li>inteltool <a href="../future/dumps/x200-at25df321-lenovobios3.18/inteltool.log">output</a></li>
- <li>ectool <a href="../future/dumps/x200-at25df321-lenovobios3.18/ectool.log">output</a></li>
- <li>msrtool <a href="../future/dumps/x200-at25df321-lenovobios3.18/msrtool.log">output</a>,
- <a href="../future/dumps/x200-at25df321-lenovobios3.18/msrtool.err">errors</a></li>
- <li>dmidecode <a href="../future/dumps/x200-at25df321-lenovobios3.18/dmidecode.log">output</a></li>
- <li>biosdecode <a href="../future/dumps/x200-at25df321-lenovobios3.18/biosdecode.log">output</a></li>
- <li>nvramtool <a href="../future/dumps/x200-at25df321-lenovobios3.18/nvramtool.log">output</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.18/dmesg.log">dmesg</a></li>
- <li>flashrom probe <a href="../future/dumps/x200-at25df321-lenovobios3.18/flashrom_info.log">output</a>,
- <a href="../future/dumps/x200-at25df321-lenovobios3.18/flashrom_info.err">errors</a></li>
- <li>flashrom read <a href="../future/dumps/x200-at25df321-lenovobios3.18/flashrom_read.log">output</a>,
- <a href="../future/dumps/x200-at25df321-lenovobios3.18/flashrom_read.err">errors</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.18/pin_hwC0D0">/sys/class/sound/card0/hwC0D0/init_pin_configs</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.18/codec%230">/proc/asound/card0/codec#0</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.18/cpuinfo.log">/proc/cpuinfo</a></li>
- </ul>
- </li>
- <li>
- X200 with Atmel AT25DF321 (4-MiB SOIC-8) flash
- chip and Lenovo BIOS 3.22 (EC firmware 1.07):
- <ul>
- <li>lspci <a href="../future/dumps/x200-at25df321-lenovobios3.22/lspci.log">output</a></li>
- <li>lsusb <a href="../future/dumps/x200-at25df321-lenovobios3.22/lsusb.log">output</a></li>
- <li>superiotool <a href="../future/dumps/x200-at25df321-lenovobios3.22/superiotool.log">output</a></li>
- <li>inteltool <a href="../future/dumps/x200-at25df321-lenovobios3.22/inteltool.log">output</a></li>
- <li>ectool <a href="../future/dumps/x200-at25df321-lenovobios3.22/ectool.log">output</a></li>
- <li>msrtool <a href="../future/dumps/x200-at25df321-lenovobios3.22/msrtool.log">output</a>,
- <a href="../future/dumps/x200-at25df321-lenovobios3.22/msrtool.err">errors</a></li>
- <li>dmidecode <a href="../future/dumps/x200-at25df321-lenovobios3.22/dmidecode.log">output</a></li>
- <li>biosdecode <a href="../future/dumps/x200-at25df321-lenovobios3.22/biosdecode.log">output</a></li>
- <li>nvramtool <a href="../future/dumps/x200-at25df321-lenovobios3.22/nvramtool.log">output</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.22/dmesg.log">dmesg</a></li>
- <li>flashrom probe <a href="../future/dumps/x200-at25df321-lenovobios3.22/flashrom_info.log">output</a>,
- <a href="../future/dumps/x200-at25df321-lenovobios3.22/flashrom_info.err">errors</a></li>
- <li>flashrom read <a href="../future/dumps/x200-at25df321-lenovobios3.22/flashrom_read.log">output</a>,
- <a href="../future/dumps/x200-at25df321-lenovobios3.22/flashrom_read.err">errors</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.22/pin_hwC0D0">/sys/class/sound/card0/hwC0D0/init_pin_configs</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.22/codec%230">/proc/asound/card0/codec#0</a></li>
- <li><a href="../future/dumps/x200-at25df321-lenovobios3.22/cpuinfo.log">/proc/cpuinfo</a></li>
- </ul>
- </li>
- </ul>
- </div>
- <div class="section">
- <h2 id="unsorted">Unsorted notes</h2>
- <pre>
- <sgsit> do you know if it's possible to flash thinkpads over the LPC debug connector at the front edge?
- <sgsit> that would make life much easier for machines like this
- <sgsit> all the Wistron manufactured machines have this thing called a "golden finger", normally at the front edge of the board
- <sgsit> you can plug a board in which gives diagnostic codes but i'm wondering whether it is capable of more
- <sgsit> <a href="http://www.endeer.cz/bios.tools/bios.html">http://www.endeer.cz/bios.tools/bios.html</a>
- </pre>
- </div>
- <div class="section">
- <p>
- Copyright © 2014, 2015 Francis Rowe <info@gluglug.org.uk><br/>
- Copyright © 2015 Patrick "P. J." McDermott <pj@pehjota.net><br/>
- This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
- A copy of the license can be found at <a href="../cc-by-sa-4.txt">../cc-by-sa-4.txt</a>.
- </p>
- <p>
- This document is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../cc-by-sa-4.txt">../cc-by-sa-4.txt</a> for more information.
- </p>
-
- </div>
- </body>
- </html>
|