summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2012-03-15 21:36:12 -0700
committerGerrit <chrome-bot@google.com>2012-03-15 23:35:02 -0700
commit9c3e90d6a1086754c6899792dd3d8e19c0c8c03e (patch)
tree09f81103e6029f65e9366938e18846900bf77fbe
parent464dfebeb9ffe68d37d9966c2415e778637033b1 (diff)
Use keyboard controller for hard reset instead of CF9
For some still unknown reason writes to localtion 0xcf9 do not cause the Link to reboot, they cause it to shut down instead. While this will have to be investigated and fixed, this change modifies the code to use the keyboard controller (implemented by the EC on Link) to restart the system. Once the 0xcf9 problem is resolved, this change could be reverted. BUG=chrome-os-partner:8397 TEST=manual . when u-boot tires restarting the system it now reboots. before this change it would just shut down. Change-Id: I8076f897304f705e20ec8f2e30cce17d7fdd31c4 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/18332 Reviewed-by: Hung-Te Lin <hungte@chromium.org>
-rw-r--r--board/chromebook-x86/chromeos/power_management.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/board/chromebook-x86/chromeos/power_management.c b/board/chromebook-x86/chromeos/power_management.c
index 2910f3a0a1..40116a24f9 100644
--- a/board/chromebook-x86/chromeos/power_management.c
+++ b/board/chromebook-x86/chromeos/power_management.c
@@ -14,6 +14,7 @@
#include <common.h>
#include <asm/global_data.h>
#include <asm/io.h>
+#include <asm/ibmpc.h>
#include <pci.h>
#define PM1_STS 0x00
@@ -57,9 +58,14 @@ int is_processor_reset(void)
void cold_reboot(void)
{
printf("Rebooting...\n");
+
+ /* let's use keyboard controller for this */
+ outb(0xfe, KBDCMD);
+ /*
+ TODO(vbendeb): fix CF9 reset and use it instead of KB reset
outb(SYS_RST, RST_CNT);
outb(SYS_RST | RST_CPU, RST_CNT);
-
+ */
for (;;)
asm("hlt");
}