summaryrefslogtreecommitdiff
path: root/board/host
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2013-05-02 00:37:07 +0800
committerChromeBot <chrome-bot@google.com>2013-05-07 09:09:50 -0700
commit0a45fa17086d4556b7cb4ea0a9f53894197bc897 (patch)
treef2363f2a2320000404125bb36225e1420929d45d /board/host
parentb02c7b461740c457c6904a5d9d9f445afaa849cb (diff)
downloadchrome-ec-0a45fa17086d4556b7cb4ea0a9f53894197bc897.tar.gz
Pthread-based emulator for unit testingstabilize-4100.38.B
This is the first version of pthread-based RTOS emulator. With this, we will be able to test high-level modules entirely on the host machine. BUG=chrome-os-partner:19325 TEST='make runtests' and see tests passing. BRANCH=None Change-Id: I1f5fcd76aa84bdb46c7d35c5e60ae5d92fd3a319 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49954 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'board/host')
-rw-r--r--board/host/board.c12
-rw-r--r--board/host/board.h21
-rw-r--r--board/host/build.mk11
-rw-r--r--board/host/chipset.c34
-rw-r--r--board/host/ec.tasklist23
5 files changed, 101 insertions, 0 deletions
diff --git a/board/host/board.c b/board/host/board.c
new file mode 100644
index 0000000000..a3b8c28aca
--- /dev/null
+++ b/board/host/board.c
@@ -0,0 +1,12 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+/* Emulator board-specific configuration */
+
+#include "board.h"
+#include "gpio.h"
+
+const struct gpio_info gpio_list[GPIO_COUNT] = {
+ {"EC_INT", 0, 0, 0, 0},
+};
diff --git a/board/host/board.h b/board/host/board.h
new file mode 100644
index 0000000000..de7049bd9d
--- /dev/null
+++ b/board/host/board.h
@@ -0,0 +1,21 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* Emulator board configuration */
+
+#ifndef __BOARD_H
+#define __BOARD_H
+
+#define CONFIG_HOST_EMU
+#define CONFIG_HOSTCMD
+#define CONFIG_KEYBOARD_PROTOCOL_MKBP
+
+enum gpio_signal {
+ GPIO_EC_INT,
+
+ GPIO_COUNT
+};
+
+#endif /* __BOARD_H */
diff --git a/board/host/build.mk b/board/host/build.mk
new file mode 100644
index 0000000000..28525a7679
--- /dev/null
+++ b/board/host/build.mk
@@ -0,0 +1,11 @@
+# -*- makefile -*-
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Board specific files build
+#
+
+CHIP:=host
+
+board-y=board.o chipset.o
diff --git a/board/host/chipset.c b/board/host/chipset.c
new file mode 100644
index 0000000000..b06e293778
--- /dev/null
+++ b/board/host/chipset.c
@@ -0,0 +1,34 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* Chipset module for emulator */
+
+#include <stdio.h>
+#include "chipset.h"
+#include "common.h"
+#include "task.h"
+
+test_mockable void chipset_reset(int cold_reset)
+{
+ fprintf(stderr, "Chipset reset!\n");
+}
+
+test_mockable void chipset_force_shutdown(void)
+{
+ /* Do nothing */
+}
+
+#ifdef HAS_TASK_CHIPSET
+test_mockable int chipset_in_state(int state_mask)
+{
+ return state_mask & CHIPSET_STATE_SOFT_OFF;
+}
+
+test_mockable void chipset_task(void)
+{
+ while (1)
+ task_wait_event(-1);
+}
+#endif
diff --git a/board/host/ec.tasklist b/board/host/ec.tasklist
new file mode 100644
index 0000000000..d0597f8544
--- /dev/null
+++ b/board/host/ec.tasklist
@@ -0,0 +1,23 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * List of enabled tasks in the priority order
+ *
+ * The first one has the lowest priority.
+ *
+ * For each task, use the macro TASK_ALWAYS(n, r, d, s) for base tasks and
+ * TASK_NOTEST(n, r, d, s) for tasks that can be excluded in test binaries,
+ * where :
+ * 'n' in the name of the task
+ * 'r' in the main routine of the task
+ * 'd' in an opaque parameter passed to the routine at startup
+ * 's' is the stack size in bytes; must be a multiple of 8
+ */
+
+#define CONFIG_TASK_LIST \
+ TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
+ TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
+ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE)