uboot/board/armltd/versatile/versatile.c
<<
>>
Prefs
   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