blob: 195f620834bf81fbd694a1c2efdfa2340eb865b7 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Simon Glass43bd1942011-10-07 13:53:38 +00002/*
3 * Copyright (c) 2011 The Chromium OS Authors.
Simon Glass43bd1942011-10-07 13:53:38 +00004 */
5
6#include <common.h>
Simon Glass86bf6012014-02-27 13:26:13 -07007#include <cros_ec.h>
Simon Glasse2d8a712014-02-26 15:59:25 -07008#include <dm.h>
Matthias Weisserd99a6872011-11-29 12:16:40 +01009#include <os.h>
Joe Hershberger909bd6d2015-04-21 13:57:18 -050010#include <asm/test.h>
Simon Glass7d95f2a2014-02-27 13:26:19 -070011#include <asm/u-boot-sandbox.h>
Matthias Weisserd99a6872011-11-29 12:16:40 +010012
Simon Glass43bd1942011-10-07 13:53:38 +000013/*
14 * Pointer to initial global data area
15 *
16 * Here we initialize it.
17 */
18gd_t *gd;
19
Simon Glasse2d8a712014-02-26 15:59:25 -070020/* Add a simple GPIO device */
21U_BOOT_DEVICE(gpio_sandbox) = {
22 .name = "gpio_sandbox",
23};
24
Simon Glass43bd1942011-10-07 13:53:38 +000025void flush_cache(unsigned long start, unsigned long size)
26{
27}
28
Thomas Chou9961a0b2015-10-30 15:35:52 +080029#ifndef CONFIG_TIMER
Joe Hershberger909bd6d2015-04-21 13:57:18 -050030/* system timer offset in ms */
31static unsigned long sandbox_timer_offset;
32
33void sandbox_timer_add_offset(unsigned long offset)
34{
35 sandbox_timer_offset += offset;
36}
37
Rob Herring28c860b2013-11-08 08:40:44 -060038unsigned long timer_read_counter(void)
Mike Frysinger6994ccf2012-02-21 00:21:17 -050039{
Joe Hershberger909bd6d2015-04-21 13:57:18 -050040 return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
Simon Glass43bd1942011-10-07 13:53:38 +000041}
Thomas Chou9961a0b2015-10-30 15:35:52 +080042#endif
Simon Glass43bd1942011-10-07 13:53:38 +000043
Simon Glass43bd1942011-10-07 13:53:38 +000044int dram_init(void)
45{
Simon Glassa733b062013-04-26 02:53:43 +000046 gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
Simon Glass43bd1942011-10-07 13:53:38 +000047 return 0;
48}
Simon Glass86bf6012014-02-27 13:26:13 -070049
Simon Glass86bf6012014-02-27 13:26:13 -070050#ifdef CONFIG_BOARD_LATE_INIT
51int board_late_init(void)
52{
53 if (cros_ec_get_error()) {
54 /* Force console on */
55 gd->flags &= ~GD_FLG_SILENT;
56
57 printf("cros-ec communications failure %d\n",
58 cros_ec_get_error());
59 puts("\nPlease reset with Power+Refresh\n\n");
60 panic("Cannot init cros-ec device");
61 return -1;
62 }
63 return 0;
64}
65#endif