1da1f5ac2SScott Branden /* 2da1f5ac2SScott Branden * Copyright 2014 Broadcom Corporation. 3da1f5ac2SScott Branden * 4da1f5ac2SScott Branden * SPDX-License-Identifier: GPL-2.0+ 5da1f5ac2SScott Branden */ 6da1f5ac2SScott Branden 7da1f5ac2SScott Branden #include <common.h> 8da1f5ac2SScott Branden #include <asm/io.h> 9da1f5ac2SScott Branden #include <config.h> 10*39d0ce06SJiandong Zheng #include <netdev.h> 11da1f5ac2SScott Branden #include <asm/system.h> 12da1f5ac2SScott Branden #include <asm/iproc-common/armpll.h> 13da1f5ac2SScott Branden 14da1f5ac2SScott Branden DECLARE_GLOBAL_DATA_PTR; 15da1f5ac2SScott Branden 16da1f5ac2SScott Branden /* 17da1f5ac2SScott Branden * board_init - early hardware init 18da1f5ac2SScott Branden */ 19da1f5ac2SScott Branden int board_init(void) 20da1f5ac2SScott Branden { 21da1f5ac2SScott Branden /* 22da1f5ac2SScott Branden * Address of boot parameters passed to kernel 23da1f5ac2SScott Branden * Use default offset 0x100 24da1f5ac2SScott Branden */ 25da1f5ac2SScott Branden gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; 26da1f5ac2SScott Branden 27da1f5ac2SScott Branden return 0; 28da1f5ac2SScott Branden } 29da1f5ac2SScott Branden 30da1f5ac2SScott Branden /* 31da1f5ac2SScott Branden * dram_init - sets u-boot's idea of sdram size 32da1f5ac2SScott Branden */ 33da1f5ac2SScott Branden int dram_init(void) 34da1f5ac2SScott Branden { 35da1f5ac2SScott Branden gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, 36da1f5ac2SScott Branden CONFIG_SYS_SDRAM_SIZE); 37da1f5ac2SScott Branden return 0; 38da1f5ac2SScott Branden } 39da1f5ac2SScott Branden 40da1f5ac2SScott Branden void dram_init_banksize(void) 41da1f5ac2SScott Branden { 42da1f5ac2SScott Branden gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; 43da1f5ac2SScott Branden gd->bd->bi_dram[0].size = gd->ram_size; 44da1f5ac2SScott Branden } 45da1f5ac2SScott Branden 46da1f5ac2SScott Branden int board_early_init_f(void) 47da1f5ac2SScott Branden { 48da1f5ac2SScott Branden uint32_t status = 0; 49da1f5ac2SScott Branden 50da1f5ac2SScott Branden /* Setup PLL if required */ 51da1f5ac2SScott Branden #if defined(CONFIG_ARMCLK) 52da1f5ac2SScott Branden armpll_config(CONFIG_ARMCLK); 53da1f5ac2SScott Branden #endif 54da1f5ac2SScott Branden 55da1f5ac2SScott Branden return status; 56da1f5ac2SScott Branden } 57abb1678cSSteve Rae 58104d6fb6SJan Kiszka #ifdef CONFIG_ARMV7_NONSEC 59abb1678cSSteve Rae void smp_set_core_boot_addr(unsigned long addr, int corenr) 60abb1678cSSteve Rae { 61abb1678cSSteve Rae } 62abb1678cSSteve Rae 63abb1678cSSteve Rae void smp_kick_all_cpus(void) 64abb1678cSSteve Rae { 65abb1678cSSteve Rae } 66abb1678cSSteve Rae 67abb1678cSSteve Rae void smp_waitloop(unsigned previous_address) 68abb1678cSSteve Rae { 69abb1678cSSteve Rae } 70abb1678cSSteve Rae #endif 71*39d0ce06SJiandong Zheng 72*39d0ce06SJiandong Zheng #ifdef CONFIG_BCM_SF2_ETH 73*39d0ce06SJiandong Zheng int board_eth_init(bd_t *bis) 74*39d0ce06SJiandong Zheng { 75*39d0ce06SJiandong Zheng int rc = -1; 76*39d0ce06SJiandong Zheng printf("Registering BCM sf2 eth\n"); 77*39d0ce06SJiandong Zheng rc = bcm_sf2_eth_register(bis, 0); 78*39d0ce06SJiandong Zheng return rc; 79*39d0ce06SJiandong Zheng } 80*39d0ce06SJiandong Zheng #endif 81