blob: ad9af92b55915b6523d24c2f915a72cb456f280c [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>
Simon Glass8e16b1e2019-12-28 10:45:05 -07008#include <init.h>
Simon Glass274e0b02020-05-10 11:39:56 -06009#include <net.h>
10#include <asm/cache.h>
Scott Branden5a5cb002014-08-11 13:58:25 -070011#include <asm/io.h>
12#include <config.h>
Jiandong Zheng19b6b692015-07-15 16:28:14 -070013#include <netdev.h>
Scott Branden5a5cb002014-08-11 13:58:25 -070014#include <asm/system.h>
15#include <asm/iproc-common/armpll.h>
16
17DECLARE_GLOBAL_DATA_PTR;
18
19/*
20 * board_init - early hardware init
21 */
22int board_init(void)
23{
24 /*
25 * Address of boot parameters passed to kernel
26 * Use default offset 0x100
27 */
28 gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
29
30 return 0;
31}
32
33/*
34 * dram_init - sets u-boot's idea of sdram size
35 */
36int dram_init(void)
37{
38 gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
39 CONFIG_SYS_SDRAM_SIZE);
40 return 0;
41}
42
Simon Glass2f949c32017-03-31 08:40:32 -060043int dram_init_banksize(void)
Scott Branden5a5cb002014-08-11 13:58:25 -070044{
45 gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
46 gd->bd->bi_dram[0].size = gd->ram_size;
Simon Glass2f949c32017-03-31 08:40:32 -060047
48 return 0;
Scott Branden5a5cb002014-08-11 13:58:25 -070049}
50
51int board_early_init_f(void)
52{
53 uint32_t status = 0;
54
55 /* Setup PLL if required */
56#if defined(CONFIG_ARMCLK)
57 armpll_config(CONFIG_ARMCLK);
58#endif
59
60 return status;
61}
Steve Rae1c5f31c2014-11-11 11:32:18 -080062
Jan Kiszkaac31b5a2015-04-21 07:18:24 +020063#ifdef CONFIG_ARMV7_NONSEC
Steve Rae1c5f31c2014-11-11 11:32:18 -080064void smp_set_core_boot_addr(unsigned long addr, int corenr)
65{
66}
67
68void smp_kick_all_cpus(void)
69{
70}
71
72void smp_waitloop(unsigned previous_address)
73{
74}
75#endif
Jiandong Zheng19b6b692015-07-15 16:28:14 -070076
77#ifdef CONFIG_BCM_SF2_ETH
Masahiro Yamadaf7ed78b2020-06-26 15:13:33 +090078int board_eth_init(struct bd_info *bis)
Jiandong Zheng19b6b692015-07-15 16:28:14 -070079{
80 int rc = -1;
81 printf("Registering BCM sf2 eth\n");
82 rc = bcm_sf2_eth_register(bis, 0);
83 return rc;
84}
85#endif