xref: /rk3399_rockchip-uboot/board/sandbox/sandbox.c (revision 6905f4d3c7be46fed4859f51f0a8f9a1107c22e7)
12dabac13SMasahiro Yamada /*
22dabac13SMasahiro Yamada  * Copyright (c) 2011 The Chromium OS Authors.
32dabac13SMasahiro Yamada  * SPDX-License-Identifier:	GPL-2.0+
42dabac13SMasahiro Yamada  */
52dabac13SMasahiro Yamada 
62dabac13SMasahiro Yamada #include <common.h>
72dabac13SMasahiro Yamada #include <cros_ec.h>
82dabac13SMasahiro Yamada #include <dm.h>
92dabac13SMasahiro Yamada #include <os.h>
10909bd6d9SJoe Hershberger #include <asm/test.h>
112dabac13SMasahiro Yamada #include <asm/u-boot-sandbox.h>
122dabac13SMasahiro Yamada 
132dabac13SMasahiro Yamada /*
142dabac13SMasahiro Yamada  * Pointer to initial global data area
152dabac13SMasahiro Yamada  *
162dabac13SMasahiro Yamada  * Here we initialize it.
172dabac13SMasahiro Yamada  */
182dabac13SMasahiro Yamada gd_t *gd;
192dabac13SMasahiro Yamada 
202dabac13SMasahiro Yamada /* Add a simple GPIO device */
212dabac13SMasahiro Yamada U_BOOT_DEVICE(gpio_sandbox) = {
222dabac13SMasahiro Yamada 	.name = "gpio_sandbox",
232dabac13SMasahiro Yamada };
242dabac13SMasahiro Yamada 
flush_cache(unsigned long start,unsigned long size)252dabac13SMasahiro Yamada void flush_cache(unsigned long start, unsigned long size)
262dabac13SMasahiro Yamada {
272dabac13SMasahiro Yamada }
282dabac13SMasahiro Yamada 
29*9961a0b6SThomas Chou #ifndef CONFIG_TIMER
30909bd6d9SJoe Hershberger /* system timer offset in ms */
31909bd6d9SJoe Hershberger static unsigned long sandbox_timer_offset;
32909bd6d9SJoe Hershberger 
sandbox_timer_add_offset(unsigned long offset)33909bd6d9SJoe Hershberger void sandbox_timer_add_offset(unsigned long offset)
34909bd6d9SJoe Hershberger {
35909bd6d9SJoe Hershberger 	sandbox_timer_offset += offset;
36909bd6d9SJoe Hershberger }
37909bd6d9SJoe Hershberger 
timer_read_counter(void)382dabac13SMasahiro Yamada unsigned long timer_read_counter(void)
392dabac13SMasahiro Yamada {
40909bd6d9SJoe Hershberger 	return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
412dabac13SMasahiro Yamada }
42*9961a0b6SThomas Chou #endif
432dabac13SMasahiro Yamada 
dram_init(void)442dabac13SMasahiro Yamada int dram_init(void)
452dabac13SMasahiro Yamada {
462dabac13SMasahiro Yamada 	gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
472dabac13SMasahiro Yamada 	return 0;
482dabac13SMasahiro Yamada }
492dabac13SMasahiro Yamada 
502dabac13SMasahiro Yamada #ifdef CONFIG_BOARD_LATE_INIT
board_late_init(void)512dabac13SMasahiro Yamada int board_late_init(void)
522dabac13SMasahiro Yamada {
532dabac13SMasahiro Yamada 	if (cros_ec_get_error()) {
542dabac13SMasahiro Yamada 		/* Force console on */
552dabac13SMasahiro Yamada 		gd->flags &= ~GD_FLG_SILENT;
562dabac13SMasahiro Yamada 
572dabac13SMasahiro Yamada 		printf("cros-ec communications failure %d\n",
582dabac13SMasahiro Yamada 		       cros_ec_get_error());
592dabac13SMasahiro Yamada 		puts("\nPlease reset with Power+Refresh\n\n");
602dabac13SMasahiro Yamada 		panic("Cannot init cros-ec device");
612dabac13SMasahiro Yamada 		return -1;
622dabac13SMasahiro Yamada 	}
632dabac13SMasahiro Yamada 	return 0;
642dabac13SMasahiro Yamada }
652dabac13SMasahiro Yamada #endif
66