source: rtems/doc/supplements/powerpc/cputable.texi @ a1c57e4

4.104.114.84.95
Last change on this file since a1c57e4 was a1c57e4, checked in by Joel Sherrill <joel.sherrill@…>, on 10/12/98 at 21:27:10

Added idle_task_stack_size field to CPU Table.

  • Property mode set to 100644
File size: 6.2 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-1998.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5@c
6@c  $Id$
7@c
8
9@ifinfo
10@node Processor Dependent Information Table, Processor Dependent Information Table Introduction, Board Support Packages Processor Initialization, Top
11@end ifinfo
12@chapter Processor Dependent Information Table
13@ifinfo
14@menu
15* Processor Dependent Information Table Introduction::
16* Processor Dependent Information Table CPU Dependent Information Table::
17@end menu
18@end ifinfo
19
20@ifinfo
21@node Processor Dependent Information Table Introduction, Processor Dependent Information Table CPU Dependent Information Table, Processor Dependent Information Table, Processor Dependent Information Table
22@end ifinfo
23@section Introduction
24
25Any highly processor dependent information required
26to describe a processor to RTEMS is provided in the CPU
27Dependent Information Table.  This table is not required for all
28processors supported by RTEMS.  This chapter describes the
29contents, if any, for a particular processor type.
30
31@ifinfo
32@node Processor Dependent Information Table CPU Dependent Information Table, Memory Requirements, Processor Dependent Information Table Introduction, Processor Dependent Information Table
33@end ifinfo
34@section CPU Dependent Information Table
35
36The PowerPC version of the RTEMS CPU Dependent
37Information Table is given by the C structure definition is
38shown below:
39
40@example
41typedef struct @{
42  void       (*pretasking_hook)( void );
43  void       (*predriver_hook)( void );
44  void       (*postdriver_hook)( void );
45  void       (*idle_task)( void );
46  boolean      do_zero_of_workspace;
47  unsigned32   idle_task_stack_size;
48  unsigned32   interrupt_stack_size;
49  unsigned32   extra_mpci_receive_server_stack;
50  void *     (*stack_allocate_hook)( unsigned32 );
51  void       (*stack_free_hook)( void* );
52  /* end of fields required on all CPUs */
53
54  unsigned32   clicks_per_usec;       /* Timer clicks per microsecond */
55  void       (*spurious_handler)(unsigned32 vector, CPU_Interrupt_frame *);
56  boolean      exceptions_in_RAM;     /* TRUE if in RAM */
57
58#if defined(ppc403)
59  unsigned32   serial_per_sec;        /* Serial clocks per second */
60  boolean      serial_external_clock;
61  boolean      serial_xon_xoff;
62  boolean      serial_cts_rts;
63  unsigned32   serial_rate;
64  unsigned32   timer_average_overhead; /* in ticks */
65  unsigned32   timer_least_valid;      /* Least valid number from timer */
66#endif
67@};
68@end example
69
70@table @code
71@item pretasking_hook
72is the address of the
73user provided routine which is invoked once RTEMS initialization
74is complete but before interrupts and tasking are enabled.  This
75field may be NULL to indicate that the hook is not utilized.
76
77@item predriver_hook
78is the address of the user provided
79routine which is invoked with tasking enabled immediately before
80the MPCI and device drivers are initialized. RTEMS
81initialization is complete, interrupts and tasking are enabled,
82but no device drivers are initialized.  This field may be NULL to
83indicate that the hook is not utilized.
84
85@item postdriver_hook
86is the address of the user provided
87routine which is invoked with tasking enabled immediately after
88the MPCI and device drivers are initialized. RTEMS
89initialization is complete, interrupts and tasking are enabled,
90and the device drivers are initialized.  This field may be NULL
91to indicate that the hook is not utilized.
92
93@item idle_task
94is the address of the optional user
95provided routine which is used as the system's IDLE task.  If
96this field is not NULL, then the RTEMS default IDLE task is not
97used.  This field may be NULL to indicate that the default IDLE
98is to be used.
99
100@item do_zero_of_workspace
101indicates whether RTEMS should
102zero the Workspace as part of its initialization.  If set to
103TRUE, the Workspace is zeroed.  Otherwise, it is not.
104
105@item idle_task_stack_size
106is the size of the RTEMS idle task stack in bytes. 
107If this number is less than MINIMUM_STACK_SIZE, then the
108idle task's stack will be MINIMUM_STACK_SIZE in byte.
109
110@item interrupt_stack_size
111is the size of the RTEMS allocated interrupt stack in bytes.
112This value must be at least as large as MINIMUM_STACK_SIZE.
113
114@item extra_mpci_receive_server_stack
115is the extra stack space allocated for the RTEMS MPCI receive server task
116in bytes.  The MPCI receive server may invoke nearly all directives and
117may require extra stack space on some targets.
118
119@item stack_allocate_hook
120is the address of the optional user provided routine which allocates
121memory for task stacks.  If this hook is not NULL, then a stack_free_hook
122must be provided as well.
123
124@item stack_free_hook
125is the address of the optional user provided routine which frees
126memory for task stacks.  If this hook is not NULL, then a stack_allocate_hook
127must be provided as well.
128
129@item clicks_per_usec
130is the number of decrementer interupts that occur each microsecond.
131
132@item spurious_handler
133is the address of the
134routine which is invoked when a spurious interrupt occurs.
135
136@item exceptions_in_RAM
137indicates whether the exception vectors are located in RAM or ROM.  If
138they are located in RAM dynamic vector installation occurs, otherwise
139it does not.
140
141@item serial_per_sec
142is a PPC403 specific field which specifies the number of clock
143ticks per second for the PPC403 serial timer.
144
145@item serial_rate
146is a PPC403 specific field which specifies the baud rate for the
147PPC403 serial port.
148
149@item serial_external_clock
150is a PPC403 specific field which indicates whether or not to mask in a 0x2 into
151the Input/Output Configuration Register (IOCR) during initialization of the
152PPC403 console.  (NOTE: This bit is defined as "reserved" 6-12?)
153
154@item serial_xon_xoff
155is a PPC403 specific field which indicates whether or not
156XON/XOFF flow control is supported for the PPC403 serial port.
157
158@item serial_cts_rts
159is a PPC403 specific field which indicates whether or not to set the
160least significant bit of the Input/Output Configuration Register
161(IOCR) during initialization of the PPC403 console.  (NOTE: This
162bit is defined as "reserved" 6-12?)
163
164@item timer_average_overhead
165is a PPC403 specific field which specifies the average number of overhead ticks that occur on the PPC403 timer.
166
167@item timer_least_valid
168is a PPC403 specific field which specifies the maximum valid PPC403 timer value.
169
170@end table
171
Note: See TracBrowser for help on using the repository browser.