summaryrefslogtreecommitdiffstats
path: root/board/google
diff options
context:
space:
mode:
Diffstat (limited to 'board/google')
-rw-r--r--board/google/chromebook_link/Kconfig4
-rw-r--r--board/google/common/early_init.S21
2 files changed, 24 insertions, 1 deletions
diff --git a/board/google/chromebook_link/Kconfig b/board/google/chromebook_link/Kconfig
index 975d557e1c..9c715ba765 100644
--- a/board/google/chromebook_link/Kconfig
+++ b/board/google/chromebook_link/Kconfig
@@ -12,4 +12,8 @@ config SYS_SOC
config SYS_CONFIG_NAME
default "chromebook_link"
+config EARLY_POST_CROS_EC
+ bool "Enable early post to Chrome OS EC"
+ default y
+
endif
diff --git a/board/google/common/early_init.S b/board/google/common/early_init.S
index cf70ae40c6..7017185d06 100644
--- a/board/google/common/early_init.S
+++ b/board/google/common/early_init.S
@@ -6,5 +6,24 @@
.globl early_board_init
early_board_init:
- /* No 32-bit board specific initialisation */
+ /* Enable post codes to EC */
+#ifdef CONFIG_EARLY_POST_CROS_EC
+ mov $0x1b, %ecx
+ rdmsr
+ and $0x100, %eax
+ test %eax, %eax
+ je 1f
+
+ mov $0x8000f8f0, %eax
+ mov $0xcf8, %dx
+ out %eax, (%dx)
+ mov $0xfed1c001, %eax
+ mov $0xcfc, %dx
+ out %eax, (%dx)
+ mov $0xfed1f410, %esp
+ mov (%esp), %eax
+ and $0xfffffffb, %eax
+ mov %eax, (%esp)
+1:
+#endif
jmp early_board_init_ret
OpenPOWER on IntegriCloud