blob: 5d493eeb733dfd0bf23fe43f7c270818ad9112b3 [file] [log] [blame]
wdenk028ab6b2004-02-23 23:54:43 +00001/*
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
Grant Likely99b0f0f2007-02-20 09:04:52 +010041#include <config.h>
wdenk028ab6b2004-02-23 23:54:43 +000042#include <common.h>
43#include <asm/processor.h>
wdenk028ab6b2004-02-23 23:54:43 +000044
wdenka06752e2004-09-29 22:43:59 +000045#ifdef CFG_ENV_IS_IN_EEPROM
46extern void convert_env(void);
47#endif
48
wdenk028ab6b2004-02-23 23:54:43 +000049int
50board_pre_init(void)
51{
52 return 0;
53}
54
55int
56checkboard(void)
57{
Wolfgang Denk77ddac92005-10-13 16:45:02 +020058 char tmp[64]; /* long enough for environment variables */
59 char *s, *e;
wdenka06752e2004-09-29 22:43:59 +000060 int i = getenv_r("L", tmp, sizeof (tmp));
wdenk028ab6b2004-02-23 23:54:43 +000061
wdenka06752e2004-09-29 22:43:59 +000062 if (i < 0) {
wdenk028ab6b2004-02-23 23:54:43 +000063 printf("### No HW ID - assuming ML300");
64 } else {
wdenka06752e2004-09-29 22:43:59 +000065 for (e = tmp; *e; ++e) {
wdenk028ab6b2004-02-23 23:54:43 +000066 if (*e == ' ')
67 break;
68 }
69
wdenka06752e2004-09-29 22:43:59 +000070 printf("### Board Serial# is ");
71
72 for (s = tmp; s < e; ++s) {
wdenk028ab6b2004-02-23 23:54:43 +000073 putc(*s);
74 }
wdenk028ab6b2004-02-23 23:54:43 +000075
wdenka06752e2004-09-29 22:43:59 +000076 }
wdenk028ab6b2004-02-23 23:54:43 +000077 putc('\n');
78
79 return (0);
80}
81
Becky Bruce9973e3c2008-06-09 16:03:40 -050082phys_size_t
wdenk028ab6b2004-02-23 23:54:43 +000083initdram(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;
Stefan Roese087dfdb2007-10-21 08:12:41 +0200111 PPC4xx_SYS_INFO sys_info;
wdenk028ab6b2004-02-23 23:54:43 +0000112
113 get_sys_info(&sys_info);
114 val = sys_info.freqPCI;
115 return val;
116}
wdenka06752e2004-09-29 22:43:59 +0000117
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