diff options
author | Vadim Bendebury <vbendeb@chromium.org> | 2012-03-15 21:36:12 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-03-15 23:35:02 -0700 |
commit | 9c3e90d6a1086754c6899792dd3d8e19c0c8c03e (patch) | |
tree | 09f81103e6029f65e9366938e18846900bf77fbe /board | |
parent | 464dfebeb9ffe68d37d9966c2415e778637033b1 (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>
Diffstat (limited to 'board')
-rw-r--r-- | board/chromebook-x86/chromeos/power_management.c | 8 |
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 2910f3a0a16..40116a24f99 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"); } |