uboot/board/xilinx/ml300/ml300.c
<<
>>
Prefs
   1/*
   2 * ml300.c: U-Boot platform support for Xilinx ML300 board
   3 *
   4 *     Author: Xilinx, Inc.
   5 *
   6 *
   7 *     This program is free software; you can redistribute it and/or modify it
   8 *     under the terms of the GNU General Public License as published by the
   9 *     Free Software Foundation; either version 2 of the License, or (at your
  10 *     option) any later version.
  11 *
  12 *
  13 *     XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
  14 *     COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
  15 *     ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD,
  16 *     XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE
  17 *     FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING
  18 *     ANY THIRD PARTY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
  19 *     XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
  20 *     THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY
  21 *     WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM
  22 *     CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND
  23 *     FITNESS FOR A PARTICULAR PURPOSE.
  24 *
  25 *
  26 *     Xilinx hardware products are not intended for use in life support
  27 *     appliances, devices, or systems. Use in such applications is
  28 *     expressly prohibited.
  29 *
  30 *
  31 *     (c) Copyright 2002-2004 Xilinx Inc.
  32 *     All rights reserved.
  33 *
  34 *
  35 *     You should have received a copy of the GNU General Public License along
  36 *     with this program; if not, write to the Free Software Foundation, Inc.,
  37 *     675 Mass Ave, Cambridge, MA 02139, USA.
  38 *
  39 */
  40
  41#include <config.h>
  42#include <common.h>
  43#include <asm/processor.h>
  44
  45#ifdef CONFIG_ENV_IS_IN_EEPROM
  46extern void convert_env(void);
  47#endif
  48
  49int
  50board_pre_init(void)
  51{
  52        return 0;
  53}
  54
  55int
  56checkboard(void)
  57{
  58        char tmp[64];           /* long enough for environment variables */
  59        char *s, *e;
  60        int i = getenv_r("L", tmp, sizeof (tmp));
  61
  62        if (i < 0) {
  63                printf("### No HW ID - assuming ML300");
  64        } else {
  65                for (e = tmp; *e; ++e) {
  66                        if (*e == ' ')
  67                                break;
  68                }
  69
  70                printf("### Board Serial# is ");
  71
  72                for (s = tmp; s < e; ++s) {
  73                        putc(*s);
  74                }
  75
  76        }
  77        putc('\n');
  78
  79        return (0);
  80}
  81
  82phys_size_t
  83initdram(int board_type)
  84{
  85        return 128 * 1024 * 1024;
  86}
  87
  88int
  89testdram(void)
  90{
  91        printf("test: xxx MB - ok\n");
  92
  93        return (0);
  94}
  95
  96/* implement functions originally in cpu/ppc4xx/speed.c */
  97void
  98get_sys_info(sys_info_t * sysInfo)
  99{
 100        sysInfo->freqProcessor = XPAR_CORE_CLOCK_FREQ_HZ;
 101
 102        /* only correct if the PLB and OPB run at the same frequency */
 103        sysInfo->freqPLB = XPAR_UARTNS550_0_CLOCK_FREQ_HZ;
 104        sysInfo->freqPCI = XPAR_UARTNS550_0_CLOCK_FREQ_HZ / 3;
 105}
 106
 107ulong
 108get_PCI_freq(void)
 109{
 110        ulong val;
 111        PPC4xx_SYS_INFO sys_info;
 112
 113        get_sys_info(&sys_info);
 114        val = sys_info.freqPCI;
 115        return val;
 116}
 117
 118#ifdef CONFIG_MISC_INIT_R
 119
 120int
 121misc_init_r()
 122{
 123        /* convert env name and value to u-boot standard */
 124        convert_env();
 125        return 0;
 126}
 127
 128#endif
 129