source: rtems/bsps/powerpc/ss555/README @ 90232bc

Last change on this file since 90232bc was eb36d11, checked in by Sebastian Huber <sebastian.huber@…>, on Apr 25, 2018 at 1:06:08 PM

bsps: Move documentation, etc. files to bsps

This patch is a part of the BSP source reorganization.

Update #3285.

  • Property mode set to 100644
File size: 8.6 KB
Line 
1This is a README file for the Intec SS555 of RTEMS 4.6.0
2
3The SS555 port was sponsored by Defence Research and Development
4Canada - Suffield, and is Copyright (C) 2004, Real-Time Systems Inc.
5
6Please send any comments, improvements, or bug reports to:
7
8David Querbach
9querbach@realtime.bc.ca
10
11
12Summary
13-------
14
15BSP NAME:           ss555
16BOARD:              Intec Automation Inc. SS555
17BUS:                None
18CPU FAMILY:         PowerPC
19CPU:                PowerPC MPC555
20COPROCESSORS:       Built-in Motorola TPU
21MODE:               32 bit mode
22
23DEBUG MONITOR:      None
24
25PERIPHERALS
26===========
27TIMERS:             PIT / Timebase
28  RESOLUTION:       1 microsecond (4 MHz crystal / 4)
29SERIAL PORTS:       2 SCI
30REAL-TIME CLOCK:    On-chip.
31DMA:                None.
32VIDEO:              None.
33SCSI:               None.
34NETWORKING:         None.
35                   
36
37DRIVER INFORMATION
38==================
39CLOCK DRIVER:       yes
40CONSOLE DRIVER:     yes
41SHMSUPP:            N/A
42TIMER DRIVER:       yes
43NETWORK DRIVER:     no
44
45NOTES
46=====
47On-chip resources:
48        SCI1            serial port
49        SCI2            serial port (console)
50        PIT             clock
51        TB              timing test support
52        DEC
53        SWT             watchdog timer -- enable in startup/iss555.c
54        *CS0            external 512k 2-1-1-1 Burst SRAM
55        *CS1
56        *CS2
57        *CS3            CPLD
58        IRQ0
59        IRQ1
60        IRQ2           
61        IRQ3           
62        IRQ4           
63        IRQ5   
64        IRQ6
65        IRQ7
66        IRQ_LVL0       
67        IRQ_LVL1
68        IRQ_LVL2
69        IRQ_LVL3
70        IRQ_LVL4
71        IRQ_LVL5        SCI
72        IRQ_LVL6        PIT
73        IRQ_LVL7
74       
75
76Board description
77-----------------
78Clock rate:     40 MHz development/embeddable board
79Bus width:      32-bit on-board RAM, 16-bit off-board I/O
80FLASH:          512k on-chip
81RAM:            512k 2-1-1-1 burst SRAM
82
83
84Installation
85------------
86
87The ss555 port uses the Intec SS555's external RAM in two different ways,
88depending on whether or not it is built for debugging by giving the
89VARIANT=DEBUG switch to make:
90
91        make VARIANT=DEBUG all
92
931.  In the debugging case, the linker script concanttenates the .text,
94.data, and .bss sections starting at location zero, so they all can be
95loaded into the external RAM for debugging.  We assume that the debugger
96disables the internal Flash ROM and enables the external RAM before loading
97the code into the external RAM.
98
992.  In the normal (non-debugging) case, the linker script still places the
100.text section near zero, but places the start of the .data and .bss sections
101at the start location of the MPC555's internal RAM.  The system startup code
102then configures the external RAM just after the internal RAM in memory,
103forming one large block from the two RAM devices.
104
105
106Console driver
107---------------
108
109This BSP includes an termios-capable asynchronous serial line driver that
110supports SCI1 and SCI2. The RTEMS console is selected at configuration time
111with the CONSOLE_MINOR variable (see .../ss555/configure.ac).  We default to
112SCI2 for the console, since SCI1 has some extra features which may be
113desired for application use.
114
115The BSP console supports three different modes of operation:
116
117  1. polled I/O done with termios support,
118  2. polled I/O done without termios support,
119  3. interrupt-driven I/O with termios support.
120     
121The mode of operation of the serial driver is determined at configure time in
122part by the value of the UARTS_IO_MODE variable (see .../ss555/configure.ac).
123
124  0 - polled I/O.
125  1 - interrupt-driven I/O.
126 
127Also, set the value of UARTS_USE_TERMIOS to select whether termios should be
128used to perform buffering and input/output processing. Without termios
129support, input processing is limited to the substitution of LF for a
130received CR, and output processing is limited to the transmission of a CR
131following the transmission of a LF. The choices for UARTS_USE_TERMIOS are:
132
133  0 - do not use termios
134  1 - use termios
135
136In most real-time applications, the driver should be configured to use
137termios and interrupt-driven I/O. Special requirements may dictate otherwise.
138
139Polled I/O must be used when running the timing tests. It must also be used
140to run some other tests and some samples, such as the cdtest. Some tests
141change the interrupt mask and will hang interrupt-driven I/O indefinitely.
142Others, such as cdtest, perform console output from the static constructors
143before the console is opened, causing the test to hang. Still other tests
144produce output that is supposed to be in some specific order. For these
145tests, termios should not be used, as termios buffers output and the
146transmission of the buffers occur at somewhat unpredictable times.
147
148The real solution is to fix the tests so that they work with interrupt-driven
149I/O and termios.
150
151
152printk() and debug output
153-----------------------
154
155The implementation of printk() in RTEMS is mostly independent of most system
156services. The printk() function can therefore be used to print messages to a
157debug console, particularly when debugging startup code or device drivers,
158i.e. code that runs before the console driver is opened or that runs with
159interrupts disabled.
160
161Support is provided to send printk output to either port. Specify the
162desired port at configure time by setting the value of PRINTK_MINOR to one
163of SCI1_MINOR or SCI2_MINOR.
164
165printk() always uses polled I/O, and never uses termios.
166
167If the printk() port is opened by RTEMS, then UARTS_IO_MODE must be set for
168polled I/O, otherwise the I/O functions will be in conflict.  Using printk()
169before the port is initialized is, of course, not possible.  This
170initialization occurs in console_initialize(), which is called by
171rtems_initialize_executive_early().
172
173
174Watchdog Timer
175--------------
176
177The MPC555 watchdog timer can be enabled at configuration time by defining
178the WATCHDOG_TIMEOUT variable.  This variable sets the watchdog timeout
179period in steps of
180
181          2048          2048
182        ---------  =  ---------  =  51.2 usec
183         Fsystem       40 MHz
184
185or about 1/20 msec.  When WATCHDOG_TIMEOUT is left undefined, the watchdog
186timer is disabled.
187
188
189Miscellaneous
190-------------
191
192Most code came from the mbx8xx port, except for the floating-point handling
193which came from the mpc8260ads.
194
195
196Host System
197-----------
198
199The port was developed on an x86 box running Debian 3.0.  The toolchain was
200built from the sources at rtems.org, except for the autotools which came
201from the Debian distribution.
202
203
204Test Configuration
205------------------
206
207Board:                Intec SS555 v1.1
208CPU:                  Motorola MPC555LFMZP40, mask 1K83H
209Clock Speed:          Crystal 4.0 MHz, CPU 40.0 MHz
210RAM:                  512K bytes of 2-1-1-1 Burst SRAM
211Times Reported in:    Microseconds
212Timer Source:         Timebase clock
213GCC Flags:            -O4 -fno-keep-inline-functions -mcpu=(821/860)
214Console:              Operates in polled mode on SMC2. No I/O through EPPC-Bug.   
215
216
217Test Results
218------------
219
220Single processor tests: 
221  All tests passed, except that:
222    - sp09 aborts due to memory shortage
223    - sp20 needs to be run with output buffering enabled (see
224      buffer_test_io.h)
225
226Multi-processor tests: 
227  Not applicable.
228
229Library tests:
230  All tests passed.  Note that the termios test only works if the system is
231  rebuilt with termios enabled.                         
232
233Posix tests:
234  All tests passed, except that:
235    - the message queue test failed with "errno (91 - File or path name too
236      long)"
237
238Timing tests:
239  Due to memory limitations, many of the tests will not run unless you set
240  OPERATION_COUNT=20 at configuration time.
241
242  To run tm27 (the interrupt latency timer test), short CN5-48 to CN5-50 on
243  the SS555 board.
244
245  All tests run cleanly, except for tm26, which gives a "PANIC 12" after it
246  exits.  This doesn't seem to cause a problem otherwise.
247
248  See the times file for the results of the timing tests.
249
250Network tests: 
251  Not applicable.
252
253Sample programs:
254  These run correctly, except that:
255    - The "minimum" sample is not designed to run properly on any system.
256    - The loopback, fileio, unilimited, and pppd tests fail due to memory
257      limitations.
258    - The paranoia program dies on a floating-point assist exception.
259
260Various non-BSP-dependent support routines.
261
262timer -         Support for the RTEMS timer tick, using the Programmable
263                Interval Timer (PIT).
264
265console-generic - Console support via the on-chip dual SCI port in the QSMCM
266                module.
267
268exception -     Installation and deinstallation of exception handlers, by
269                manipulation of exception vector table.
270
271irq -           Exception handler for all external and decrementer interrupts.
272                Generalized interrupt handler which calls specific handlers
273                via entries in the interrupt connection table.  Interrupt
274                connection table maintenance routines.  USIU and UIMB
275                interrupt masking and level control.
276
277timer -         Support for RTEMS timer tests, using the PowerPC timebase
278                (TB) registers.
279
280vectors -       Compressed MPC5XX exception vector table, exception handler
281                prologues, default exception handler.  Code to initialize
282                table with default handlers.
Note: See TracBrowser for help on using the repository browser.