source: rtems/doc/supplements/i386/cputable.t @ 01f46a73

4.104.114.84.95
Last change on this file since 01f46a73 was 6449498, checked in by Joel Sherrill <joel.sherrill@…>, on 01/17/02 at 21:47:47

2001-01-17 Joel Sherrill <joel@…>

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