]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/user-guide/setup-arm-ep7211.html
2fdc14e5fc9b1b1f0b5224b59535adff7f746abb
[karo-tx-redboot.git] / doc / html / user-guide / setup-arm-ep7211.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >Cirrus Logic ARM EP7211 Development
13 Board Hardware Setup</TITLE
14 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
15 <META
16 NAME="GENERATOR"
17 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
18 "><LINK
19 REL="HOME"
20 TITLE="eCos User Guide"
21 HREF="ecos-user-guide.html"><LINK
22 REL="UP"
23 TITLE="Target Setup"
24 HREF="appendix-target-setup.html"><LINK
25 REL="PREVIOUS"
26 TITLE="ARM Cogent CMA230 Hardware Setup"
27 HREF="setup-arm-cma230.html"><LINK
28 REL="NEXT"
29 TITLE="Cirrus Logic ARM EP7212 Development Board
30 Hardware Setup"
31 HREF="setup-arm-ep7212.html"></HEAD
32 ><BODY
33 CLASS="SECT1"
34 BGCOLOR="#FFFFFF"
35 TEXT="#000000"
36 LINK="#0000FF"
37 VLINK="#840084"
38 ALINK="#0000FF"
39 ><DIV
40 CLASS="NAVHEADER"
41 ><TABLE
42 SUMMARY="Header navigation table"
43 WIDTH="100%"
44 BORDER="0"
45 CELLPADDING="0"
46 CELLSPACING="0"
47 ><TR
48 ><TH
49 COLSPAN="3"
50 ALIGN="center"
51 >eCos User Guide</TH
52 ></TR
53 ><TR
54 ><TD
55 WIDTH="10%"
56 ALIGN="left"
57 VALIGN="bottom"
58 ><A
59 HREF="setup-arm-cma230.html"
60 ACCESSKEY="P"
61 >Prev</A
62 ></TD
63 ><TD
64 WIDTH="80%"
65 ALIGN="center"
66 VALIGN="bottom"
67 >Appendix A. Target Setup</TD
68 ><TD
69 WIDTH="10%"
70 ALIGN="right"
71 VALIGN="bottom"
72 ><A
73 HREF="setup-arm-ep7212.html"
74 ACCESSKEY="N"
75 >Next</A
76 ></TD
77 ></TR
78 ></TABLE
79 ><HR
80 ALIGN="LEFT"
81 WIDTH="100%"></DIV
82 ><DIV
83 CLASS="SECT1"
84 ><H1
85 CLASS="SECT1"
86 ><A
87 NAME="SETUP-ARM-EP7211">Cirrus Logic ARM EP7211 Development
88 Board Hardware Setup</H1
89 ><P
90 >eCos comes with two Flash ROM images that provide GDB support
91 for the Cirrus Logic EP7211 Development Board (also known as the
92 EDB7211).. Note that on some board revisions, the board is silk-screened
93 as EDB7111-2. The first Flash ROM image provides a port of the CygMon
94 ROM monitor, which includes a command-line interface and a GDB remote
95 stub. The second Flash ROM image provides a remote GDB stub only.</P
96 ><P
97 >Both ROM images are provided in the directory loaders/arm-edb7211
98 under the root of your eCos installation. CygMon images are prefixed
99 with the name 'edb7211_cygmon' and are
100 provided in a number of formats including binary (.bin extension)
101 and SREC (.srec) extension. GDB stub ROM images are given the prefix 'edb7211_gdb_module'. </P
102 ><P
103 >The ROM images provided for the EP7211 Development Board must
104 be programmed into the FLASH. Please refer to the section titled
105 "Loading the ROM image into On-Board flash" on how to program the
106 ROM onto the board.</P
107 ><P
108 >Both Cygmon and GDB Stub ROMS allow communication with GDB
109 via the serial connector labelled 'UART 1'. The
110 communication parameters are fixed at 38400 baud, 8 data bits, no
111 parity bit and 1 stop bit (8-N-1). No flow control is employed.
112 Connection to the host computer should be made using a null modem cable.
113 A gender changer may also be required. Note that the GDB Configuration tool
114 uses the serial port identifiers 0 and 1 to identify the EB7211
115 serial ports UART1 and UART2 respectively.</P
116 ><P
117 >Both eCos and the ROM images assume the core clock is generated
118 with a 3.6864 MHz PLL input. The CPU will be configured to run at
119 73.728MHz.</P
120 ><P
121 >Note: The EP7211 CPU needs a two step RESET process. After
122 pressing the &grave;URESET' pushbutton, the &grave;WAKEUP' pushbutton
123 must be pressed to complete the process.</P
124 ><DIV
125 CLASS="NOTE"
126 ><BLOCKQUOTE
127 CLASS="NOTE"
128 ><P
129 ><B
130 >Note: </B
131 >When an eCos program is run on an EDB7211 board fitted with
132 either CygMon or a GDB stub ROM, then the code in ROM loses control.
133 This means that if you require the ability to remotely stop execution
134 on the target, or want thread debugging capabilities, you must include
135 GDB stub support when configuring eCos.</P
136 ></BLOCKQUOTE
137 ></DIV
138 ><DIV
139 CLASS="SECT2"
140 ><H2
141 CLASS="SECT2"
142 ><A
143 NAME="AEN3826">Building programs for programming into FLASH</H2
144 ><P
145 >If your application is to be run directly from FLASH, you
146 must configure eCos appropriately for "ROM" startup. This can be
147 done in the <SPAN
148 CLASS="emphasis"
149 ><I
150 CLASS="EMPHASIS"
151 >eCos Configuration Tool</I
152 ></SPAN
153 > by setting
154 the "Startup type" HAL option to "ROM". If using the ecosconfig utility,
155 set the user_value of the CYG_HAL_STARTUP
156 option in ecos.ecc to "ROM".</P
157 ><P
158 >When you have linked your application with eCos, you will
159 then have an ELF executable. To convert this into a format appropriate
160 for the Cirrus Logic FLASH download utility, or the dl_7xxx
161 utility on Linux, you can use the utility arm-elf-objcopy, as in
162 the following example:</P
163 ><TABLE
164 BORDER="5"
165 BGCOLOR="#E0E0F0"
166 WIDTH="70%"
167 ><TR
168 ><TD
169 ><PRE
170 CLASS="PROGRAMLISTING"
171 >$ arm-elf-objcopy -O binary helloworld.exe helloworld.bin</PRE
172 ></TD
173 ></TR
174 ></TABLE
175 ><P
176 >This will produce a binary format image helloworld.bin which
177 can be downloaded into FLASH.</P
178 ></DIV
179 ><DIV
180 CLASS="SECT2"
181 ><H2
182 CLASS="SECT2"
183 ><A
184 NAME="AEN3833">Building the GDB Stub FLASH ROM images</H2
185 ><P
186 >Pre-built GDB stubs images are provided in the directory loaders/arm-edb7211 relative
187 to the root of your eCos installation, but here are instructions
188 on how to rebuild them if you should ever need to.</P
189 ><P
190 >CygMon images are prefixed with the name 'cygmon' and
191 GDB stub ROM images are given the prefix 'gdb_module'.
192 Images may be provided in a number of formats including ELF (.img
193 extension), binary (.bin extension) and SREC (.srec extension). </P
194 ></DIV
195 ><DIV
196 CLASS="SECT2"
197 ><H2
198 CLASS="SECT2"
199 ><A
200 NAME="AEN3837">Building the ROM images with the eCos Configuration Tool</H2
201 ><P
202 ></P
203 ><OL
204 TYPE="1"
205 ><LI
206 ><P
207 >Start with a new document - selecting the 
208 <SPAN
209 CLASS="emphasis"
210 ><I
211 CLASS="EMPHASIS"
212 >File</I
213 ></SPAN
214 >-&#62;<SPAN
215 CLASS="emphasis"
216 ><I
217 CLASS="EMPHASIS"
218 >New</I
219 ></SPAN
220 >
221  menu item if necessary to do this.</P
222 ></LI
223 ><LI
224 ><P
225 >Choose the 
226 <SPAN
227 CLASS="emphasis"
228 ><I
229 CLASS="EMPHASIS"
230 >Build</I
231 ></SPAN
232 >-&#62;<SPAN
233 CLASS="emphasis"
234 ><I
235 CLASS="EMPHASIS"
236 >Templates</I
237 ></SPAN
238 >
239  menu item, and then select the "Cirrus Logic development board"
240 hardware.</P
241 ></LI
242 ><LI
243 ><P
244 >While still displaying the 
245 <SPAN
246 CLASS="emphasis"
247 ><I
248 CLASS="EMPHASIS"
249 >Build</I
250 ></SPAN
251 >
252 -&#62;
253 <SPAN
254 CLASS="emphasis"
255 ><I
256 CLASS="EMPHASIS"
257 >Templates</I
258 ></SPAN
259 >
260  dialog box, select either the "stubs" package template to build
261 a GDB stub image, or the "cygmon" template to build the CygMon ROM
262 Monitor. Click 
263 <SPAN
264 CLASS="emphasis"
265 ><I
266 CLASS="EMPHASIS"
267 >OK</I
268 ></SPAN
269 >.</P
270 ></LI
271 ><LI
272 ><P
273 >Build eCos using 
274 <SPAN
275 CLASS="emphasis"
276 ><I
277 CLASS="EMPHASIS"
278 >Build</I
279 ></SPAN
280 >
281 -&#62;
282 <SPAN
283 CLASS="emphasis"
284 ><I
285 CLASS="EMPHASIS"
286 >Library</I
287 ></SPAN
288 ></P
289 ></LI
290 ><LI
291 ><P
292 >When the build completes, the image files can be found
293 in the bin/ subdirectory of the install tree. GDB stub
294 ROM images have the prefix "gdb_module". CygMon images
295 have the prefix "cygmon".</P
296 ></LI
297 ></OL
298 ></DIV
299 ><DIV
300 CLASS="SECT2"
301 ><H2
302 CLASS="SECT2"
303 ><A
304 NAME="AEN3859">Building the ROM images with ecosconfig</H2
305 ><P
306 ></P
307 ><OL
308 TYPE="1"
309 ><LI
310 ><P
311 >Make an empty directory to contain the build tree,
312 and cd into it.</P
313 ></LI
314 ><LI
315 ><P
316 >To build a GDB stub ROM image, enter the command:</P
317 ><TABLE
318 BORDER="5"
319 BGCOLOR="#E0E0F0"
320 WIDTH="70%"
321 ><TR
322 ><TD
323 ><PRE
324 CLASS="PROGRAMLISTING"
325 >$ ecosconfig new edb7xxx stubs</PRE
326 ></TD
327 ></TR
328 ></TABLE
329 ><P
330 >or to build a CygMon ROM monitor image, enter the command:</P
331 ><TABLE
332 BORDER="5"
333 BGCOLOR="#E0E0F0"
334 WIDTH="70%"
335 ><TR
336 ><TD
337 ><PRE
338 CLASS="PROGRAMLISTING"
339 >$ ecosconfig new edb7xxx cygmon</PRE
340 ></TD
341 ></TR
342 ></TABLE
343 ></LI
344 ><LI
345 ><P
346 >Enter the commands:</P
347 ><TABLE
348 BORDER="5"
349 BGCOLOR="#E0E0F0"
350 WIDTH="70%"
351 ><TR
352 ><TD
353 ><PRE
354 CLASS="PROGRAMLISTING"
355 >$ ecosconfig tree
356 $ make</PRE
357 ></TD
358 ></TR
359 ></TABLE
360 ></LI
361 ><LI
362 ><P
363 >When the build completes, the image files can be found
364 in the bin/ subdirectory of the install tree. GDB stub
365 ROM images have the prefix "gdb_module". CygMon images
366 have the prefix "cygmon".</P
367 ></LI
368 ></OL
369 ></DIV
370 ><DIV
371 CLASS="SECT2"
372 ><H2
373 CLASS="SECT2"
374 ><A
375 NAME="AEN3874">Loading the ROM Image into On-board Flash</H2
376 ><P
377 >Program images can be written into Flash memory by means of
378 a bootstrap program which is built into the  EDB7211.  This program
379 communicates with a support program on your host to download and
380 program an image into the Flash memory.</P
381 ><P
382 >Cirrus Logic provides such a program for use with Windows/DOS.
383  eCos comes with a similar program which will run under Linux. The
384 basic operation of both programs is the same.</P
385 ><P
386 ></P
387 ><OL
388 TYPE="1"
389 ><LI
390 ><P
391 >Connect a serial line to 'UART 1'.</P
392 ></LI
393 ><LI
394 ><P
395 >Power off the  EDB7211.</P
396 ></LI
397 ><LI
398 ><P
399 >Install jumper 'PROGRAM ENABLE' which
400 enables this special mode for downloading Flash images. Note that
401 some board revisions have this jumper labelled &#8220;BOOT ENABLE&#8221;.</P
402 ></LI
403 ><LI
404 ><P
405 >Power on the  EDB7211.</P
406 ></LI
407 ><LI
408 ><P
409 >Execute the Flash writing program on your host.  On Linux,
410 this would be:</P
411 ><TABLE
412 BORDER="5"
413 BGCOLOR="#E0E0F0"
414 WIDTH="70%"
415 ><TR
416 ><TD
417 ><PRE
418 CLASS="PROGRAMLISTING"
419 >     # dl_edb7xxx &lt;PATH&#62;/gdb_module.bin</PRE
420 ></TD
421 ></TR
422 ></TABLE
423 ><P
424 >where '&lt;PATH&#62;' is the path to
425 the binary format version of the ROM image you wish to load, either
426 as built in the previous section or the "loaders/arm-edb7211/" subdirectory
427 of your eCos installation. The download tool defaults to 38400 baud and
428 device /dev/ttyS1 for communication. To change
429 these, specify them as parameters, e.g.
430               </P
431 ><TABLE
432 BORDER="5"
433 BGCOLOR="#E0E0F0"
434 WIDTH="70%"
435 ><TR
436 ><TD
437 ><PRE
438 CLASS="PROGRAMLISTING"
439 ># dl_edb7xxx &lt;PATH&#62;/gdb_module.bin 9600 /dev/ttyS0</PRE
440 ></TD
441 ></TR
442 ></TABLE
443 ></LI
444 ><LI
445 ><P
446 >The download program will indicate that it is waiting
447 for the board to come alive.  At this point, press 'RESET' and
448 then 'WAKEUP' switches in order.  There should be
449 some indication of progress, first of the code being downloaded,
450 then of the programming process.</P
451 ></LI
452 ><LI
453 ><P
454 >Upon completion of the programming, power off the  EDB7211.</P
455 ></LI
456 ><LI
457 ><P
458 >Remove the 'PROGRAM ENABLE/BOOT ENABLE' jumper.</P
459 ></LI
460 ><LI
461 ><P
462 >Power on the  EDB7211, press 'RESET' and 'WAKEUP'.
463  The new ROM image should now be running on the board.</P
464 ></LI
465 ><LI
466 ><P
467 >The GDB debugger will now be able to communicate with
468 the board to download and debug RAM based programs.
469
470 This procedure also applies for loading ROM-startup eCos programs
471 into the on-board FLASH memory, given a binary format image of the
472 program from arm-elf-objcopy.  Loading a ROM-startup eCos program
473 into Flash will overwrite the GDB Stub ROM/CygMon in Flash,
474 so you would have to reload the GDB Stub ROM/CygMon to
475 return to normal RAM-startup program development.</P
476 ></LI
477 ></OL
478 ></DIV
479 ><DIV
480 CLASS="SECT2"
481 ><H2
482 CLASS="SECT2"
483 ><A
484 NAME="AEN3902">Building the Flash Downloader on Linux</H2
485 ><P
486 >eCos provides a Flash download program suitable for use with
487 the  EP7211 Development Board which will run on Linux.  Follow these
488 steps to build this program.  Note: at the time of the writing of
489 these instructions, the download program is built directly within
490 the eCos source repository since it is
491 not configuration specific.</P
492 ><TABLE
493 BORDER="5"
494 BGCOLOR="#E0E0F0"
495 WIDTH="70%"
496 ><TR
497 ><TD
498 ><PRE
499 CLASS="PROGRAMLISTING"
500 >  # cd &lt;eCos install dir&#62;/packages/hal/arm/edb7xxx/<TT
501 CLASS="REPLACEABLE"
502 ><I
503 >&#60;version&#62;</I
504 ></TT
505 >/support</PRE
506 ></TD
507 ></TR
508 ></TABLE
509 ><TABLE
510 BORDER="5"
511 BGCOLOR="#E0E0F0"
512 WIDTH="70%"
513 ><TR
514 ><TD
515 ><PRE
516 CLASS="PROGRAMLISTING"
517 >  # make</PRE
518 ></TD
519 ></TR
520 ></TABLE
521 ><P
522 >(where '# ' is your shell prompt)</P
523 ><P
524 >Note: this program was adapted from the Cirrus Logic original
525 DOS program and still contains some vestiges of that environment.</P
526 ></DIV
527 ><DIV
528 CLASS="SECT2"
529 ><H2
530 CLASS="SECT2"
531 ><A
532 NAME="AEN3910">Developing eCos Programs with the ARM Multi-ICE</H2
533 ><P
534 >The EP7211 Development Board supports use of the ARM
535             Multi-processor EmbeddedICE(tm), also known as the
536             Multi-ICE. Full instructions on how to install and use the
537             Multi-ICE in conjunction with GDB are provided in the
538             <SPAN
539 CLASS="emphasis"
540 ><I
541 CLASS="EMPHASIS"
542 >"GNUPro Toolkit Reference for eCos
543               ARM/Thumb"</I
544 ></SPAN
545 > manual. However, the following
546             platform-specific details should be noted.</P
547 ><P
548 >You will need an ARM Multi-ICE Server configuration
549             file for the EP7211 Development Board. Here is a suggested
550             configuration file to use:</P
551 ><TABLE
552 BORDER="5"
553 BGCOLOR="#E0E0F0"
554 WIDTH="70%"
555 ><TR
556 ><TD
557 ><PRE
558 CLASS="PROGRAMLISTING"
559 >======== File "720T.cfg" ======== 
560 ;Total IR length = 4 
561 [TITLE] 
562 Multi-ICE configuration for EP7211 
563  
564 [TAP 0] 
565 ARM720T 
566  
567 [TAPINFO] 
568 YES 
569  
570 [Timing] 
571 Low=0 
572 High=0 
573 Adaptive=OFF 
574 ==================================</PRE
575 ></TD
576 ></TR
577 ></TABLE
578 ><P
579 >You must ensure that the board has the appropriate soldered
580 connections. For the EP7211 this involves connecting TEST0 and TEST1
581 of the EP7211 to ground. To do this you must solder a wire from
582 ground at JP33 to TP8 and TP9.</P
583 ><P
584 >With respect to using multiple devices simultaneously, note
585 that the EP7211 is not ID sensitive.</P
586 ><P
587 >If you wish to view diagnostic output from your program that
588 was downloaded via the Multi-ICE, you will note that by default
589 the output on the serial line (as viewed by a terminal such as Hyperterm
590 in Windows, or cu in Unix) is in the form of GDB packets.</P
591 ><P
592 >To get legible output, the solution is to set the "GDB Serial
593 port" to a different device from the "Diagnostic serial port", and
594 you should use the Diagnostic serial port to view the diagnostic
595 output.</P
596 ><P
597 >Warning: The multi-ice-gdb-server will fail on startup if
598 the board has not been both reset and awakened before running the
599 server. </P
600 ><P
601 >To resolve this, it is necessary to free up the connection
602 from within the ARM Multi-ICE server itself. However when this happens,
603 the next time you use GDB to load the program into the board, you
604 will see lots of "Readback did not match original data" messages
605 in the output of the multi-ice-gdb-server program. This indicates
606 your program did not load correctly, and you should restart the
607 multi-ice-gdb-server program, taking care to reset the board correctly
608 before reconnecting. </P
609 ><P
610 >As a reminder, you must specify --config-dialog to the
611             multi-ice-gdb-server program to connect to the board
612             correctly. If you do not, the multi-ice-gdb-server program
613             will not be able to connect.</P
614 ></DIV
615 ></DIV
616 ><DIV
617 CLASS="NAVFOOTER"
618 ><HR
619 ALIGN="LEFT"
620 WIDTH="100%"><TABLE
621 SUMMARY="Footer navigation table"
622 WIDTH="100%"
623 BORDER="0"
624 CELLPADDING="0"
625 CELLSPACING="0"
626 ><TR
627 ><TD
628 WIDTH="33%"
629 ALIGN="left"
630 VALIGN="top"
631 ><A
632 HREF="setup-arm-cma230.html"
633 ACCESSKEY="P"
634 >Prev</A
635 ></TD
636 ><TD
637 WIDTH="34%"
638 ALIGN="center"
639 VALIGN="top"
640 ><A
641 HREF="ecos-user-guide.html"
642 ACCESSKEY="H"
643 >Home</A
644 ></TD
645 ><TD
646 WIDTH="33%"
647 ALIGN="right"
648 VALIGN="top"
649 ><A
650 HREF="setup-arm-ep7212.html"
651 ACCESSKEY="N"
652 >Next</A
653 ></TD
654 ></TR
655 ><TR
656 ><TD
657 WIDTH="33%"
658 ALIGN="left"
659 VALIGN="top"
660 >ARM Cogent CMA230 Hardware Setup</TD
661 ><TD
662 WIDTH="34%"
663 ALIGN="center"
664 VALIGN="top"
665 ><A
666 HREF="appendix-target-setup.html"
667 ACCESSKEY="U"
668 >Up</A
669 ></TD
670 ><TD
671 WIDTH="33%"
672 ALIGN="right"
673 VALIGN="top"
674 >Cirrus Logic ARM EP7212 Development Board
675 Hardware Setup</TD
676 ></TR
677 ></TABLE
678 ></DIV
679 ></BODY
680 ></HTML
681 >