summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2014-05-09 18:48:26 -0400
committerTom Rini <trini@ti.com>2014-05-09 18:48:26 -0400
commitf4617ef86dbbc2b844d530564694b927099bf0a9 (patch)
tree33dd41efabe14ad2ce99559f556fa6f22841f8a5 /arch
parentbcb879c0e37db1cf527ff408df93918f155012ea (diff)
parent097c5de5f4a64d3b121dc1dbe020f7f2545dabdb (diff)
downloadtalos-obmc-uboot-f4617ef86dbbc2b844d530564694b927099bf0a9.tar.gz
talos-obmc-uboot-f4617ef86dbbc2b844d530564694b927099bf0a9.zip
Merge branch 'tom' of git://git.denx.de/u-boot-x86
Diffstat (limited to 'arch')
-rw-r--r--arch/sandbox/config.mk6
-rw-r--r--arch/sandbox/dts/.gitignore1
-rw-r--r--arch/sandbox/lib/Makefile2
-rw-r--r--arch/sandbox/lib/sandbox.c83
4 files changed, 91 insertions, 1 deletions
diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk
index e094ae2d05..c3f889fb1c 100644
--- a/arch/sandbox/config.mk
+++ b/arch/sandbox/config.mk
@@ -18,3 +18,9 @@ cmd_u-boot__ = $(CC) -o $@ -T u-boot.lds \
$(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map
CONFIG_ARCH_DEVICE_TREE := sandbox
+
+# Define this to avoid linking with SDL, which requires SDL libraries
+# This can solve 'sdl-config: Command not found' errors
+ifneq ($(NO_SDL),)
+PLATFORM_CPPFLAGS += -DSANDBOX_NO_SDL
+endif
diff --git a/arch/sandbox/dts/.gitignore b/arch/sandbox/dts/.gitignore
new file mode 100644
index 0000000000..b60ed208c7
--- /dev/null
+++ b/arch/sandbox/dts/.gitignore
@@ -0,0 +1 @@
+*.dtb
diff --git a/arch/sandbox/lib/Makefile b/arch/sandbox/lib/Makefile
index 4c1a38d6bc..6480ebfca6 100644
--- a/arch/sandbox/lib/Makefile
+++ b/arch/sandbox/lib/Makefile
@@ -8,4 +8,4 @@
#
-obj-y += interrupts.o
+obj-y += interrupts.o sandbox.o
diff --git a/arch/sandbox/lib/sandbox.c b/arch/sandbox/lib/sandbox.c
new file mode 100644
index 0000000000..e4d4e021bc
--- /dev/null
+++ b/arch/sandbox/lib/sandbox.c
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors.
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <cros_ec.h>
+#include <dm.h>
+#include <os.h>
+#include <asm/u-boot-sandbox.h>
+
+/*
+ * Pointer to initial global data area
+ *
+ * Here we initialize it.
+ */
+gd_t *gd;
+
+/* Add a simple GPIO device */
+U_BOOT_DEVICE(gpio_sandbox) = {
+ .name = "gpio_sandbox",
+};
+
+void flush_cache(unsigned long start, unsigned long size)
+{
+}
+
+unsigned long timer_read_counter(void)
+{
+ return os_get_nsec() / 1000;
+}
+
+int dram_init(void)
+{
+ gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
+ return 0;
+}
+
+#ifdef CONFIG_BOARD_EARLY_INIT_F
+int board_early_init_f(void)
+{
+#ifdef CONFIG_VIDEO_SANDBOX_SDL
+ int ret;
+
+ ret = sandbox_lcd_sdl_early_init();
+ if (ret) {
+ puts("Could not init sandbox LCD emulation\n");
+ return ret;
+ }
+#endif
+
+ return 0;
+}
+#endif
+
+int arch_early_init_r(void)
+{
+#ifdef CONFIG_CROS_EC
+ if (cros_ec_board_init()) {
+ printf("%s: Failed to init EC\n", __func__);
+ return 0;
+ }
+#endif
+
+ return 0;
+}
+
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+ if (cros_ec_get_error()) {
+ /* Force console on */
+ gd->flags &= ~GD_FLG_SILENT;
+
+ printf("cros-ec communications failure %d\n",
+ cros_ec_get_error());
+ puts("\nPlease reset with Power+Refresh\n\n");
+ panic("Cannot init cros-ec device");
+ return -1;
+ }
+ return 0;
+}
+#endif
OpenPOWER on IntegriCloud