the following patch was just integrated into master: commit faa6bebeaa2dbdacb9333d20e5a2f6f52b21a3f0 Author: Peter Stuge peter@stuge.se Date: Fri Jan 27 22:17:09 2012 +0100
northbridge/intel/i945: CHECK_SLFRCS_ON_RESUME Kconfig option
Originally brought up by Sven Schnelle in March 2011 http://patchwork.coreboot.org/patch/2801/ http://www.coreboot.org/pipermail/coreboot/2011-March/064277.html
On some mainboards it may be neccessary to reset early during resume from S3 if the SLFRCS register indicates that a memory channel is not guaranteed to be in self-refresh.
On other mainboards, such as Lenovo X60 and T60, the check always creates false positives, effectively making it impossible to resume.
The SLFRCS register is documented on page 197 of
Mobile Intel® 945 Express Chipset Family Datasheet Document Number: 309219-006
which is publically available, and the register indicates if a memory channel is guaranteed to be in self-refresh mode (if bit = 1), or that a memory channel *may or may not be* in self-refresh mode (if bit = 0).
The register can thus only be used to positively learn that memory is in self-refresh. It is not known for sure that memory is *not* in self-refresh. The register is reset by the PWROK signal, which *should* go low during S3, and go high again when resuming, so it is unsurprising that SLFRCS has already been cleared when we read the register.
Sven's measurements of the CKE signal on a ThinkPad shows that memory remains in self-refresh indefinitely, until coreboot re-initializes the memory controller, even when SLFRCS bits were = 0.
Boards which require a warm reset when SLFRCS bits are cleared must now explicitly enable the check in the mainboard Kconfig file.
This commit selects the new option in all existing i945 mainboards. A follow-up commit will remove the option for ThinkPads.
Change-Id: I02320675efb8fde05c371ef243ba5093a4da6d11 Signed-off-by: Peter Stuge peter@stuge.se
Build-Tested: build bot (Jenkins) at Fri Jan 27 23:33:41 2012, giving +1 Reviewed-By: Sven Schnelle svens@stackframe.org at Tue Jan 31 14:52:14 2012, giving +2 See http://review.coreboot.org/590 for details.
-gerrit