Commit fc5e5ceec4937773072a242cbef7a0f1e7db99e0
1 parent
6aac646f58
Exists in
master
and in
55 other branches
ARM: remove broken "dnp1110" board.
Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> Cc: Alex Züpke <azu@sysgo.de>
Showing 9 changed files with 1 additions and 856 deletions Side-by-side Diff
MAINTAINERS
board/dnp1110/Makefile
1 | -# | |
2 | -# (C) Copyright 2000-2006 | |
3 | -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
4 | -# | |
5 | -# See file CREDITS for list of people who contributed to this | |
6 | -# project. | |
7 | -# | |
8 | -# This program is free software; you can redistribute it and/or | |
9 | -# modify it under the terms of the GNU General Public License as | |
10 | -# published by the Free Software Foundation; either version 2 of | |
11 | -# the License, or (at your option) any later version. | |
12 | -# | |
13 | -# This program is distributed in the hope that it will be useful, | |
14 | -# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | -# GNU General Public License for more details. | |
17 | -# | |
18 | -# You should have received a copy of the GNU General Public License | |
19 | -# along with this program; if not, write to the Free Software | |
20 | -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
21 | -# MA 02111-1307 USA | |
22 | -# | |
23 | - | |
24 | -include $(TOPDIR)/config.mk | |
25 | - | |
26 | -LIB = $(obj)lib$(BOARD).o | |
27 | - | |
28 | -COBJS := dnp1110.o flash.o | |
29 | -SOBJS := lowlevel_init.o | |
30 | - | |
31 | -SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) | |
32 | -OBJS := $(addprefix $(obj),$(COBJS)) | |
33 | -SOBJS := $(addprefix $(obj),$(SOBJS)) | |
34 | - | |
35 | -$(LIB): $(obj).depend $(OBJS) $(SOBJS) | |
36 | - $(call cmd_link_o_target, $(OBJS) $(SOBJS)) | |
37 | - | |
38 | -clean: | |
39 | - rm -f $(SOBJS) $(OBJS) | |
40 | - | |
41 | -distclean: clean | |
42 | - rm -f $(LIB) core *.bak $(obj).depend | |
43 | - | |
44 | -######################################################################### | |
45 | - | |
46 | -# defines $(obj).depend target | |
47 | -include $(SRCTREE)/rules.mk | |
48 | - | |
49 | -sinclude $(obj).depend | |
50 | - | |
51 | -######################################################################### |
board/dnp1110/config.mk
1 | -# | |
2 | -# DNP/1110 board with SA1100 cpu | |
3 | -# | |
4 | -# http://www.dilnetpc.com | |
5 | -# | |
6 | - | |
7 | -# | |
8 | -# DILNETPC has 1 banks of 32 MB DRAM | |
9 | -# | |
10 | -# c000'0000 | |
11 | -# | |
12 | -# Linux-Kernel is expected to be at c000'8000, entry c000'8000 | |
13 | -# | |
14 | -# we load ourself to c1f8'0000, the upper 1 MB of the first (only) bank | |
15 | -# | |
16 | - | |
17 | -CONFIG_SYS_TEXT_BASE = 0xc1f80000 |
board/dnp1110/dnp1110.c
1 | -/* | |
2 | - * (C) Copyright 2002 | |
3 | - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> | |
4 | - * Marius Groeger <mgroeger@sysgo.de> | |
5 | - * | |
6 | - * See file CREDITS for list of people who contributed to this | |
7 | - * project. | |
8 | - * | |
9 | - * This program is free software; you can redistribute it and/or | |
10 | - * modify it under the terms of the GNU General Public License as | |
11 | - * published by the Free Software Foundation; either version 2 of | |
12 | - * the License, or (at your option) any later version. | |
13 | - * | |
14 | - * This program is distributed in the hope that it will be useful, | |
15 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | - * GNU General Public License for more details. | |
18 | - * | |
19 | - * You should have received a copy of the GNU General Public License | |
20 | - * along with this program; if not, write to the Free Software | |
21 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
22 | - * MA 02111-1307 USA | |
23 | - */ | |
24 | - | |
25 | -#include <common.h> | |
26 | -#include <netdev.h> | |
27 | -#include <SA-1100.h> | |
28 | - | |
29 | -DECLARE_GLOBAL_DATA_PTR; | |
30 | - | |
31 | -/* | |
32 | - * Miscelaneous platform dependent initialisations | |
33 | - */ | |
34 | - | |
35 | -int board_init (void) | |
36 | -{ | |
37 | - /* memory and cpu-speed are setup before relocation */ | |
38 | - /* so we do _nothing_ here */ | |
39 | - | |
40 | - /* arch number of DNP1110-Board */ | |
41 | - gd->bd->bi_arch_number = MACH_TYPE_DNP1110; | |
42 | - | |
43 | - /* flash vpp on */ | |
44 | - PPDR |= 0x80; /* assumes LCD controller is off */ | |
45 | - PPSR |= 0x80; | |
46 | - | |
47 | - return 0; | |
48 | -} | |
49 | - | |
50 | -int dram_init (void) | |
51 | -{ | |
52 | - gd->bd->bi_dram[0].start = PHYS_SDRAM_1; | |
53 | - gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; | |
54 | - | |
55 | - return (0); | |
56 | -} | |
57 | - | |
58 | -#ifdef CONFIG_CMD_NET | |
59 | -int board_eth_init(bd_t *bis) | |
60 | -{ | |
61 | - int rc = 0; | |
62 | -#ifdef CONFIG_SMC91111 | |
63 | - rc = smc91111_initialize(0, CONFIG_SMC91111_BASE); | |
64 | -#endif | |
65 | - return rc; | |
66 | -} | |
67 | -#endif |
board/dnp1110/flash.c
1 | -/* | |
2 | - * (C) Copyright 2001 | |
3 | - * Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net | |
4 | - * | |
5 | - * (C) Copyright 2001 | |
6 | - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
7 | - * | |
8 | - * See file CREDITS for list of people who contributed to this | |
9 | - * project. | |
10 | - * | |
11 | - * This program is free software; you can redistribute it and/or | |
12 | - * modify it under the terms of the GNU General Public License as | |
13 | - * published by the Free Software Foundation; either version 2 of | |
14 | - * the License, or (at your option) any later version. | |
15 | - * | |
16 | - * This program is distributed in the hope that it will be useful, | |
17 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | - * GNU General Public License for more details. | |
20 | - * | |
21 | - * You should have received a copy of the GNU General Public License | |
22 | - * along with this program; if not, write to the Free Software | |
23 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
24 | - * MA 02111-1307 USA | |
25 | - */ | |
26 | - | |
27 | -#include <common.h> | |
28 | -#include <linux/byteorder/swab.h> | |
29 | - | |
30 | - | |
31 | -flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */ | |
32 | - | |
33 | -/* Board support for 1 or 2 flash devices */ | |
34 | -#undef FLASH_PORT_WIDTH32 | |
35 | -#define FLASH_PORT_WIDTH16 | |
36 | - | |
37 | -#ifdef FLASH_PORT_WIDTH16 | |
38 | -#define FLASH_PORT_WIDTH ushort | |
39 | -#define FLASH_PORT_WIDTHV vu_short | |
40 | -#define SWAP(x) __swab16(x) | |
41 | -#else | |
42 | -#define FLASH_PORT_WIDTH ulong | |
43 | -#define FLASH_PORT_WIDTHV vu_long | |
44 | -#define SWAP(x) __swab32(x) | |
45 | -#endif | |
46 | - | |
47 | -#define FPW FLASH_PORT_WIDTH | |
48 | -#define FPWV FLASH_PORT_WIDTHV | |
49 | - | |
50 | -#define mb() __asm__ __volatile__ ("" : : : "memory") | |
51 | - | |
52 | -/*----------------------------------------------------------------------- | |
53 | - * Functions | |
54 | - */ | |
55 | -static ulong flash_get_size (FPW *addr, flash_info_t *info); | |
56 | -static int write_data (flash_info_t *info, ulong dest, FPW data); | |
57 | -static void flash_get_offsets (ulong base, flash_info_t *info); | |
58 | -void inline spin_wheel(void); | |
59 | - | |
60 | -/*----------------------------------------------------------------------- | |
61 | - */ | |
62 | - | |
63 | -unsigned long flash_init (void) | |
64 | -{ | |
65 | - int i; | |
66 | - ulong size = 0; | |
67 | - | |
68 | - for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) | |
69 | - { | |
70 | - switch (i) | |
71 | - { | |
72 | - case 0: | |
73 | - flash_get_size((FPW *)PHYS_FLASH_1, &flash_info[i]); | |
74 | - flash_get_offsets(PHYS_FLASH_1, &flash_info[i]); | |
75 | - break; | |
76 | - default: | |
77 | - panic("configured too many flash banks!\n"); | |
78 | - break; | |
79 | - } | |
80 | - size += flash_info[i].size; | |
81 | - } | |
82 | - | |
83 | - /* Protect monitor and environment sectors | |
84 | - */ | |
85 | - flash_protect(FLAG_PROTECT_SET, | |
86 | - CONFIG_SYS_FLASH_BASE, | |
87 | - CONFIG_SYS_FLASH_BASE + monitor_flash_len - 1, | |
88 | - &flash_info[0]); | |
89 | - | |
90 | - flash_protect(FLAG_PROTECT_SET, | |
91 | - CONFIG_ENV_ADDR, | |
92 | - CONFIG_ENV_ADDR + CONFIG_ENV_SIZE - 1, | |
93 | - &flash_info[0]); | |
94 | - | |
95 | - return size; | |
96 | -} | |
97 | - | |
98 | -/*----------------------------------------------------------------------- | |
99 | - */ | |
100 | -static void flash_get_offsets (ulong base, flash_info_t *info) | |
101 | -{ | |
102 | - int i; | |
103 | - | |
104 | - if (info->flash_id == FLASH_UNKNOWN) { | |
105 | - return; | |
106 | - } | |
107 | - | |
108 | - if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) { | |
109 | - for (i = 0; i < info->sector_count; i++) { | |
110 | - info->start[i] = base + (i * PHYS_FLASH_SECT_SIZE); | |
111 | - info->protect[i] = 0; | |
112 | - } | |
113 | - } | |
114 | -} | |
115 | - | |
116 | -/*----------------------------------------------------------------------- | |
117 | - */ | |
118 | -void flash_print_info (flash_info_t *info) | |
119 | -{ | |
120 | - int i; | |
121 | - | |
122 | - if (info->flash_id == FLASH_UNKNOWN) { | |
123 | - printf ("missing or unknown FLASH type\n"); | |
124 | - return; | |
125 | - } | |
126 | - | |
127 | - switch (info->flash_id & FLASH_VENDMASK) { | |
128 | - case FLASH_MAN_INTEL: printf ("INTEL "); break; | |
129 | - default: printf ("Unknown Vendor "); break; | |
130 | - } | |
131 | - | |
132 | - switch (info->flash_id & FLASH_TYPEMASK) { | |
133 | - case FLASH_28F128J3A: | |
134 | - printf ("28F128J3A\n"); break; | |
135 | - default: printf ("Unknown Chip Type\n"); break; | |
136 | - } | |
137 | - | |
138 | - printf (" Size: %ld MB in %d Sectors\n", | |
139 | - info->size >> 20, info->sector_count); | |
140 | - | |
141 | - printf (" Sector Start Addresses:"); | |
142 | - for (i=0; i<info->sector_count; ++i) { | |
143 | - if ((i % 5) == 0) | |
144 | - printf ("\n "); | |
145 | - printf (" %08lX%s", | |
146 | - info->start[i], | |
147 | - info->protect[i] ? " (RO)" : " " | |
148 | - ); | |
149 | - } | |
150 | - printf ("\n"); | |
151 | - return; | |
152 | -} | |
153 | - | |
154 | -/* | |
155 | - * The following code cannot be run from FLASH! | |
156 | - */ | |
157 | -static ulong flash_get_size (FPW *addr, flash_info_t *info) | |
158 | -{ | |
159 | - volatile FPW value; | |
160 | - /* Write auto select command: read Manufacturer ID */ | |
161 | - addr[0x5555] = (FPW)0x00AA00AA; | |
162 | - addr[0x2AAA] = (FPW)0x00550055; | |
163 | - addr[0x5555] = (FPW)0x00900090; | |
164 | - | |
165 | - mb(); | |
166 | - value = addr[0]; | |
167 | - | |
168 | - switch (value) { | |
169 | - | |
170 | - case (FPW)INTEL_MANUFACT: | |
171 | - info->flash_id = FLASH_MAN_INTEL; | |
172 | - break; | |
173 | - | |
174 | - default: | |
175 | - info->flash_id = FLASH_UNKNOWN; | |
176 | - info->sector_count = 0; | |
177 | - info->size = 0; | |
178 | - addr[0] = (FPW)0x00FF00FF; /* restore read mode */ | |
179 | - return (0); /* no or unknown flash */ | |
180 | - } | |
181 | - | |
182 | - mb(); | |
183 | - value = addr[1]; /* device ID */ | |
184 | - switch (value) { | |
185 | - | |
186 | - case (FPW)INTEL_ID_28F128J3A: | |
187 | - info->flash_id += FLASH_28F128J3A; | |
188 | - info->sector_count = 128; | |
189 | - info->size = 0x02000000; | |
190 | - break; /* => 16 MB */ | |
191 | - | |
192 | - default: | |
193 | - info->flash_id = FLASH_UNKNOWN; | |
194 | - break; | |
195 | - } | |
196 | - | |
197 | - if (info->sector_count > CONFIG_SYS_MAX_FLASH_SECT) { | |
198 | - printf ("** ERROR: sector count %d > max (%d) **\n", | |
199 | - info->sector_count, CONFIG_SYS_MAX_FLASH_SECT); | |
200 | - info->sector_count = CONFIG_SYS_MAX_FLASH_SECT; | |
201 | - } | |
202 | - | |
203 | - addr[0] = (FPW)0x00FF00FF; /* restore read mode */ | |
204 | - | |
205 | - return (info->size); | |
206 | -} | |
207 | - | |
208 | - | |
209 | -/*----------------------------------------------------------------------- | |
210 | - */ | |
211 | - | |
212 | -int flash_erase (flash_info_t *info, int s_first, int s_last) | |
213 | -{ | |
214 | - int flag, prot, sect; | |
215 | - ulong type, start; | |
216 | - int rcode = 0; | |
217 | - | |
218 | - if ((s_first < 0) || (s_first > s_last)) { | |
219 | - if (info->flash_id == FLASH_UNKNOWN) { | |
220 | - printf ("- missing\n"); | |
221 | - } else { | |
222 | - printf ("- no sectors to erase\n"); | |
223 | - } | |
224 | - return 1; | |
225 | - } | |
226 | - | |
227 | - type = (info->flash_id & FLASH_VENDMASK); | |
228 | - if ((type != FLASH_MAN_INTEL)) { | |
229 | - printf ("Can't erase unknown flash type %08lx - aborted\n", | |
230 | - info->flash_id); | |
231 | - return 1; | |
232 | - } | |
233 | - | |
234 | - prot = 0; | |
235 | - for (sect=s_first; sect<=s_last; ++sect) { | |
236 | - if (info->protect[sect]) { | |
237 | - prot++; | |
238 | - } | |
239 | - } | |
240 | - | |
241 | - if (prot) { | |
242 | - printf ("- Warning: %d protected sectors will not be erased!\n", | |
243 | - prot); | |
244 | - } else { | |
245 | - printf ("\n"); | |
246 | - } | |
247 | - | |
248 | - /* Disable interrupts which might cause a timeout here */ | |
249 | - flag = disable_interrupts(); | |
250 | - | |
251 | - /* Start erase on unprotected sectors */ | |
252 | - for (sect = s_first; sect<=s_last; sect++) { | |
253 | - if (info->protect[sect] == 0) { /* not protected */ | |
254 | - FPWV *addr = (FPWV *)(info->start[sect]); | |
255 | - FPW status; | |
256 | - | |
257 | - printf("Erasing sector %2d ... ", sect); | |
258 | - | |
259 | - /* arm simple, non interrupt dependent timer */ | |
260 | - start = get_timer(0); | |
261 | - | |
262 | - *addr = (FPW)0x00500050; /* clear status register */ | |
263 | - *addr = (FPW)0x00200020; /* erase setup */ | |
264 | - *addr = (FPW)0x00D000D0; /* erase confirm */ | |
265 | - | |
266 | - while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) { | |
267 | - if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) { | |
268 | - printf ("Timeout\n"); | |
269 | - *addr = (FPW)0x00B000B0; /* suspend erase */ | |
270 | - *addr = (FPW)0x00FF00FF; /* reset to read mode */ | |
271 | - rcode = 1; | |
272 | - break; | |
273 | - } | |
274 | - } | |
275 | - | |
276 | - *addr = (FPW)0x00500050; /* clear status register cmd. */ | |
277 | - *addr = (FPW)0x00FF00FF; /* resest to read mode */ | |
278 | - | |
279 | - printf (" done\n"); | |
280 | - } | |
281 | - } | |
282 | - return rcode; | |
283 | -} | |
284 | - | |
285 | -/*----------------------------------------------------------------------- | |
286 | - * Copy memory to flash, returns: | |
287 | - * 0 - OK | |
288 | - * 1 - write timeout | |
289 | - * 2 - Flash not erased | |
290 | - * 4 - Flash not identified | |
291 | - */ | |
292 | - | |
293 | -int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt) | |
294 | -{ | |
295 | - ulong cp, wp; | |
296 | - FPW data; | |
297 | - int count, i, l, rc, port_width; | |
298 | - | |
299 | - if (info->flash_id == FLASH_UNKNOWN) { | |
300 | - return 4; | |
301 | - } | |
302 | -/* get lower word aligned address */ | |
303 | -#ifdef FLASH_PORT_WIDTH16 | |
304 | - wp = (addr & ~1); | |
305 | - port_width = 2; | |
306 | -#else | |
307 | - wp = (addr & ~3); | |
308 | - port_width = 4; | |
309 | -#endif | |
310 | - | |
311 | - /* | |
312 | - * handle unaligned start bytes | |
313 | - */ | |
314 | - if ((l = addr - wp) != 0) { | |
315 | - data = 0; | |
316 | - for (i=0, cp=wp; i<l; ++i, ++cp) { | |
317 | - data = (data << 8) | (*(uchar *)cp); | |
318 | - } | |
319 | - for (; i<port_width && cnt>0; ++i) { | |
320 | - data = (data << 8) | *src++; | |
321 | - --cnt; | |
322 | - ++cp; | |
323 | - } | |
324 | - for (; cnt==0 && i<port_width; ++i, ++cp) { | |
325 | - data = (data << 8) | (*(uchar *)cp); | |
326 | - } | |
327 | - | |
328 | - if ((rc = write_data(info, wp, SWAP(data))) != 0) { | |
329 | - return (rc); | |
330 | - } | |
331 | - wp += port_width; | |
332 | - } | |
333 | - | |
334 | - /* | |
335 | - * handle word aligned part | |
336 | - */ | |
337 | - count = 0; | |
338 | - while (cnt >= port_width) { | |
339 | - data = 0; | |
340 | - for (i=0; i<port_width; ++i) { | |
341 | - data = (data << 8) | *src++; | |
342 | - } | |
343 | - if ((rc = write_data(info, wp, SWAP(data))) != 0) { | |
344 | - return (rc); | |
345 | - } | |
346 | - wp += port_width; | |
347 | - cnt -= port_width; | |
348 | - if (count++ > 0x800) | |
349 | - { | |
350 | - spin_wheel(); | |
351 | - count = 0; | |
352 | - } | |
353 | - } | |
354 | - | |
355 | - if (cnt == 0) { | |
356 | - return (0); | |
357 | - } | |
358 | - | |
359 | - /* | |
360 | - * handle unaligned tail bytes | |
361 | - */ | |
362 | - data = 0; | |
363 | - for (i=0, cp=wp; i<port_width && cnt>0; ++i, ++cp) { | |
364 | - data = (data << 8) | *src++; | |
365 | - --cnt; | |
366 | - } | |
367 | - for (; i<port_width; ++i, ++cp) { | |
368 | - data = (data << 8) | (*(uchar *)cp); | |
369 | - } | |
370 | - | |
371 | - return (write_data(info, wp, SWAP(data))); | |
372 | -} | |
373 | - | |
374 | -/*----------------------------------------------------------------------- | |
375 | - * Write a word or halfword to Flash, returns: | |
376 | - * 0 - OK | |
377 | - * 1 - write timeout | |
378 | - * 2 - Flash not erased | |
379 | - */ | |
380 | -static int write_data (flash_info_t *info, ulong dest, FPW data) | |
381 | -{ | |
382 | - FPWV *addr = (FPWV *)dest; | |
383 | - ulong status; | |
384 | - int flag; | |
385 | - ulong start; | |
386 | - | |
387 | - /* Check if Flash is (sufficiently) erased */ | |
388 | - if ((*addr & data) != data) { | |
389 | - printf("not erased at %08lx (%x)\n",(ulong)addr,*addr); | |
390 | - return (2); | |
391 | - } | |
392 | - /* Disable interrupts which might cause a timeout here */ | |
393 | - flag = disable_interrupts(); | |
394 | - | |
395 | - *addr = (FPW)0x00400040; /* write setup */ | |
396 | - *addr = data; | |
397 | - | |
398 | - /* arm simple, non interrupt dependent timer */ | |
399 | - start = get_timer(0); | |
400 | - | |
401 | - /* wait while polling the status register */ | |
402 | - while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) { | |
403 | - if (start = get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) { | |
404 | - *addr = (FPW)0x00FF00FF; /* restore read mode */ | |
405 | - return (1); | |
406 | - } | |
407 | - } | |
408 | - | |
409 | - *addr = (FPW)0x00FF00FF; /* restore read mode */ | |
410 | - | |
411 | - return (0); | |
412 | -} | |
413 | - | |
414 | -void inline | |
415 | -spin_wheel(void) | |
416 | -{ | |
417 | - static int p=0; | |
418 | - static char w[] = "\\/-"; | |
419 | - | |
420 | - printf("\010%c", w[p]); | |
421 | - (++p == 3) ? (p = 0) : 0; | |
422 | -} |
board/dnp1110/lowlevel_init.S
1 | -/* | |
2 | - * Memory Setup stuff - taken from blob memsetup.S | |
3 | - * | |
4 | - * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and | |
5 | - * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) | |
6 | - * | |
7 | - * See file CREDITS for list of people who contributed to this | |
8 | - * project. | |
9 | - * | |
10 | - * This program is free software; you can redistribute it and/or | |
11 | - * modify it under the terms of the GNU General Public License as | |
12 | - * published by the Free Software Foundation; either version 2 of | |
13 | - * the License, or (at your option) any later version. | |
14 | - * | |
15 | - * This program is distributed in the hope that it will be useful, | |
16 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | - * GNU General Public License for more details. | |
19 | - * | |
20 | - * You should have received a copy of the GNU General Public License | |
21 | - * along with this program; if not, write to the Free Software | |
22 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
23 | - * MA 02111-1307 USA | |
24 | - */ | |
25 | - | |
26 | - | |
27 | -#include "config.h" | |
28 | -#include "version.h" | |
29 | - | |
30 | - | |
31 | -/* some parameters for the board */ | |
32 | - | |
33 | -MEM_BASE: .long 0xa0000000 | |
34 | -MEM_START: .long 0xc0000000 | |
35 | - | |
36 | -#define MDCNFG 0x00 | |
37 | -#define MDCAS00 0x04 /* CAS waveform rotate reg 0 */ | |
38 | -#define MDCAS01 0x08 /* CAS waveform rotate reg 1 bank */ | |
39 | -#define MDCAS02 0x0C /* CAS waveform rotate reg 2 bank */ | |
40 | -#define MDREFR 0x1C /* DRAM refresh control reg */ | |
41 | -#define MDCAS20 0x20 /* CAS waveform rotate reg 0 bank */ | |
42 | -#define MDCAS21 0x24 /* CAS waveform rotate reg 1 bank */ | |
43 | -#define MDCAS22 0x28 /* CAS waveform rotate reg 2 bank */ | |
44 | -#define MECR 0x18 /* Expansion memory (PCMCIA) bus configuration register */ | |
45 | -#define MSC0 0x10 /* static memory control reg 0 */ | |
46 | -#define MSC1 0x14 /* static memory control reg 1 */ | |
47 | -#define MSC2 0x2C /* static memory control reg 2 */ | |
48 | -#define SMCNFG 0x30 /* SMROM configuration reg */ | |
49 | - | |
50 | -mdcas00: .long 0x5555557F | |
51 | -mdcas01: .long 0x55555555 | |
52 | -mdcas02: .long 0x55555555 | |
53 | -mdcas20: .long 0x5555557F | |
54 | -mdcas21: .long 0x55555555 | |
55 | -mdcas22: .long 0x55555555 | |
56 | -mdcnfg: .long 0x0000B25C | |
57 | -mdrefr: .long 0x007000C1 | |
58 | -mecr: .long 0x10841084 | |
59 | -msc0: .long 0x00004774 | |
60 | -msc1: .long 0x00000000 | |
61 | -msc2: .long 0x00000000 | |
62 | -smcnfg: .long 0x00000000 | |
63 | - | |
64 | -/* setting up the memory */ | |
65 | - | |
66 | -.globl lowlevel_init | |
67 | -lowlevel_init: | |
68 | - | |
69 | - ldr r0, MEM_BASE | |
70 | - | |
71 | - /* Set up the DRAM */ | |
72 | - | |
73 | - /* MDCAS00 */ | |
74 | - ldr r1, mdcas00 | |
75 | - str r1, [r0, #MDCAS00] | |
76 | - | |
77 | - /* MDCAS01 */ | |
78 | - ldr r1, mdcas01 | |
79 | - str r1, [r0, #MDCAS01] | |
80 | - | |
81 | - /* MDCAS02 */ | |
82 | - ldr r1, mdcas02 | |
83 | - str r1, [r0, #MDCAS02] | |
84 | - | |
85 | - /* MDCAS20 */ | |
86 | - ldr r1, mdcas20 | |
87 | - str r1, [r0, #MDCAS20] | |
88 | - | |
89 | - /* MDCAS21 */ | |
90 | - ldr r1, mdcas21 | |
91 | - str r1, [r0, #MDCAS21] | |
92 | - | |
93 | - /* MDCAS22 */ | |
94 | - ldr r1, mdcas22 | |
95 | - str r1, [r0, #MDCAS22] | |
96 | - | |
97 | - /* MDREFR */ | |
98 | - ldr r1, mdrefr | |
99 | - str r1, [r0, #MDREFR] | |
100 | - | |
101 | - /* Set up PCMCIA space */ | |
102 | - ldr r1, mecr | |
103 | - str r1, [r0, #MECR] | |
104 | - | |
105 | - /* Setup the flash memory and other */ | |
106 | - ldr r1, msc0 | |
107 | - str r1, [r0, #MSC0] | |
108 | - | |
109 | - ldr r1, msc1 | |
110 | - str r1, [r0, #MSC1] | |
111 | - | |
112 | - ldr r1, msc2 | |
113 | - str r1, [r0, #MSC2] | |
114 | - | |
115 | - ldr r1, smcnfg | |
116 | - str r1, [r0, #SMCNFG] | |
117 | - | |
118 | - /* MDCNFG */ | |
119 | - ldr r1, mdcnfg | |
120 | - bic r1, r1, #0x00000001 | |
121 | - str r1, [r0, #MDCNFG] | |
122 | - | |
123 | - /* Load something to activate bank */ | |
124 | - ldr r2, MEM_START | |
125 | -.rept 8 | |
126 | - ldr r1, [r2] | |
127 | -.endr | |
128 | - | |
129 | - /* MDCNFG */ | |
130 | - ldr r1, mdcnfg | |
131 | - orr r1, r1, #0x00000001 | |
132 | - str r1, [r0, #MDCNFG] | |
133 | - | |
134 | - /* everything is fine now */ | |
135 | - mov pc, lr |
boards.cfg
doc/README.scrapyard
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | |
12 | 12 | Board Arch CPU removed Commit last known maintainer/contact |
13 | 13 | ============================================================================= |
14 | +dnp1110 arm sa1100 - 2011-09-05 Alex Züpke <azu@sysgo.de> | |
14 | 15 | SMN42 arm arm720t - 2011-09-05 |
15 | 16 | at91rm9200dk arm arm920t 1c85752 2011-07-17 |
16 | 17 | m501sk arm arm920t b1a2bd4 2011-07-17 |
include/configs/dnp1110.h
1 | -/* | |
2 | - * (C) Copyright 2002 | |
3 | - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> | |
4 | - * Rolf Offermanns <rof@sysgo.de> | |
5 | - * | |
6 | - * Configuation settings for the SSV DNP1110 board. | |
7 | - * | |
8 | - * See file CREDITS for list of people who contributed to this | |
9 | - * project. | |
10 | - * | |
11 | - * This program is free software; you can redistribute it and/or | |
12 | - * modify it under the terms of the GNU General Public License as | |
13 | - * published by the Free Software Foundation; either version 2 of | |
14 | - * the License, or (at your option) any later version. | |
15 | - * | |
16 | - * This program is distributed in the hope that it will be useful, | |
17 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | - * GNU General Public License for more details. | |
20 | - * | |
21 | - * You should have received a copy of the GNU General Public License | |
22 | - * along with this program; if not, write to the Free Software | |
23 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
24 | - * MA 02111-1307 USA | |
25 | - */ | |
26 | - | |
27 | -#ifndef __CONFIG_H | |
28 | -#define __CONFIG_H | |
29 | - | |
30 | -/* | |
31 | - * If we are developing, we might want to start armboot from ram | |
32 | - * so we MUST NOT initialize critical regs like mem-timing ... | |
33 | - */ | |
34 | -#define CONFIG_SKIP_LOWLEVEL_INIT 1 | |
35 | - | |
36 | -/* | |
37 | - * High Level Configuration Options | |
38 | - * (easy to change) | |
39 | - */ | |
40 | -#define CONFIG_SA1110 1 /* This is an SA1110 CPU */ | |
41 | -#define CONFIG_DNP1110 1 /* on an DNP/1110 Board */ | |
42 | - | |
43 | -#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ | |
44 | -/* we will never enable dcache, because we have to setup MMU first */ | |
45 | -#define CONFIG_SYS_DCACHE_OFF | |
46 | - | |
47 | -/* | |
48 | - * Size of malloc() pool | |
49 | - */ | |
50 | -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024) | |
51 | - | |
52 | -/* | |
53 | - * Hardware drivers | |
54 | - */ | |
55 | -#define CONFIG_NET_MULTI | |
56 | -#define CONFIG_SMC91111 | |
57 | -#define CONFIG_SMC91111_BASE 0x20000300 | |
58 | - | |
59 | - | |
60 | -/* | |
61 | - * select serial console configuration | |
62 | - */ | |
63 | -#define CONFIG_SA1100_SERIAL | |
64 | -#define CONFIG_SERIAL1 1 /* we use SERIAL 1 */ | |
65 | - | |
66 | -/* allow to overwrite serial and ethaddr */ | |
67 | -#define CONFIG_ENV_OVERWRITE | |
68 | - | |
69 | -#define CONFIG_BAUDRATE 115200 | |
70 | - | |
71 | - | |
72 | -/* | |
73 | - * BOOTP options | |
74 | - */ | |
75 | -#define CONFIG_BOOTP_BOOTFILESIZE | |
76 | -#define CONFIG_BOOTP_BOOTPATH | |
77 | -#define CONFIG_BOOTP_GATEWAY | |
78 | -#define CONFIG_BOOTP_HOSTNAME | |
79 | - | |
80 | - | |
81 | -/* | |
82 | - * Command line configuration. | |
83 | - */ | |
84 | -#include <config_cmd_default.h> | |
85 | - | |
86 | - | |
87 | -#define CONFIG_BOOTDELAY 3 | |
88 | -#define CONFIG_BOOTARGS "root=ramfs devfs=mount console=ttySA0,115200" | |
89 | -#define CONFIG_ETHADDR 02:80:ad:20:31:b8 | |
90 | -#define CONFIG_NETMASK 255.255.0.0 | |
91 | -#define CONFIG_IPADDR 172.22.2.23 | |
92 | -#define CONFIG_SERVERIP 172.22.2.22 | |
93 | -#define CONFIG_BOOTFILE "dnp1110" | |
94 | -#define CONFIG_BOOTCOMMAND "tftp; bootm" | |
95 | - | |
96 | -#if defined(CONFIG_CMD_KGDB) | |
97 | -#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */ | |
98 | -#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */ | |
99 | -#endif | |
100 | - | |
101 | -/* | |
102 | - * Miscellaneous configurable options | |
103 | - */ | |
104 | -#define CONFIG_SYS_LONGHELP /* undef to save memory */ | |
105 | -#define CONFIG_SYS_PROMPT "DNP1110 # " /* Monitor Command Prompt */ | |
106 | -#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ | |
107 | -#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ | |
108 | -#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ | |
109 | -#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */ | |
110 | - | |
111 | -#define CONFIG_SYS_MEMTEST_START 0xc0400000 /* memtest works on */ | |
112 | -#define CONFIG_SYS_MEMTEST_END 0xc0800000 /* 4 ... 8 MB in DRAM */ | |
113 | - | |
114 | -#define CONFIG_SYS_LOAD_ADDR 0xc0200000 /* default load address */ | |
115 | - | |
116 | -#define CONFIG_SYS_HZ 3686400 /* incrementer freq: 3.6864 MHz */ | |
117 | -#define CONFIG_SYS_CPUSPEED 0x0b /* set core clock to 220 MHz */ | |
118 | - | |
119 | - /* valid baudrates */ | |
120 | -#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } | |
121 | - | |
122 | -/*----------------------------------------------------------------------- | |
123 | - * Stack sizes | |
124 | - * | |
125 | - * The stack sizes are set up in start.S using the settings below | |
126 | - */ | |
127 | -#define CONFIG_STACKSIZE (128*1024) /* regular stack */ | |
128 | -#ifdef CONFIG_USE_IRQ | |
129 | -#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ | |
130 | -#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ | |
131 | -#endif | |
132 | - | |
133 | -/*----------------------------------------------------------------------- | |
134 | - * Physical Memory Map | |
135 | - */ | |
136 | -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 banks of DRAM */ | |
137 | -#define PHYS_SDRAM_1 0xc0000000 /* SDRAM Bank #1 */ | |
138 | -#define PHYS_SDRAM_1_SIZE 0x02000000 /* 32 MB */ | |
139 | - | |
140 | - | |
141 | -#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ | |
142 | -#define PHYS_FLASH_SIZE 0x01000000 /* 16 MB */ | |
143 | -#define PHYS_FLASH_BANK_SIZE 0x01000000 /* 32 MB Banks */ | |
144 | -#define PHYS_FLASH_SECT_SIZE 0x00020000 /* 256 KB sectors (x2) */ | |
145 | - | |
146 | -#define CONFIG_SYS_FLASH_BASE PHYS_FLASH_1 | |
147 | - | |
148 | -/*----------------------------------------------------------------------- | |
149 | - * FLASH and environment organization | |
150 | - */ | |
151 | -#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */ | |
152 | -#define CONFIG_SYS_MAX_FLASH_SECT 128 /* max number of sectors on one chip */ | |
153 | - | |
154 | -/* timeout values are in ticks */ | |
155 | -#define CONFIG_SYS_FLASH_ERASE_TOUT (2*CONFIG_SYS_HZ) /* Timeout for Flash Erase */ | |
156 | -#define CONFIG_SYS_FLASH_WRITE_TOUT (2*CONFIG_SYS_HZ) /* Timeout for Flash Write */ | |
157 | - | |
158 | -#define CONFIG_ENV_IS_IN_FLASH 1 | |
159 | -#define CONFIG_ENV_ADDR (PHYS_FLASH_1 + 0xF80000) /* Addr of Environment Sector */ | |
160 | -#define CONFIG_ENV_SIZE 0x20000 /* Total Size of Environment Sector */ | |
161 | - | |
162 | -#endif /* __CONFIG_H */ |