xref: /rk3399_rockchip-uboot/board/armltd/vexpress64/vexpress64.c (revision 2d0cee1ca2b9d977fa3214896bb2e30cfec77059)
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