source: rtems/c/src/lib/libbsp/m68k/uC5282/README @ 81291a0

4.104.114.84.95
Last change on this file since 81291a0 was f077cc96, checked in by Eric Norum <WENorum@…>, on 06/20/05 at 20:48:48

Clean up transmit buffer realignment.
Many thanks to Mr. Kolja Waschk for identifying the problem.

  • Property mode set to 100644
File size: 17.6 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, locked at 100 Mbs, full-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
180+-----+-----------------------------------------------------------------------+
181|     |                                PRIORITY                               |
182+-----+--------+--------+--------+--------+--------+--------+--------+--------+
183|LEVEL|    7   |    6   |    5   |    4   |    3   |    2   |    1   |    0   |
184+-----+--------+--------+--------+--------+--------+--------+--------+--------+
185|  7  |        |        |        |        |        |        |        |        |
186+-----+--------+--------+--------+--------+--------+--------+--------+--------+
187|  6  |        |        |        |        |        |        |        |        |
188+-----+--------+--------+--------+--------+--------+--------+--------+--------+
189|  5  |        |        |        |        |        |        |        |        |
190+-----+--------+--------+--------+--------+--------+--------+--------+--------+
191|  4  | FEC RX | FEC TX |        |        |        |        |        |   PIT  |
192+-----+--------+--------+--------+--------+--------+--------+--------+--------+
193|  3  | UART 0 | UART 1 | UART 2 |        |        |        |        |        |
194+-----+--------+--------+--------+--------+--------+--------+--------+--------+
195|  2  |        |        |        |        |        |        |        |        |
196+-----+--------+--------+--------+--------+--------+--------+--------+--------+
197|  1  |        |        |        |        |        |        |        |        |
198+-----+--------+--------+--------+--------+--------+--------+--------+--------+
199
200============================================================================
201
202TIMING TESTS  2005-01-28
203========================
204
205*** TIME TEST 1 ***
206rtems_semaphore_create 19
207rtems_semaphore_delete 21
208rtems_semaphore_obtain: available 4
209rtems_semaphore_obtain: not available -- NO_WAIT 5
210rtems_semaphore_release: no waiting tasks 12
211*** END OF TEST 1 ***
212
213*** TIME TEST 2 ***
214rtems_semaphore_obtain: not available -- caller blocks 34
215*** END OF TEST 2 ***
216
217*** TIME TEST 3 ***
218rtems_semaphore_release: task readied -- preempts caller 27
219*** END OF TEST 3 ***
220
221*** TIME TEST 4 ***
222rtems_task_restart: blocked task -- preempts caller 54
223rtems_task_restart: ready task -- preempts caller 52
224rtems_semaphore_release: task readied -- returns to caller 18
225rtems_task_create 87
226rtems_task_start 24
227rtems_task_restart: suspended task -- returns to caller 27
228rtems_task_delete: suspended task 66
229rtems_task_restart: ready task -- returns to caller 28
230rtems_task_restart: blocked task -- returns to caller 38
231rtems_task_delete: blocked task 69
232*** END OF TEST 4 ***
233
234*** TIME TEST 5 ***
235rtems_task_suspend: calling task 23
236rtems_task_resume: task readied -- preempts caller 22
237*** END OF TEST 5 ***
238
239*** TIME TEST 6 ***
240rtems_task_restart: calling task 30
241rtems_task_suspend: returns to caller 9
242rtems_task_resume: task readied -- returns to caller 12
243rtems_task_delete: ready task 69
244*** END OF TEST 6 ***
245
246*** TIME TEST 7 ***
247rtems_task_restart: suspended task -- preempts caller 44
248*** END OF TEST 7 ***
249
250*** TIME TEST 8 ***
251rtems_task_set_priority: obtain current priority 6
252rtems_task_set_priority: returns to caller 17
253rtems_task_mode: obtain current mode 3
254rtems_task_mode: no reschedule 3
255rtems_task_mode: reschedule -- returns to caller 8
256rtems_task_mode: reschedule -- preempts caller 22
257rtems_task_set_note 6
258rtems_task_get_note 6
259rtems_clock_set 22
260rtems_clock_get 1
261*** END OF TEST 8 ***
262
263*** TIME TEST 9 ***
264rtems_message_queue_create 55
265rtems_message_queue_send: no waiting tasks 20
266rtems_message_queue_urgent: no waiting tasks 21
267rtems_message_queue_receive: available 20
268rtems_message_queue_flush: no messages flushed 8
269rtems_message_queue_flush: messages flushed 12
270rtems_message_queue_delete 29
271*** END OF TEST 9 ***
272
273*** TIME TEST 10 ***
274rtems_message_queue_receive: not available -- NO_WAIT 10
275rtems_message_queue_receive: not available -- caller blocks 38
276*** END OF TEST 10 ***
277
278*** TIME TEST 11 ***
279rtems_message_queue_send: task readied -- preempts caller 37
280*** END OF TEST 11 ***
281
282*** TIME TEST 12 ***
283rtems_message_queue_send: task readied -- returns to caller 23
284*** END OF TEST 12 ***
285
286*** TIME TEST 13 ***
287rtems_message_queue_urgent: task readied -- preempts caller 35
288*** END OF TEST 13 ***
289
290*** TIME TEST 14 ***
291rtems_message_queue_urgent: task readied -- returns to caller 24
292*** END OF TEST 14 ***
293
294*** TIME TEST 15 ***
295rtems_event_receive: obtain current events 0
296rtems_event_receive: not available -- NO_WAIT 5
297rtems_event_receive: not available -- caller blocks 28
298rtems_event_send: no task readied 5
299rtems_event_receive: available 9
300rtems_event_send: task readied -- returns to caller 16
301*** END OF TEST 15 ***
302
303*** TIME TEST 16 ***
304rtems_event_send: task readied -- preempts caller 27
305*** END OF TEST 16 ***
306
307*** TIME TEST 17 ***
308rtems_task_set_priority: preempts caller 39
309*** END OF TEST 17 ***
310
311*** TIME TEST 18 ***
312rtems_task_delete: calling task 83
313*** END OF TEST 18 ***
314
315*** TIME TEST 19 ***
316rtems_signal_catch 5
317rtems_signal_send: returns to caller 12
318rtems_signal_send: signal to self 20
319exit ASR overhead: returns to calling task 15
320exit ASR overhead: returns to preempting task 18
321*** END OF TEST 19 ***
322
323*** TIME TEST 20 ***
324rtems_partition_create 20
325rtems_region_create 40
326rtems_partition_get_buffer: available 11
327rtems_partition_get_buffer: not available 7
328rtems_partition_return_buffer 12
329rtems_partition_delete 11
330rtems_region_get_segment: available 28
331rtems_region_get_segment: not available -- NO_WAIT 29
332rtems_region_return_segment: no waiting tasks 29
333rtems_region_get_segment: not available -- caller blocks 55
334rtems_region_return_segment: task readied -- preempts caller 72
335rtems_region_return_segment: task readied -- returns to caller 58
336rtems_region_delete 25
337rtems_io_initialize 1
338rtems_io_open 1
339rtems_io_close 1
340rtems_io_read 1
341rtems_io_write 1
342rtems_io_control 1
343*** END OF TEST 20 ***
344
345*** TIME TEST 21 ***
346rtems_task_ident 60
347rtems_message_queue_ident 60
348rtems_semaphore_ident 69
349rtems_partition_ident 59
350rtems_region_ident 60
351rtems_port_ident 59
352rtems_timer_ident 61
353rtems_rate_monotonic_ident 60
354*** END OF TEST 21 ***
355
356*** TIME TEST 22 ***
357rtems_message_queue_broadcast: task readied -- returns to caller 32
358rtems_message_queue_broadcast: no waiting tasks 14
359rtems_message_queue_broadcast: task readied -- preempts caller 39
360*** END OF TEST 22 ***
361
362*** TIME TEST 23 ***
363rtems_timer_create 8
364rtems_timer_fire_after: inactive 12
365rtems_timer_fire_after: active 12
366rtems_timer_cancel: active 9
367rtems_timer_cancel: inactive 8
368rtems_timer_reset: inactive 14
369rtems_timer_reset: active 15
370rtems_timer_fire_when: inactive 21
371rtems_timer_fire_when: active 21
372rtems_timer_delete: active 12
373rtems_timer_delete: inactive 11
374rtems_task_wake_when 35
375*** END OF TEST 23 ***
376
377*** TIME TEST 24 ***
378rtems_task_wake_after: yield -- returns to caller 3
379rtems_task_wake_after: yields -- preempts caller 18
380*** END OF TEST 24 ***
381
382*** TIME TEST 25 ***
383rtems_clock_tick 7
384*** END OF TEST 25 ***
385
386*** TIME TEST 26 ***
387_ISR_Disable 1
388_ISR_Flash 0
389_ISR_Enable 0
390_Thread_Disable_dispatch 1
391_Thread_Enable_dispatch 3
392_Thread_Set_state 7
393_Thread_Disptach (NO FP) 16
394context switch: no floating point contexts 12
395context switch: self 2
396context switch: to another task 1
397fp context switch: restore 1st FP task 14
398fp context switch: save idle, restore initialized 3
399fp context switch: save idle, restore idle 13
400fp context switch: save initialized, restore initialized 2
401_Thread_Resume 7
402_Thread_Unblock 6
403_Thread_Ready 5
404_Thread_Get 1
405_Semaphore_Get 1
406_Thread_Get: invalid id 0
407*** END OF TEST 26 ***
408
409*** TIME TEST 27 ***
410interrupt entry overhead: returns to interrupted task 3
411interrupt exit overhead: returns to interrupted task 3
412interrupt entry overhead: returns to nested interrupt 2
413interrupt exit overhead: returns to nested interrupt 2
414interrupt entry overhead: returns to preempting task 4
415interrupt exit overhead: returns to preempting task 20
416*** END OF TEST 27 ***
417
418*** TIME TEST 28 ***
419rtems_port_create 12
420rtems_port_external_to_internal 5
421rtems_port_internal_to_external 6
422rtems_port_delete 12
423*** END OF TEST 28 ***
424
425*** TIME TEST 29 ***
426rtems_rate_monotonic_create 13
427rtems_rate_monotonic_period: initiate period -- returns to caller 20
428rtems_rate_monotonic_period: obtain status 10
429rtems_rate_monotonic_cancel 13
430rtems_rate_monotonic_delete: inactive 17
431rtems_rate_monotonic_delete: active 16
432rtems_rate_monotonic_period: conclude periods -- caller blocks 24
433*** END OF TEST 29 ***
434
435*** TIME CHECKER ***
436Units may not be in microseconds for this test!!!
4370 100000
438Total time = 0
439Average time = 0
440NULL timer stopped at 0
441LOOP (1000) timer stopped at 188
442LOOP (10000) timer stopped at 1875
443LOOP (50000) timer stopped at 9375
444LOOP (100000) timer stopped at 18750
445*** END OF TIME CHECKER ***
446
447*** TIME TEST OVERHEAD ***
448rtems_initialize_executive 0
449rtems_shutdown_executive 0
450rtems_task_create 0
451rtems_task_ident 0
452rtems_task_start 0
453rtems_task_restart 0
454rtems_task_delete 0
455rtems_task_suspend 0
456rtems_task_resume 0
457rtems_task_set_priority 0
458rtems_task_mode 0
459rtems_task_get_note 0
460rtems_task_set_note 0
461rtems_task_wake_when 1
462rtems_task_wake_after 0
463rtems_interrupt_catch 0
464rtems_clock_get 1
465rtems_clock_set 1
466rtems_clock_tick 0
467rtems_timer_create 0
468rtems_timer_delete 0
469rtems_timer_ident 0
470rtems_timer_fire_after 1
471rtems_timer_fire_when 1
472rtems_timer_reset 0
473rtems_timer_cancel 0
474rtems_semaphore_create 0
475rtems_semaphore_delete 0
476rtems_semaphore_ident 0
477rtems_semaphore_obtain 0
478rtems_semaphore_release 0
479rtems_message_queue_create 0
480rtems_message_queue_ident 0
481rtems_message_queue_delete 0
482rtems_message_queue_send 0
483rtems_message_queue_urgent 0
484rtems_message_queue_broadcast 0
485rtems_message_queue_receive 0
486rtems_message_queue_flush 0
487rtems_event_send 0
488rtems_event_receive 0
489rtems_signal_catch 0
490rtems_signal_send 0
491rtems_partition_create 0
492rtems_partition_ident 0
493rtems_partition_delete 0
494rtems_partition_get_buffer 0
495rtems_partition_return_buffer 0
496rtems_region_create 0
497rtems_region_ident 0
498rtems_region_delete 0
499rtems_region_get_segment 0
500rtems_region_return_segment 0
501rtems_port_create 0
502rtems_port_ident 0
503rtems_port_delete 0
504rtems_port_external_to_internal 0
505rtems_port_internal_to_external 0
506rtems_io_initialize 0
507rtems_io_open 0
508rtems_io_close 0
509rtems_io_read 0
510rtems_io_write 0
511rtems_io_control 0
512rtems_fatal_error_occurred 0
513rtems_rate_monotonic_create 0
514rtems_rate_monotonic_ident 0
515rtems_rate_monotonic_delete 0
516rtems_rate_monotonic_cancel 0
517rtems_rate_monotonic_period 0
518rtems_multiprocessing_announce 0
519*** END OF TIME OVERHEAD ***
Note: See TracBrowser for help on using the repository browser.