| /* |
| * (C) Copyright 2015 Google, Inc |
| * |
| * SPDX-License-Identifier: GPL-2.0+ |
| */ |
| |
| #include <common.h> |
| #include <clk.h> |
| #include <dm.h> |
| #include <ram.h> |
| #include <asm/io.h> |
| |
| DECLARE_GLOBAL_DATA_PTR; |
| |
| int board_init(void) |
| { |
| return 0; |
| } |
| |
| int dram_init(void) |
| { |
| struct ram_info ram; |
| struct udevice *dev; |
| int ret; |
| |
| ret = uclass_get_device(UCLASS_RAM, 0, &dev); |
| if (ret) { |
| debug("DRAM init failed: %d\n", ret); |
| return ret; |
| } |
| ret = ram_get_info(dev, &ram); |
| if (ret) { |
| debug("Cannot get DRAM size: %d\n", ret); |
| return ret; |
| } |
| debug("SDRAM base=%lx, size=%x\n", ram.base, ram.size); |
| gd->ram_size = ram.size; |
| |
| return 0; |
| } |
| |
| #ifndef CONFIG_SYS_DCACHE_OFF |
| void enable_caches(void) |
| { |
| /* Enable D-cache. I-cache is already enabled in start.S */ |
| dcache_enable(); |
| } |
| #endif |
| |
| void lowlevel_init(void) |
| { |
| } |
| |
| static int do_clock(cmd_tbl_t *cmdtp, int flag, int argc, |
| char * const argv[]) |
| { |
| struct udevice *dev; |
| |
| for (uclass_first_device(UCLASS_CLK, &dev); |
| dev; |
| uclass_next_device(&dev)) { |
| ulong rate; |
| |
| rate = clk_get_rate(dev); |
| printf("%s: %lu\n", dev->name, rate); |
| } |
| |
| return 0; |
| } |
| |
| U_BOOT_CMD( |
| clock, 2, 1, do_clock, |
| "display information about clocks", |
| "" |
| ); |