aboutsummaryrefslogtreecommitdiff
path: root/docs/hcl/x200.html
diff options
context:
space:
mode:
authorLeah Rowe <info@minifree.org>2016-08-22 10:22:04 +0100
committerLeah Rowe <info@minifree.org>2016-08-22 10:22:04 +0100
commitc679b19f0b0d95f587b3836c7bf867a932d3df28 (patch)
treea0529135e5901b3aff16987a2cf94c10752cb8ab /docs/hcl/x200.html
parent3ca295f25340344f5d42164bd134dbb9f5b0ff4c (diff)
downloadlibrebootfr-c679b19f0b0d95f587b3836c7bf867a932d3df28.tar.gz
librebootfr-c679b19f0b0d95f587b3836c7bf867a932d3df28.zip
actually add the documentation directory. (I forgot git add in last commit)
Diffstat (limited to 'docs/hcl/x200.html')
-rw-r--r--docs/hcl/x200.html391
1 files changed, 391 insertions, 0 deletions
diff --git a/docs/hcl/x200.html b/docs/hcl/x200.html
new file mode 100644
index 00000000..51484889
--- /dev/null
+++ b/docs/hcl/x200.html
@@ -0,0 +1,391 @@
+<!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>
+
+ <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>
+ On GM45 hardware (with libreboot), make sure that the <i>kvm</i> and <i>kvm_intel</i> kernel modules
+ are not loaded, when using QEMU.
+ </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>
+ <p>
+ Anecdotal reports from at least 1 user suggests that some models with CPU microcode 1067a (on the CPU itself) might work with vt-x in libreboot.
+ </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 and X200 Tablet are 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 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>Trouble undocking (button doesn't work)</h2>
+
+ <p>
+ This person seems to have a workaround:
+ <a href="https://github.com/the-unconventional/libreboot-undock">https://github.com/the-unconventional/libreboot-undock</a>
+ </p>
+
+ </div>
+
+ <div class="section">
+
+ <h2 id="lcd_supported_list">LCD compatibility list</h2>
+
+ <p>
+ LCD panel list (X200 panels listed there):
+ <a href="http://www.thinkwiki.org/wiki/TFT_display">http://www.thinkwiki.org/wiki/TFT_display</a>
+ </p>
+
+ <p>
+ All LCD panels for the X200, X200S and X200 Tablet are known to work.
+ </p>
+
+ <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>&quot;This product
+ contains Lithium Ion Battery, Lithium Battery and a lamp which contains mercury; dispose according to
+ local, state or federal laws&quot;</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>
+ BIOS 3.15, EC 1.06
+ <ul>
+ <li><a href="hwdumps/x200/">hwdumps/x200/</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ </div>
+
+ <div class="section">
+
+ <h1 id="ram_s3_microcode">RAM, S3 and microcode updates</h1>
+
+ <p>
+ Not all memory modules work. Most of the default ones do, but you have to be careful
+ when upgrading to 8GiB; some modules work, some don't.
+ </p>
+
+ <p>
+ <a href="http://www.forum.thinkpads.com/viewtopic.php?p=760721">This page</a> might be useful for RAM compatibility info
+ (note: coreboot raminit is different, so this page might be BS)
+ </p>
+
+ <p>
+ pehjota started collecting some steppings for different CPUs on several X200 laptops.
+ You can get the CPUID by running: <br/>
+ $ <b>dmesg | sed -n 's/^.* microcode: CPU0 sig=0x\([^,]*\),.*$/\1/p'</b>
+ </p>
+
+ <p>
+ What pehjota wrote:
+ The laptops that have issues resuming from suspend, as well as a laptop that (as I mentioned earlier in #libreboot) won't boot with any Samsung DIMMs, all have CPUID 0x10676 (stepping M0).
+ </p>
+
+ <p>
+ What pehjota wrote:
+ Laptops with CPUID 0x167A (stepping R0) resume properly every time and work with Samsung DIMMs. I'll
+ need to do more testing on more units to better confirm these trends, but it looks like the M0 microcode
+ is very buggy. That would also explain why I didn't have issues with Samsung DIMMs with the Lenovo BIOS
+ (which would have microcode updates). I wonder if VT-x works on R0.
+ </p>
+
+ <p>
+ What pehjota wrote:
+ As I said, 10676 is M0 and 1067A is R0; those are the two CPUIDs and steppings for Intel Core 2 Duo P8xxx CPUs with factory microcode. (1067 is the family and model, and 6 or A is the stepping ID.)
+ </p>
+
+ <p>
+ <b>
+ TODO: check the CPUIDs and test S3 resume and/or KVM on any C2D systems (including non-P8xxx ones, which I don't have here) you have available. I'd be curious if you could confirm these results.
+ </b>
+ It might not be coreboot that's buggy with raminit/S3; it might just be down to the microcode updates.
+ </p>
+
+ </div>
+
+ <div class="section">
+
+ <h2 id="unsorted">Unsorted notes</h2>
+
+<pre>
+&lt;sgsit&gt; do you know if it's possible to flash thinkpads over the LPC debug connector at the front edge?
+&lt;sgsit&gt; that would make life much easier for systems like this
+&lt;sgsit&gt; all the Wistron manufactured systems have this thing called a "golden finger", normally at the front edge of the board
+&lt;sgsit&gt; you can plug a board in which gives diagnostic codes but i'm wondering whether it is capable of more
+&lt;sgsit&gt; <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 &copy; 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;<br/>
+ Copyright &copy; 2015 Patrick &quot;P. J.&quot; McDermott &lt;pj@pehjota.net&gt;<br/>
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license can be found at <a href="../gfdl-1.3.txt">../gfdl-1.3.txt</a>
+ </p>
+
+ <p>
+ Updated versions of the license (when available) can be found at
+ <a href="https://www.gnu.org/licenses/licenses.html">https://www.gnu.org/licenses/licenses.html</a>
+ </p>
+
+ <p>
+ UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+ </p>
+ <p>
+ TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+ </p>
+ <p>
+ The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+ </p>
+
+ </div>
+
+</body>
+</html>