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/u-boot-sandbox.h> 11 12 /* 13 * Pointer to initial global data area 14 * 15 * Here we initialize it. 16 */ 17 gd_t *gd; 18 19 /* Add a simple GPIO device */ 20 U_BOOT_DEVICE(gpio_sandbox) = { 21 .name = "gpio_sandbox", 22 }; 23 24 void flush_cache(unsigned long start, unsigned long size) 25 { 26 } 27 28 unsigned long timer_read_counter(void) 29 { 30 return os_get_nsec() / 1000; 31 } 32 33 int dram_init(void) 34 { 35 gd->ram_size = CONFIG_SYS_SDRAM_SIZE; 36 return 0; 37 } 38 39 #ifdef CONFIG_BOARD_EARLY_INIT_F 40 int board_early_init_f(void) 41 { 42 #ifdef CONFIG_VIDEO_SANDBOX_SDL 43 int ret; 44 45 ret = sandbox_lcd_sdl_early_init(); 46 if (ret) { 47 puts("Could not init sandbox LCD emulation\n"); 48 return ret; 49 } 50 #endif 51 52 return 0; 53 } 54 #endif 55 56 #ifdef CONFIG_BOARD_LATE_INIT 57 int board_late_init(void) 58 { 59 if (cros_ec_get_error()) { 60 /* Force console on */ 61 gd->flags &= ~GD_FLG_SILENT; 62 63 printf("cros-ec communications failure %d\n", 64 cros_ec_get_error()); 65 puts("\nPlease reset with Power+Refresh\n\n"); 66 panic("Cannot init cros-ec device"); 67 return -1; 68 } 69 return 0; 70 } 71 #endif 72