blob: e91fa40e640cedbeb7373b9bc44b65480d418080 [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>
Simon Glass3ba929a2020-10-30 21:38:53 -060011#include <asm/global_data.h>
Scott Branden5a5cb002014-08-11 13:58:25 -070012#include <asm/io.h>
13#include <config.h>
Jiandong Zheng19b6b692015-07-15 16:28:14 -070014#include <netdev.h>
Scott Branden5a5cb002014-08-11 13:58:25 -070015#include <asm/system.h>
16#include <asm/iproc-common/armpll.h>
17
18DECLARE_GLOBAL_DATA_PTR;
19
20/*
21 * board_init - early hardware init
22 */
23int board_init(void)
24{
25 /*
26 * Address of boot parameters passed to kernel
27 * Use default offset 0x100
28 */
Tom Rinibb4dd962022-11-16 13:10:37 -050029 gd->bd->bi_boot_params = CFG_SYS_SDRAM_BASE + 0x100;
Scott Branden5a5cb002014-08-11 13:58:25 -070030
31 return 0;
32}
33
34/*
35 * dram_init - sets u-boot's idea of sdram size
36 */
37int dram_init(void)
38{
Tom Rinibb4dd962022-11-16 13:10:37 -050039 gd->ram_size = get_ram_size((long *)CFG_SYS_SDRAM_BASE,
40 CFG_SYS_SDRAM_SIZE);
Scott Branden5a5cb002014-08-11 13:58:25 -070041 return 0;
42}
43
Simon Glass2f949c32017-03-31 08:40:32 -060044int dram_init_banksize(void)
Scott Branden5a5cb002014-08-11 13:58:25 -070045{
Tom Rinibb4dd962022-11-16 13:10:37 -050046 gd->bd->bi_dram[0].start = CFG_SYS_SDRAM_BASE;
Scott Branden5a5cb002014-08-11 13:58:25 -070047 gd->bd->bi_dram[0].size = gd->ram_size;
Simon Glass2f949c32017-03-31 08:40:32 -060048
49 return 0;
Scott Branden5a5cb002014-08-11 13:58:25 -070050}
51
52int board_early_init_f(void)
53{
54 uint32_t status = 0;
55
56 /* Setup PLL if required */
57#if defined(CONFIG_ARMCLK)
58 armpll_config(CONFIG_ARMCLK);
59#endif
60
61 return status;
62}
Steve Rae1c5f31c2014-11-11 11:32:18 -080063
Jan Kiszkaac31b5a2015-04-21 07:18:24 +020064#ifdef CONFIG_ARMV7_NONSEC
Steve Rae1c5f31c2014-11-11 11:32:18 -080065void smp_set_core_boot_addr(unsigned long addr, int corenr)
66{
67}
68
69void smp_kick_all_cpus(void)
70{
71}
72
73void smp_waitloop(unsigned previous_address)
74{
75}
76#endif
Jiandong Zheng19b6b692015-07-15 16:28:14 -070077
78#ifdef CONFIG_BCM_SF2_ETH
Masahiro Yamadaf7ed78b2020-06-26 15:13:33 +090079int board_eth_init(struct bd_info *bis)
Jiandong Zheng19b6b692015-07-15 16:28:14 -070080{
81 int rc = -1;
82 printf("Registering BCM sf2 eth\n");
83 rc = bcm_sf2_eth_register(bis, 0);
84 return rc;
85}
86#endif