source: rtems/doc/supplements/i386/cputable.t @ db91520

4.104.114.84.95
Last change on this file since db91520 was db91520, checked in by Joel Sherrill <joel.sherrill@…>, on 07/31/97 at 18:45:58

corrected typos and changes LANGUAGE to RTEMS-LANGUAGE.

  • Property mode set to 100644
File size: 4.6 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-1997.
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 i386 version of the RTEMS CPU Dependent
37Information Table contains the information required to interface
38a Board Support Package and RTEMS on the i386.  This information
39is provided to allow RTEMS to interoperate effectively with the
40BSP.  The C structure definition is given here:
41
42@example
43@group
44typedef struct @{
45  void       (*pretasking_hook)( void );
46  void       (*predriver_hook)( void );
47  void       (*idle_task)( void );
48  boolean      do_zero_of_workspace;
49  unsigned32   interrupt_stack_size;
50  unsigned32   extra_mpci_receive_server_stack;
51  void *     (*stack_allocate_hook)( unsigned32 );
52  void       (*stack_free_hook)( void* );
53  /* end of fields required on all CPUs */
54 
55  unsigned32   interrupt_segment;
56  void        *interrupt_vector_table;
57@} rtems_cpu_table;
58@end group
59@end example
60
61@table @code
62@item pretasking_hook
63is the address of the
64user provided routine which is invoked once RTEMS initialization
65is complete but before interrupts and tasking are enabled.  This
66field may be NULL to indicate that the hook is not utilized.
67
68@item predriver_hook
69is the address of the user provided
70routine which is invoked with tasking enabled immediately before
71the MPCI and device drivers are initialized. RTEMS
72initialization is complete, interrupts and tasking are enabled,
73but no device drivers are initialized.  This field may be NULL to
74indicate that the hook is not utilized.
75
76@item postdriver_hook
77is the address of the user provided
78routine which is invoked with tasking enabled immediately after
79the MPCI and device drivers are initialized. RTEMS
80initialization is complete, interrupts and tasking are enabled,
81and the device drivers are initialized.  This field may be NULL
82to indicate that the hook is not utilized.
83
84@item idle_task
85is the address of the optional user
86provided routine which is used as the system's IDLE task.  If
87this field is not NULL, then the RTEMS default IDLE task is not
88used.  This field may be NULL to indicate that the default IDLE
89is to be used.
90
91@item do_zero_of_workspace
92indicates whether RTEMS should
93zero the Workspace as part of its initialization.  If set to
94TRUE, the Workspace is zeroed.  Otherwise, it is not.
95
96@item interrupt_stack_size
97is the size of the RTEMS
98allocated interrupt stack in bytes.  This value must be at least
99as large as MINIMUM_STACK_SIZE.
100
101@item extra_mpci_receive_server_stack
102is the extra stack space allocated for the RTEMS MPCI receive server task
103in bytes.  The MPCI receive server may invoke nearly all directives and
104may require extra stack space on some targets.
105
106@item stack_allocate_hook
107is the address of the optional user provided routine which allocates
108memory for task stacks.  If this hook is not NULL, then a stack_free_hook
109must be provided as well.
110
111@item stack_free_hook
112is the address of the optional user provided routine which frees
113memory for task stacks.  If this hook is not NULL, then a stack_allocate_hook
114must be provided as well.
115
116@item interrupt_segment
117is the value of the selector which should be placed in a segment
118register to access the Interrupt Descriptor Table.
119
120@item interrupt_vector_table
121is the base address of the Interrupt Descriptor Table relative to the
122interrupt_segment.
123
124@end table
125
126The contents of the i386 Interrupt Descriptor Table
127are discussed in  Intel's i386 User's Manual.  Structure
128definitions for the i386 IDT is provided by including the file
129rtems.h.
130
Note: See TracBrowser for help on using the repository browser.