source: rtems/doc/supplements/i960/cputable.t @ bc950e87

4.104.114.84.95
Last change on this file since bc950e87 was bc950e87, checked in by Joel Sherrill <joel.sherrill@…>, on 11/19/98 at 16:02:06

Applied updates from remote work while doing class.

  • Property mode set to 100644
File size: 3.9 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 i960CA version of the RTEMS CPU Dependent
22Information Table contains the information required to interface
23a Board Support Package and RTEMS on the i960CA.  This
24information is provided to allow RTEMS to interoperate
25effectively with the BSP.  The C structure definition is given
26here:
27
28@example
29@group
30typedef struct @{
31  void        (*pretasking_hook)( void );
32  void        (*predriver_hook)( void );
33  void        (*postdriver_hook)( void );
34  void        (*idle_task)( void );
35  boolean       do_zero_of_workspace;
36  unsigned32    idle_task_stack_size;
37  unsigned32    interrupt_stack_size;
38  unsigned32    extra_mpci_receive_server_stack;
39  void       (*stack_free_hook)( void* );
40  /* end of fields required on all CPUs */
41 
42#if defined(__i960CA__) || defined(__i960_CA__) || defined(__i960CA)
43  i960ca_PRCB *Prcb;
44#endif
45
46@} rtems_cpu_table;
47@end group
48@end example
49
50The contents of the i960CA Processor Control Block
51are discussed in  Intel's i960CA User's Manual.  Structure
52definitions for the i960CA PRCB and Control Table are provided
53by including the file rtems.h.
54
55@table @code
56@item pretasking_hook
57is the address of the user provided routine which is invoked
58once RTEMS APIs are initialized.  This routine will be invoked
59before any system tasks are created.  Interrupts are disabled.
60This field may be NULL to indicate that the hook is not utilized.
61
62@item predriver_hook
63is the address of the user provided
64routine that is invoked immediately before the
65the device drivers and MPCI are initialized. RTEMS
66initialization is complete but interrupts and tasking are disabled.
67This field may be NULL to indicate that the hook is not utilized.
68
69@item postdriver_hook
70is the address of the user provided
71routine that is invoked immediately after the
72the device drivers and MPCI are initialized. RTEMS
73initialization is complete but interrupts and tasking are disabled.
74This field may be NULL to indicate that the hook is not utilized.
75
76@item idle_task
77is the address of the optional user
78provided routine which is used as the system's IDLE task.  If
79this field is not NULL, then the RTEMS default IDLE task is not
80used.  This field may be NULL to indicate that the default IDLE
81is to be used.
82
83@item do_zero_of_workspace
84indicates whether RTEMS should
85zero the Workspace as part of its initialization.  If set to
86TRUE, the Workspace is zeroed.  Otherwise, it is not.
87
88@item idle_task_stack_size
89is the size of the RTEMS idle task stack in bytes. 
90If this number is less than MINIMUM_STACK_SIZE, then the
91idle task's stack will be MINIMUM_STACK_SIZE in byte.
92
93@item interrupt_stack_size
94is the size of the RTEMS
95allocated interrupt stack in bytes.  This value must be at least
96as 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 Prcb
114is the base address of the i960CA's Processor
115Control Block.  It is primarily used by RTEMS to install
116interrupt handlers.
117@end table
118
119
120
121
122
123
Note: See TracBrowser for help on using the repository browser.