xref: /rk3399_rockchip-uboot/board/broadcom/bcm_ep/board.c (revision da1f5ac29593449d66833e01668c878ac0665a2e)
1*da1f5ac2SScott Branden /*
2*da1f5ac2SScott Branden  * Copyright 2014 Broadcom Corporation.
3*da1f5ac2SScott Branden  *
4*da1f5ac2SScott Branden  * SPDX-License-Identifier:	GPL-2.0+
5*da1f5ac2SScott Branden  */
6*da1f5ac2SScott Branden 
7*da1f5ac2SScott Branden #include <common.h>
8*da1f5ac2SScott Branden #include <asm/io.h>
9*da1f5ac2SScott Branden #include <config.h>
10*da1f5ac2SScott Branden #include <asm/system.h>
11*da1f5ac2SScott Branden #include <asm/iproc-common/armpll.h>
12*da1f5ac2SScott Branden 
13*da1f5ac2SScott Branden DECLARE_GLOBAL_DATA_PTR;
14*da1f5ac2SScott Branden 
15*da1f5ac2SScott Branden /*
16*da1f5ac2SScott Branden  * board_init - early hardware init
17*da1f5ac2SScott Branden  */
18*da1f5ac2SScott Branden int board_init(void)
19*da1f5ac2SScott Branden {
20*da1f5ac2SScott Branden 	/*
21*da1f5ac2SScott Branden 	 * Address of boot parameters passed to kernel
22*da1f5ac2SScott Branden 	 * Use default offset 0x100
23*da1f5ac2SScott Branden 	 */
24*da1f5ac2SScott Branden 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
25*da1f5ac2SScott Branden 
26*da1f5ac2SScott Branden 	return 0;
27*da1f5ac2SScott Branden }
28*da1f5ac2SScott Branden 
29*da1f5ac2SScott Branden /*
30*da1f5ac2SScott Branden  * dram_init - sets u-boot's idea of sdram size
31*da1f5ac2SScott Branden  */
32*da1f5ac2SScott Branden int dram_init(void)
33*da1f5ac2SScott Branden {
34*da1f5ac2SScott Branden 	gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
35*da1f5ac2SScott Branden 				    CONFIG_SYS_SDRAM_SIZE);
36*da1f5ac2SScott Branden 	return 0;
37*da1f5ac2SScott Branden }
38*da1f5ac2SScott Branden 
39*da1f5ac2SScott Branden void dram_init_banksize(void)
40*da1f5ac2SScott Branden {
41*da1f5ac2SScott Branden 	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
42*da1f5ac2SScott Branden 	gd->bd->bi_dram[0].size = gd->ram_size;
43*da1f5ac2SScott Branden }
44*da1f5ac2SScott Branden 
45*da1f5ac2SScott Branden int board_early_init_f(void)
46*da1f5ac2SScott Branden {
47*da1f5ac2SScott Branden 	uint32_t status = 0;
48*da1f5ac2SScott Branden 
49*da1f5ac2SScott Branden 	/* Setup PLL if required */
50*da1f5ac2SScott Branden #if defined(CONFIG_ARMCLK)
51*da1f5ac2SScott Branden 	armpll_config(CONFIG_ARMCLK);
52*da1f5ac2SScott Branden #endif
53*da1f5ac2SScott Branden 
54*da1f5ac2SScott Branden 	return status;
55*da1f5ac2SScott Branden }
56