OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rtems-20020807/] [doc/] [supplements/] [i386/] [cputable.t] - Blame information for rev 1782

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
@c
2
@c  COPYRIGHT (c) 1988-2002.
3
@c  On-Line Applications Research Corporation (OAR).
4
@c  All rights reserved.
5
@c
6
@c  cputable.t,v 1.9 2002/01/17 21:47:46 joel Exp
7
@c
8
 
9
@chapter Processor Dependent Information Table
10
 
11
@section Introduction
12
 
13
Any highly processor dependent information required
14
to describe a processor to RTEMS is provided in the CPU
15
Dependent Information Table.  This table is not required for all
16
processors supported by RTEMS.  This chapter describes the
17
contents, if any, for a particular processor type.
18
 
19
@section CPU Dependent Information Table
20
 
21
The i386 version of the RTEMS CPU Dependent
22
Information Table contains the information required to interface
23
a Board Support Package and RTEMS on the i386.  This information
24
is provided to allow RTEMS to interoperate effectively with the
25
BSP.  The C structure definition is given here:
26
 
27
@example
28
@group
29
typedef 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
49
is the address of the user provided routine which is invoked
50
once RTEMS APIs are initialized.  This routine will be invoked
51
before any system tasks are created.  Interrupts are disabled.
52
This field may be NULL to indicate that the hook is not utilized.
53
 
54
@item predriver_hook
55
is the address of the user provided
56
routine that is invoked immediately before the
57
the device drivers and MPCI are initialized. RTEMS
58
initialization is complete but interrupts and tasking are disabled.
59
This field may be NULL to indicate that the hook is not utilized.
60
 
61
@item postdriver_hook
62
is the address of the user provided
63
routine that is invoked immediately after the
64
the device drivers and MPCI are initialized. RTEMS
65
initialization is complete but interrupts and tasking are disabled.
66
This field may be NULL to indicate that the hook is not utilized.
67
 
68
@item idle_task
69
is the address of the optional user
70
provided routine which is used as the system's IDLE task.  If
71
this field is not NULL, then the RTEMS default IDLE task is not
72
used.  This field may be NULL to indicate that the default IDLE
73
is to be used.
74
 
75
@item do_zero_of_workspace
76
indicates whether RTEMS should
77
zero the Workspace as part of its initialization.  If set to
78
TRUE, the Workspace is zeroed.  Otherwise, it is not.
79
 
80
@item idle_task_stack_size
81
is the size of the RTEMS idle task stack in bytes.
82
If this number is less than MINIMUM_STACK_SIZE, then the
83
idle task's stack will be MINIMUM_STACK_SIZE in byte.
84
 
85
@item interrupt_stack_size
86
is the size of the RTEMS
87
allocated interrupt stack in bytes.  This value must be at least
88
as large as MINIMUM_STACK_SIZE.
89
 
90
@item extra_mpci_receive_server_stack
91
is the extra stack space allocated for the RTEMS MPCI receive server task
92
in bytes.  The MPCI receive server may invoke nearly all directives and
93
may require extra stack space on some targets.
94
 
95
@item stack_allocate_hook
96
is the address of the optional user provided routine which allocates
97
memory for task stacks.  If this hook is not NULL, then a stack_free_hook
98
must be provided as well.
99
 
100
@item stack_free_hook
101
is the address of the optional user provided routine which frees
102
memory for task stacks.  If this hook is not NULL, then a stack_allocate_hook
103
must be provided as well.
104
 
105
@item interrupt_segment
106
is the value of the selector which should be placed in a segment
107
register to access the Interrupt Descriptor Table.
108
 
109
@item interrupt_vector_table
110
is the base address of the Interrupt Descriptor Table relative to the
111
interrupt_segment.
112
 
113
@end table
114
 
115
The contents of the i386 Interrupt Descriptor Table
116
are discussed in  Intel's i386 User's Manual.  Structure
117
definitions for the i386 IDT is provided by including the file
118
rtems.h.
119
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.