112916829SDavid Feng /* 212916829SDavid Feng * (C) Copyright 2013 312916829SDavid Feng * David Feng <fenghua@phytium.com.cn> 412916829SDavid Feng * Sharma Bhupesh <bhupesh.sharma@freescale.com> 512916829SDavid Feng * 612916829SDavid Feng * SPDX-License-Identifier: GPL-2.0+ 712916829SDavid Feng */ 812916829SDavid Feng #include <common.h> 912916829SDavid Feng #include <malloc.h> 1012916829SDavid Feng #include <errno.h> 1112916829SDavid Feng #include <netdev.h> 1212916829SDavid Feng #include <asm/io.h> 1312916829SDavid Feng #include <linux/compiler.h> 14d8bafe13SDavid Feng #include <dm/platdata.h> 15d8bafe13SDavid Feng #include <dm/platform_data/serial_pl01x.h> 1612916829SDavid Feng 1712916829SDavid Feng DECLARE_GLOBAL_DATA_PTR; 1812916829SDavid Feng 19d8bafe13SDavid Feng static const struct pl01x_serial_platdata serial_platdata = { 20d8bafe13SDavid Feng .base = V2M_UART0, 21d8bafe13SDavid Feng .type = TYPE_PL011, 22d280ea00SLinus Walleij .clock = CONFIG_PL011_CLOCK, 23d8bafe13SDavid Feng }; 24d8bafe13SDavid Feng 25d8bafe13SDavid Feng U_BOOT_DEVICE(vexpress_serials) = { 26d8bafe13SDavid Feng .name = "serial_pl01x", 27d8bafe13SDavid Feng .platdata = &serial_platdata, 28d8bafe13SDavid Feng }; 29d8bafe13SDavid Feng 3012916829SDavid Feng int board_init(void) 3112916829SDavid Feng { 3212916829SDavid Feng return 0; 3312916829SDavid Feng } 3412916829SDavid Feng 3512916829SDavid Feng int dram_init(void) 3612916829SDavid Feng { 3712916829SDavid Feng gd->ram_size = PHYS_SDRAM_1_SIZE; 3812916829SDavid Feng return 0; 3912916829SDavid Feng } 4012916829SDavid Feng 41*2d0cee1cSLiviu Dudau void dram_init_banksize(void) 42*2d0cee1cSLiviu Dudau { 43*2d0cee1cSLiviu Dudau gd->bd->bi_dram[0].start = PHYS_SDRAM_1; 44*2d0cee1cSLiviu Dudau gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; 45*2d0cee1cSLiviu Dudau gd->bd->bi_dram[1].start = PHYS_SDRAM_2; 46*2d0cee1cSLiviu Dudau gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE; 47*2d0cee1cSLiviu Dudau } 48*2d0cee1cSLiviu Dudau 4912916829SDavid Feng /* 5012916829SDavid Feng * Board specific reset that is system reset. 5112916829SDavid Feng */ 5212916829SDavid Feng void reset_cpu(ulong addr) 5312916829SDavid Feng { 5412916829SDavid Feng } 5512916829SDavid Feng 5612916829SDavid Feng /* 5712916829SDavid Feng * Board specific ethernet initialization routine. 5812916829SDavid Feng */ 5912916829SDavid Feng int board_eth_init(bd_t *bis) 6012916829SDavid Feng { 6112916829SDavid Feng int rc = 0; 6212916829SDavid Feng #ifdef CONFIG_SMC91111 6312916829SDavid Feng rc = smc91111_initialize(0, CONFIG_SMC91111_BASE); 6412916829SDavid Feng #endif 65b31f9d7aSLinus Walleij #ifdef CONFIG_SMC911X 66b31f9d7aSLinus Walleij rc = smc911x_initialize(0, CONFIG_SMC911X_BASE); 67b31f9d7aSLinus Walleij #endif 6812916829SDavid Feng return rc; 6912916829SDavid Feng } 70