xref: /rk3399_rockchip-uboot/board/freescale/mx31pdk/mx31pdk.c (revision e9e0790cffe66a98ce5ec4526035ff8a09b00fe3)
18449f287SMagnus Lilja /*
28449f287SMagnus Lilja  *
38449f287SMagnus Lilja  * (C) Copyright 2009 Magnus Lilja <lilja.magnus@gmail.com>
48449f287SMagnus Lilja  *
58449f287SMagnus Lilja  * (c) 2007 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de>
68449f287SMagnus Lilja  *
78449f287SMagnus Lilja  * See file CREDITS for list of people who contributed to this
88449f287SMagnus Lilja  * project.
98449f287SMagnus Lilja  *
108449f287SMagnus Lilja  * This program is free software; you can redistribute it and/or
118449f287SMagnus Lilja  * modify it under the terms of the GNU General Public License as
128449f287SMagnus Lilja  * published by the Free Software Foundation; either version 2 of
138449f287SMagnus Lilja  * the License, or (at your option) any later version.
148449f287SMagnus Lilja  *
158449f287SMagnus Lilja  * This program is distributed in the hope that it will be useful,
168449f287SMagnus Lilja  * but WITHOUT ANY WARRANTY; without even the implied warranty of
178449f287SMagnus Lilja  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
188449f287SMagnus Lilja  * GNU General Public License for more details.
198449f287SMagnus Lilja  *
208449f287SMagnus Lilja  * You should have received a copy of the GNU General Public License
218449f287SMagnus Lilja  * along with this program; if not, write to the Free Software
228449f287SMagnus Lilja  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
238449f287SMagnus Lilja  * MA 02111-1307 USA
248449f287SMagnus Lilja  */
258449f287SMagnus Lilja 
268449f287SMagnus Lilja 
278449f287SMagnus Lilja #include <common.h>
28736fead8SBen Warren #include <netdev.h>
2986271115SStefano Babic #include <asm/arch/clock.h>
3086271115SStefano Babic #include <asm/arch/imx-regs.h>
318449f287SMagnus Lilja 
328449f287SMagnus Lilja DECLARE_GLOBAL_DATA_PTR;
338449f287SMagnus Lilja 
348449f287SMagnus Lilja int dram_init(void)
358449f287SMagnus Lilja {
36ed3df72dSFabio Estevam 	/* dram_init must store complete ramsize in gd->ram_size */
37ed3df72dSFabio Estevam 	gd->ram_size = get_ram_size((volatile void *)CONFIG_SYS_SDRAM_BASE,
38ed3df72dSFabio Estevam 				PHYS_SDRAM_1_SIZE);
39ed3df72dSFabio Estevam 	return 0;
40ed3df72dSFabio Estevam }
41ed3df72dSFabio Estevam 
42ed3df72dSFabio Estevam void dram_init_banksize(void)
43ed3df72dSFabio Estevam {
448449f287SMagnus Lilja 	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
458449f287SMagnus Lilja 	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
468449f287SMagnus Lilja }
478449f287SMagnus Lilja 
489b6442f9SFabio Estevam int board_early_init_f(void)
498449f287SMagnus Lilja {
508449f287SMagnus Lilja 	/* CS5: CPLD incl. network controller */
518449f287SMagnus Lilja 	__REG(CSCR_U(5)) = 0x0000d843;
528449f287SMagnus Lilja 	__REG(CSCR_L(5)) = 0x22252521;
538449f287SMagnus Lilja 	__REG(CSCR_A(5)) = 0x22220a00;
548449f287SMagnus Lilja 
558449f287SMagnus Lilja 	/* Setup UART1 and SPI2 pins */
568449f287SMagnus Lilja 	mx31_uart1_hw_init();
578449f287SMagnus Lilja 	mx31_spi2_hw_init();
588449f287SMagnus Lilja 
599b6442f9SFabio Estevam 	return 0;
609b6442f9SFabio Estevam }
619b6442f9SFabio Estevam 
629b6442f9SFabio Estevam int board_init(void)
639b6442f9SFabio Estevam {
648449f287SMagnus Lilja 	gd->bd->bi_arch_number = MACH_TYPE_MX31_3DS; /* board id for linux */
658449f287SMagnus Lilja 	/* adress of boot parameters */
668449f287SMagnus Lilja 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
678449f287SMagnus Lilja 
688449f287SMagnus Lilja 	return 0;
698449f287SMagnus Lilja }
708449f287SMagnus Lilja 
718449f287SMagnus Lilja int checkboard(void)
728449f287SMagnus Lilja {
73*e9e0790cSFabio Estevam 	printf("Board: MX31PDK\n");
748449f287SMagnus Lilja 	return 0;
758449f287SMagnus Lilja }
76736fead8SBen Warren 
77736fead8SBen Warren int board_eth_init(bd_t *bis)
78736fead8SBen Warren {
79736fead8SBen Warren 	int rc = 0;
80736fead8SBen Warren #ifdef CONFIG_SMC911X
81736fead8SBen Warren 	rc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
82736fead8SBen Warren #endif
83736fead8SBen Warren 	return rc;
84736fead8SBen Warren }
85