Charlie Mooney ecd4e1b5d6 Reset pmic registers to known safe values on boot
If a bug causes the pmic's internal registers to be overwritten with
garbage, they won't go away and can cause long lasting problems.  This
change overwrites them all whenever the EC or AP turn on with known,
safe values, so if that happens, a reboot will restore them instead of
forcing the user to pull the battery.  It also overwrites a few of them
when the AP shuts down, to prevent AP bugs from leaving the pmu powering
a bunch of peripherals that it doesn't need after it has turned off.

BUG=chrome-os-partner:12913
TEST=from EC console run "i2c w 0x90 0x0c 0xff" to screw up one of the
pmic registers.  Reboot the EC, and the AP should be able to boot just
fine.  Once the AP is booted, run that command again.  This time, just
reboot the AP, it should come back on like normal.  Try again with "i2c
w 0x90 0x0c 0x00".  Without the change, this fails to work.
BRANCH=snow

Change-Id: If3f0764f23e0112cc11be60b413f51e1b66e54a7
Signed-off-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/31259
Reviewed-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Puneet Kumar <puneetster@chromium.org>
2012-08-27 09:27:43 -07:00
2012-08-24 12:15:45 -07:00
2012-08-19 09:56:32 -07:00
2012-02-14 11:46:16 -08:00
2012-05-11 09:11:52 -07:00
2012-08-10 09:28:34 -07:00
2012-08-10 09:28:34 -07:00
2011-12-08 19:18:06 +00:00
2012-06-22 10:13:36 -07:00

- EC Lib

This wraps Blizzard driverlib and implements the EC chip interface defined
by Google. See below diagram for architecture.


  +--------------------+
  |   Host BIOS/OS     |
  +--------------------+

 ---- host interface ----

  +--------------------+
  | Google EC features |
  +--------------------+

 ---- chip interface ----  The interface is defined in
                           src/platform/ec/chip_interface/*.
  +--------------------+   But the real implementation is in EC Lib.
  |       EC Lib       |
  +--------------------+
  | Blizzard low level |
  |   driver, the      |
  |   driverlib.       |
  +--------------------+


Build Options
=============

- CONFIG_WATCHDOG_HELP

	Try to detect a watchdog that is about to fire, and print a trace.
	This is needed on STM32, where the independent watchdog has no early
	warning feature and the windowed watchdog has a very short period.

- CONFIG_PANIC_NEW_STACK

	When reporting a panic, change to a completely new stack. This might
	help get a useful trace out a situation where the stack or stack
	pointer has been corrupted.

- CONFIG_PANIC_HELP

	Report extra information about a panic, such as the fault address,
	here shown as bfar. This shows the reason for the fault and may help
	to determine the cause.

	=== EXCEPTION: 03 ====== xPSR: 01000000 ===========
	r0 :0000000b r1 :00000047 r2 :60000000 r3 :200013dd
	r4 :00000000 r5 :080053f4 r6 :200013d0 r7 :00000002
	r8 :00000000 r9 :200013de r10:00000000 r11:00000000
	r12:00000000 sp :200009a0 lr :08002b85 pc :08003a8a
	Precise data bus error, Forced hard fault, Vector catch, bfar = 60000000
	mmfs = 00008200, shcsr = 00000000, hfsr = 40000000, dfsr = 00000008

- CONFIG_ASSERT_HELP

	Report assertion failures in a vebose manner to aid debugging. When
	enabled an ASSERT() which fails will produce message in the form:

		ASSERTION FAILURE '<expr>' in function() at file:line
Description
No description provided
Readme 1.4 GiB
Languages
C 64.7%
Lasso 20.7%
ASL 3.6%
JavaScript 3.2%
C# 2.9%
Other 4.6%