1/* 2 * (C) Copyright 2002 3 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 4 * Marius Groeger <mgroeger@sysgo.de> 5 * 6 * (C) Copyright 2002 7 * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> 8 * 9 * (C) Copyright 2003 10 * Texas Instruments, <www.ti.com> 11 * Kshitij Gupta <Kshitij@ti.com> 12 * 13 * (C) Copyright 2004 14 * ARM Ltd. 15 * Philippe Robin, <philippe.robin@arm.com> 16 * 17 * See file CREDITS for list of people who contributed to this 18 * project. 19 * 20 * This program is free software; you can redistribute it and/or 21 * modify it under the terms of the GNU General Public License as 22 * published by the Free Software Foundation; either version 2 of 23 * the License, or (at your option) any later version. 24 * 25 * This program is distributed in the hope that it will be useful, 26 * but WITHOUT ANY WARRANTY; without even the implied warranty of 27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 28 * GNU General Public License for more details. 29 * 30 * You should have received a copy of the GNU General Public License 31 * along with this program; if not, write to the Free Software 32 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 33 * MA 02111-1307 USA 34 */ 35 36#include <common.h> 37#include <netdev.h> 38 39DECLARE_GLOBAL_DATA_PTR; 40 41#if defined(CONFIG_SHOW_BOOT_PROGRESS) 42void show_boot_progress(int progress) 43{ 44 printf("Boot reached stage %d\n", progress); 45} 46#endif 47 48#define COMP_MODE_ENABLE ((unsigned int)0x0000EAEF) 49 50/* 51 * Miscellaneous platform dependent initialisations 52 */ 53 54int board_early_init_f (void) 55{ 56 /* 57 * set clock frequency: 58 * VERSATILE_REFCLK is 32KHz 59 * VERSATILE_TIMCLK is 1MHz 60 */ 61 *(volatile unsigned int *)(VERSATILE_SCTL_BASE) |= 62 ((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) | (VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) | 63 (VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) | (VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel)); 64 65 return 0; 66} 67 68int board_init (void) 69{ 70 /* arch number of Versatile Board */ 71 gd->bd->bi_arch_number = MACH_TYPE_VERSATILE_PB; 72 73 /* adress of boot parameters */ 74 gd->bd->bi_boot_params = 0x00000100; 75 76 gd->flags = 0; 77 78 icache_enable (); 79 80 return 0; 81} 82 83 84int misc_init_r (void) 85{ 86 setenv("verify", "n"); 87 return (0); 88} 89 90/****************************** 91 Routine: 92 Description: 93******************************/ 94int dram_init (void) 95{ 96 /* dram_init must store complete ramsize in gd->ram_size */ 97 gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE, 98 PHYS_SDRAM_1_SIZE); 99 return 0; 100} 101 102#ifdef CONFIG_CMD_NET 103int board_eth_init(bd_t *bis) 104{ 105 int rc = 0; 106#ifdef CONFIG_SMC91111 107 rc = smc91111_initialize(0, CONFIG_SMC91111_BASE); 108#endif 109 return rc; 110} 111#endif 112