blob: 63fb98ba7c527ce5357a7cb060018dd62d189846 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Scott Branden5a5cb002014-08-11 13:58:25 -07002/*
3 * Copyright 2014 Broadcom Corporation.
Scott Branden5a5cb002014-08-11 13:58:25 -07004 */
5
6#include <common.h>
Simon Glass370382c2019-11-14 12:57:35 -07007#include <cpu_func.h>
Scott Branden5a5cb002014-08-11 13:58:25 -07008#include <asm/io.h>
9#include <config.h>
Jiandong Zheng19b6b692015-07-15 16:28:14 -070010#include <netdev.h>
Scott Branden5a5cb002014-08-11 13:58:25 -070011#include <asm/system.h>
12#include <asm/iproc-common/armpll.h>
13
14DECLARE_GLOBAL_DATA_PTR;
15
16/*
17 * board_init - early hardware init
18 */
19int board_init(void)
20{
21 /*
22 * Address of boot parameters passed to kernel
23 * Use default offset 0x100
24 */
25 gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
26
27 return 0;
28}
29
30/*
31 * dram_init - sets u-boot's idea of sdram size
32 */
33int dram_init(void)
34{
35 gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
36 CONFIG_SYS_SDRAM_SIZE);
37 return 0;
38}
39
Simon Glass2f949c32017-03-31 08:40:32 -060040int dram_init_banksize(void)
Scott Branden5a5cb002014-08-11 13:58:25 -070041{
42 gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
43 gd->bd->bi_dram[0].size = gd->ram_size;
Simon Glass2f949c32017-03-31 08:40:32 -060044
45 return 0;
Scott Branden5a5cb002014-08-11 13:58:25 -070046}
47
48int board_early_init_f(void)
49{
50 uint32_t status = 0;
51
52 /* Setup PLL if required */
53#if defined(CONFIG_ARMCLK)
54 armpll_config(CONFIG_ARMCLK);
55#endif
56
57 return status;
58}
Steve Rae1c5f31c2014-11-11 11:32:18 -080059
Jan Kiszkaac31b5a2015-04-21 07:18:24 +020060#ifdef CONFIG_ARMV7_NONSEC
Steve Rae1c5f31c2014-11-11 11:32:18 -080061void smp_set_core_boot_addr(unsigned long addr, int corenr)
62{
63}
64
65void smp_kick_all_cpus(void)
66{
67}
68
69void smp_waitloop(unsigned previous_address)
70{
71}
72#endif
Jiandong Zheng19b6b692015-07-15 16:28:14 -070073
74#ifdef CONFIG_BCM_SF2_ETH
75int board_eth_init(bd_t *bis)
76{
77 int rc = -1;
78 printf("Registering BCM sf2 eth\n");
79 rc = bcm_sf2_eth_register(bis, 0);
80 return rc;
81}
82#endif