source: rtems/c/src/lib/libbsp/m68k/uC5282/README @ 728e177

4.104.114.84.95
Last change on this file since 728e177 was d0f01d2, checked in by Eric Norum <WENorum@…>, on 06/30/05 at 11:53:12

Add description of external interrupt request assignments.

  • Property mode set to 100644
File size: 17.8 KB
Line 
1#
2#  $Id$
3#
4
5Description: Arcturus Networks uC DIMM ColdFire 5282
6============
7 CPU: MCF5282, 64MHz
8 RAM: 16M
9SRAM: 64k (BSP places FEC buffer descriptors here)
10 ROM: 4M
11
12This is a credit-card sized board in a DIMM format. It is part of a family
13which includes Dragonball and Coldfire CPUs, with a standardized DIMM-based bus.
14
15ACKNOWLEDGEMENTS:
16=================
17This BSP is based on the work of:
18    D. Peter Siddons
19    Till Straumann
20    Brett Swimley
21    Jay Monkman
22
23TODO:
24=====
25Make a clean exit routine to return to Arcturus monitor
26
27The bsp relies on the Arcturus monitor to set up DRAM and all chip selects.
28This seems OK to me, but others may find it lame.....
29
30I/O pin restrictions make simultaneous operation
31of I2C, CAN and UART2 impossible.
32 
33BSP NAME:           uC5282
34BOARD:              Arcturus Netrworks uCdimm 5282
35BUS:                Arcturus DIMM bus, A24/D16, plus peripherals.
36CPU FAMILY:         ColdFire 5282
37CPU:                MCF5282
38COPROCESSORS:       N/A
39
40DEBUG MONITOR:      Arcturus bootloader
41
42PERIPHERALS
43===========
44TIMERS:             Four PIT (RTEMS clock is PIT3), Four Timers
45  RESOLUTION:       1 microsecond
46SERIAL PORTS:       Internal UART 0, 1 and 2
47REAL-TIME CLOCK:    none
48DMA:                none
49VIDEO:              none
50SCSI:               none
51NETWORKING:         Internal 10/100Mbs FEC, 100 Mb/s, full/half-duplex
52
53DRIVER INFORMATION
54==================
55CLOCK DRIVER:       PIT3
56IOSUPP DRIVER:      none
57SHMSUPP:            none
58TIMER DRIVER:       TIMER3
59TTY DRIVER:         UART0, 1 and 2
60
61STDIO
62=====
63PORT:               UART0 Terminal
64ELECTRICAL:         RS-232
65BAUD:               9600
66BITS PER CHARACTER: 8
67PARITY:             None
68STOP BITS:          1
69
70Downloading the image to the board.
71===================================
72The bootable image is generated by the make-exe target in the bsp makefile. It
73generates a simple stripped binary file which is downloaded over the ethernet
74port into RAM then executed or programmed into flash memory.
75
761) Power up the uC5282 board. A dump of some memory maps is produced
77   followed by a prompt.
78
792) (first time only)
80   Set the uC5282 board Internet configuration:
81        setenv IPADDR0 www.xxx.yyy.zzz  (Your board's address)
82        setenv NETMASK ppp.qqq.rrr.sss  (Your local network address mask)
83        setenv HOSTNAME somename        (Your board's name)
84
853) Type 'tftp<CR>'
86
874) Run 'tftp' on your host machine:
88        tftp> binary
89        tftp> connect www.xxx.yyy.zzz   (Your ucDIMM's address)
90        tftp> put someFile.exe          (someFile.boot for the EPICS build system)
91
925) When the file has downloaded press the <ESC> key to terminate
93   the uCDIMM tftp command.
94
956) Type 'goram<CR>' to start the downloaded program, or type 'program<CR>'
96to burn the code onto the uCDIMM flash.
97
98EPICS Bootstrap Information
99===========================
100The EPICS startup code uses the following environment variables.  If an
101optional environment variable is missing the value in parentheses will be used.
102All Internet addresses must be given in 'dotted-decimal' format.
103HWADDR0    - Ethernet hardware address.
104IPADDR0    - Internet address (192.168.0.2).
105NETMASK    - Local network address mask (255.255.252.0).
106HOSTNAME   - Internet host name (iocNobody).
107GATEWAY    - Internet address of gateway machine (NULL).
108SERVER     - Internet address of NFS server (192.168.0.1).
109NAMESERVER - Internet address of DNS server (SERVER).
110DOMAIN     - DNS domain name (precompiled value from CONFIG_SITE).
111NTPSERVER  - Internet address of NTP server (SERVER).
112BOOTFILE   - Path to executable (epics/iocNobody/bin/RTEMS-uC5282/myApp.boot).
113CMDLINE    - Path to startup script (epics/iocBoot/iocNobody/st.cmd).
114NFSMOUNT   - NFS information: www.xxx.yyy.zzz:/remote/path /localpath
115             A : can also be used to separate the remote and local paths.
116             If NFSMOUNT is not set, SERVER will be used as the NFS server,
117             and the remote and local paths will be taken from the first
118             component of CMDLINE.  If CMDLINE does not begin with a /
119             then '/tftpboot' is prepended to the remote path.  This allows
120             a remote TFTP and NFS server to be handled transaparently.
121
122
123============================================================================
124
125      Memory map as set up by dBUG bootstrap and BSP initialization
126
127          +--------------------------------------------------+
1280000 0000 |       16 MByte SDRAM                             | 00FF FFFF
1290100 0000 |  ---------------------------------------------   |
130          |    Address space for future SDRAM expansion      |
131          .                                                  .
132          .                                                  .
133          .                                                  .
134          |                                                  | 0FFF FFFF
135          +--------------------------------------------------+
1361000 0000 | External 4 MByte flash memory                    |
137          .                                                  .
138          .                                                  .
139          .                                                  .
140          |                                                  | 1FFF FFFF
141          +--------------------------------------------------+
1422000 0000 | 64 kByte on-chip SRAM (RAMBAR)                   |
143          .                                                  .
144          .                                                  .
145          .                                                  .
146          |                                                  | 2FFF FFFF
147          +--------------------------------------------------+
1483000 0000 |  CS1* (devLib 'VME' A24 space)                   | 30FF FFFF
1493100 0000 |  CS2* (devLib 'VME' A32 and A16 space)          x| 31FF FFFF
150          .                                                  .
151          .                                                  .
152          .                                                  .
153          |                                                  | 3FFF FFFF
154          +--------------------------------------------------+
1554000 0000 | Internal peripheral system (IPSBAR)              |
156          .                                                  .
1574400 0000 | Backdoor access to on-chip flash                 |
158          .                                                  .
159          .                                                  .
160          .                                                  .
161          |                                                  | 4FFF FFFF
162          +--------------------------------------------------+
163          .                                                  .
164          .                                                  .
165          .                                                  .
166          +--------------------------------------------------+
167f000 0000 | 512 kByte on-chip flash (FLASHBAR)               |
168          .                                                  .
169          .                                                  .
170          .                                                  .
171          |                                                  | fFFF FFFF
172          +--------------------------------------------------+
173
174x - Final 16-bit location of CS2* space is reserved for FPGA interrupt status.
175
176============================================================================
177
178      Interrupt map
179
180External interrupt lines (priority is fixed between 3 and 4):
181    IRQ7* - Ethernet Transceiver interrupts
182    IRQ1* - FPGA ('VME') interrupts.
183+-----+-----------------------------------------------------------------------+
184|     |                                PRIORITY                               |
185+-----+--------+--------+--------+--------+--------+--------+--------+--------+
186|LEVEL|    7   |    6   |    5   |    4   |    3   |    2   |    1   |    0   |
187+-----+--------+--------+--------+--------+--------+--------+--------+--------+
188|  7  |        |        |        |        |        |        |        |        |
189+-----+--------+--------+--------+--------+--------+--------+--------+--------+
190|  6  |        |        |        |        |        |        |        |        |
191+-----+--------+--------+--------+--------+--------+--------+--------+--------+
192|  5  |        |        |        |        |        |        |        |        |
193+-----+--------+--------+--------+--------+--------+--------+--------+--------+
194|  4  | FEC RX | FEC TX |        |        |        |        |        |   PIT  |
195+-----+--------+--------+--------+--------+--------+--------+--------+--------+
196|  3  | UART 0 | UART 1 | UART 2 |        |        |        |        |        |
197+-----+--------+--------+--------+--------+--------+--------+--------+--------+
198|  2  |        |        |        |        |        |        |        |        |
199+-----+--------+--------+--------+--------+--------+--------+--------+--------+
200|  1  |        |        |        |        |        |        |        |        |
201+-----+--------+--------+--------+--------+--------+--------+--------+--------+
202
203============================================================================
204
205TIMING TESTS  2005-01-28
206========================
207
208*** TIME TEST 1 ***
209rtems_semaphore_create 19
210rtems_semaphore_delete 21
211rtems_semaphore_obtain: available 4
212rtems_semaphore_obtain: not available -- NO_WAIT 5
213rtems_semaphore_release: no waiting tasks 12
214*** END OF TEST 1 ***
215
216*** TIME TEST 2 ***
217rtems_semaphore_obtain: not available -- caller blocks 34
218*** END OF TEST 2 ***
219
220*** TIME TEST 3 ***
221rtems_semaphore_release: task readied -- preempts caller 27
222*** END OF TEST 3 ***
223
224*** TIME TEST 4 ***
225rtems_task_restart: blocked task -- preempts caller 54
226rtems_task_restart: ready task -- preempts caller 52
227rtems_semaphore_release: task readied -- returns to caller 18
228rtems_task_create 87
229rtems_task_start 24
230rtems_task_restart: suspended task -- returns to caller 27
231rtems_task_delete: suspended task 66
232rtems_task_restart: ready task -- returns to caller 28
233rtems_task_restart: blocked task -- returns to caller 38
234rtems_task_delete: blocked task 69
235*** END OF TEST 4 ***
236
237*** TIME TEST 5 ***
238rtems_task_suspend: calling task 23
239rtems_task_resume: task readied -- preempts caller 22
240*** END OF TEST 5 ***
241
242*** TIME TEST 6 ***
243rtems_task_restart: calling task 30
244rtems_task_suspend: returns to caller 9
245rtems_task_resume: task readied -- returns to caller 12
246rtems_task_delete: ready task 69
247*** END OF TEST 6 ***
248
249*** TIME TEST 7 ***
250rtems_task_restart: suspended task -- preempts caller 44
251*** END OF TEST 7 ***
252
253*** TIME TEST 8 ***
254rtems_task_set_priority: obtain current priority 6
255rtems_task_set_priority: returns to caller 17
256rtems_task_mode: obtain current mode 3
257rtems_task_mode: no reschedule 3
258rtems_task_mode: reschedule -- returns to caller 8
259rtems_task_mode: reschedule -- preempts caller 22
260rtems_task_set_note 6
261rtems_task_get_note 6
262rtems_clock_set 22
263rtems_clock_get 1
264*** END OF TEST 8 ***
265
266*** TIME TEST 9 ***
267rtems_message_queue_create 55
268rtems_message_queue_send: no waiting tasks 20
269rtems_message_queue_urgent: no waiting tasks 21
270rtems_message_queue_receive: available 20
271rtems_message_queue_flush: no messages flushed 8
272rtems_message_queue_flush: messages flushed 12
273rtems_message_queue_delete 29
274*** END OF TEST 9 ***
275
276*** TIME TEST 10 ***
277rtems_message_queue_receive: not available -- NO_WAIT 10
278rtems_message_queue_receive: not available -- caller blocks 38
279*** END OF TEST 10 ***
280
281*** TIME TEST 11 ***
282rtems_message_queue_send: task readied -- preempts caller 37
283*** END OF TEST 11 ***
284
285*** TIME TEST 12 ***
286rtems_message_queue_send: task readied -- returns to caller 23
287*** END OF TEST 12 ***
288
289*** TIME TEST 13 ***
290rtems_message_queue_urgent: task readied -- preempts caller 35
291*** END OF TEST 13 ***
292
293*** TIME TEST 14 ***
294rtems_message_queue_urgent: task readied -- returns to caller 24
295*** END OF TEST 14 ***
296
297*** TIME TEST 15 ***
298rtems_event_receive: obtain current events 0
299rtems_event_receive: not available -- NO_WAIT 5
300rtems_event_receive: not available -- caller blocks 28
301rtems_event_send: no task readied 5
302rtems_event_receive: available 9
303rtems_event_send: task readied -- returns to caller 16
304*** END OF TEST 15 ***
305
306*** TIME TEST 16 ***
307rtems_event_send: task readied -- preempts caller 27
308*** END OF TEST 16 ***
309
310*** TIME TEST 17 ***
311rtems_task_set_priority: preempts caller 39
312*** END OF TEST 17 ***
313
314*** TIME TEST 18 ***
315rtems_task_delete: calling task 83
316*** END OF TEST 18 ***
317
318*** TIME TEST 19 ***
319rtems_signal_catch 5
320rtems_signal_send: returns to caller 12
321rtems_signal_send: signal to self 20
322exit ASR overhead: returns to calling task 15
323exit ASR overhead: returns to preempting task 18
324*** END OF TEST 19 ***
325
326*** TIME TEST 20 ***
327rtems_partition_create 20
328rtems_region_create 40
329rtems_partition_get_buffer: available 11
330rtems_partition_get_buffer: not available 7
331rtems_partition_return_buffer 12
332rtems_partition_delete 11
333rtems_region_get_segment: available 28
334rtems_region_get_segment: not available -- NO_WAIT 29
335rtems_region_return_segment: no waiting tasks 29
336rtems_region_get_segment: not available -- caller blocks 55
337rtems_region_return_segment: task readied -- preempts caller 72
338rtems_region_return_segment: task readied -- returns to caller 58
339rtems_region_delete 25
340rtems_io_initialize 1
341rtems_io_open 1
342rtems_io_close 1
343rtems_io_read 1
344rtems_io_write 1
345rtems_io_control 1
346*** END OF TEST 20 ***
347
348*** TIME TEST 21 ***
349rtems_task_ident 60
350rtems_message_queue_ident 60
351rtems_semaphore_ident 69
352rtems_partition_ident 59
353rtems_region_ident 60
354rtems_port_ident 59
355rtems_timer_ident 61
356rtems_rate_monotonic_ident 60
357*** END OF TEST 21 ***
358
359*** TIME TEST 22 ***
360rtems_message_queue_broadcast: task readied -- returns to caller 32
361rtems_message_queue_broadcast: no waiting tasks 14
362rtems_message_queue_broadcast: task readied -- preempts caller 39
363*** END OF TEST 22 ***
364
365*** TIME TEST 23 ***
366rtems_timer_create 8
367rtems_timer_fire_after: inactive 12
368rtems_timer_fire_after: active 12
369rtems_timer_cancel: active 9
370rtems_timer_cancel: inactive 8
371rtems_timer_reset: inactive 14
372rtems_timer_reset: active 15
373rtems_timer_fire_when: inactive 21
374rtems_timer_fire_when: active 21
375rtems_timer_delete: active 12
376rtems_timer_delete: inactive 11
377rtems_task_wake_when 35
378*** END OF TEST 23 ***
379
380*** TIME TEST 24 ***
381rtems_task_wake_after: yield -- returns to caller 3
382rtems_task_wake_after: yields -- preempts caller 18
383*** END OF TEST 24 ***
384
385*** TIME TEST 25 ***
386rtems_clock_tick 7
387*** END OF TEST 25 ***
388
389*** TIME TEST 26 ***
390_ISR_Disable 1
391_ISR_Flash 0
392_ISR_Enable 0
393_Thread_Disable_dispatch 1
394_Thread_Enable_dispatch 3
395_Thread_Set_state 7
396_Thread_Disptach (NO FP) 16
397context switch: no floating point contexts 12
398context switch: self 2
399context switch: to another task 1
400fp context switch: restore 1st FP task 14
401fp context switch: save idle, restore initialized 3
402fp context switch: save idle, restore idle 13
403fp context switch: save initialized, restore initialized 2
404_Thread_Resume 7
405_Thread_Unblock 6
406_Thread_Ready 5
407_Thread_Get 1
408_Semaphore_Get 1
409_Thread_Get: invalid id 0
410*** END OF TEST 26 ***
411
412*** TIME TEST 27 ***
413interrupt entry overhead: returns to interrupted task 3
414interrupt exit overhead: returns to interrupted task 3
415interrupt entry overhead: returns to nested interrupt 2
416interrupt exit overhead: returns to nested interrupt 2
417interrupt entry overhead: returns to preempting task 4
418interrupt exit overhead: returns to preempting task 20
419*** END OF TEST 27 ***
420
421*** TIME TEST 28 ***
422rtems_port_create 12
423rtems_port_external_to_internal 5
424rtems_port_internal_to_external 6
425rtems_port_delete 12
426*** END OF TEST 28 ***
427
428*** TIME TEST 29 ***
429rtems_rate_monotonic_create 13
430rtems_rate_monotonic_period: initiate period -- returns to caller 20
431rtems_rate_monotonic_period: obtain status 10
432rtems_rate_monotonic_cancel 13
433rtems_rate_monotonic_delete: inactive 17
434rtems_rate_monotonic_delete: active 16
435rtems_rate_monotonic_period: conclude periods -- caller blocks 24
436*** END OF TEST 29 ***
437
438*** TIME CHECKER ***
439Units may not be in microseconds for this test!!!
4400 100000
441Total time = 0
442Average time = 0
443NULL timer stopped at 0
444LOOP (1000) timer stopped at 188
445LOOP (10000) timer stopped at 1875
446LOOP (50000) timer stopped at 9375
447LOOP (100000) timer stopped at 18750
448*** END OF TIME CHECKER ***
449
450*** TIME TEST OVERHEAD ***
451rtems_initialize_executive 0
452rtems_shutdown_executive 0
453rtems_task_create 0
454rtems_task_ident 0
455rtems_task_start 0
456rtems_task_restart 0
457rtems_task_delete 0
458rtems_task_suspend 0
459rtems_task_resume 0
460rtems_task_set_priority 0
461rtems_task_mode 0
462rtems_task_get_note 0
463rtems_task_set_note 0
464rtems_task_wake_when 1
465rtems_task_wake_after 0
466rtems_interrupt_catch 0
467rtems_clock_get 1
468rtems_clock_set 1
469rtems_clock_tick 0
470rtems_timer_create 0
471rtems_timer_delete 0
472rtems_timer_ident 0
473rtems_timer_fire_after 1
474rtems_timer_fire_when 1
475rtems_timer_reset 0
476rtems_timer_cancel 0
477rtems_semaphore_create 0
478rtems_semaphore_delete 0
479rtems_semaphore_ident 0
480rtems_semaphore_obtain 0
481rtems_semaphore_release 0
482rtems_message_queue_create 0
483rtems_message_queue_ident 0
484rtems_message_queue_delete 0
485rtems_message_queue_send 0
486rtems_message_queue_urgent 0
487rtems_message_queue_broadcast 0
488rtems_message_queue_receive 0
489rtems_message_queue_flush 0
490rtems_event_send 0
491rtems_event_receive 0
492rtems_signal_catch 0
493rtems_signal_send 0
494rtems_partition_create 0
495rtems_partition_ident 0
496rtems_partition_delete 0
497rtems_partition_get_buffer 0
498rtems_partition_return_buffer 0
499rtems_region_create 0
500rtems_region_ident 0
501rtems_region_delete 0
502rtems_region_get_segment 0
503rtems_region_return_segment 0
504rtems_port_create 0
505rtems_port_ident 0
506rtems_port_delete 0
507rtems_port_external_to_internal 0
508rtems_port_internal_to_external 0
509rtems_io_initialize 0
510rtems_io_open 0
511rtems_io_close 0
512rtems_io_read 0
513rtems_io_write 0
514rtems_io_control 0
515rtems_fatal_error_occurred 0
516rtems_rate_monotonic_create 0
517rtems_rate_monotonic_ident 0
518rtems_rate_monotonic_delete 0
519rtems_rate_monotonic_cancel 0
520rtems_rate_monotonic_period 0
521rtems_multiprocessing_announce 0
522*** END OF TIME OVERHEAD ***
Note: See TracBrowser for help on using the repository browser.