source: rtems/c/src/lib/libbsp/m68k/uC5282/README @ 4c5212e

4.104.115
Last change on this file since 4c5212e was 9797991, checked in by Eric Norum <WENorum@…>, on 04/08/08 at 03:19:53

startup/bspstart.c: Clean up non-FPGA use of EPORT interrupts.
network/network.c: Track half/full-duplex changes from 4.7 branch.

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