source: rtems/doc/supplements/powerpc/cputable.t @ 9ec462aa

4.104.114.84.95
Last change on this file since 9ec462aa was 9ec462aa, checked in by Joel Sherrill <joel.sherrill@…>, on 10/25/99 at 18:02:33

Fixing many lines that are too long to format cleanly.

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