1 /* 2 * Copyright (c) 2011 The Chromium OS Authors. 3 * SPDX-License-Identifier: GPL-2.0+ 4 */ 5 6 #include <common.h> 7 #include <cros_ec.h> 8 #include <dm.h> 9 #include <os.h> 10 #include <asm/test.h> 11 #include <asm/u-boot-sandbox.h> 12 13 /* 14 * Pointer to initial global data area 15 * 16 * Here we initialize it. 17 */ 18 gd_t *gd; 19 20 /* Add a simple GPIO device */ 21 U_BOOT_DEVICE(gpio_sandbox) = { 22 .name = "gpio_sandbox", 23 }; 24 25 void flush_cache(unsigned long start, unsigned long size) 26 { 27 } 28 29 #ifndef CONFIG_TIMER 30 /* system timer offset in ms */ 31 static unsigned long sandbox_timer_offset; 32 33 void sandbox_timer_add_offset(unsigned long offset) 34 { 35 sandbox_timer_offset += offset; 36 } 37 38 unsigned long timer_read_counter(void) 39 { 40 return os_get_nsec() / 1000 + sandbox_timer_offset * 1000; 41 } 42 #endif 43 44 int dram_init(void) 45 { 46 gd->ram_size = CONFIG_SYS_SDRAM_SIZE; 47 return 0; 48 } 49 50 #ifdef CONFIG_BOARD_EARLY_INIT_F 51 int board_early_init_f(void) 52 { 53 #ifdef CONFIG_VIDEO_SANDBOX_SDL 54 int ret; 55 56 ret = sandbox_lcd_sdl_early_init(); 57 if (ret) { 58 puts("Could not init sandbox LCD emulation\n"); 59 return ret; 60 } 61 #endif 62 63 return 0; 64 } 65 #endif 66 67 #ifdef CONFIG_BOARD_LATE_INIT 68 int board_late_init(void) 69 { 70 if (cros_ec_get_error()) { 71 /* Force console on */ 72 gd->flags &= ~GD_FLG_SILENT; 73 74 printf("cros-ec communications failure %d\n", 75 cros_ec_get_error()); 76 puts("\nPlease reset with Power+Refresh\n\n"); 77 panic("Cannot init cros-ec device"); 78 return -1; 79 } 80 return 0; 81 } 82 #endif 83