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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [supplements/] [arm/] [cputable.t] - Blame information for rev 1765

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.1 2002/07/30 21:43:53 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 XXX version of the RTEMS CPU Dependent
22
Information Table contains the information required to interface
23
a Board Support Package and RTEMS on the XXX.  This
24
information is provided to allow RTEMS to interoperate
25
effectively with the BSP.  The C structure definition is given
26
here:
27
 
28
@example
29
@group
30
typedef 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_allocate_hook)( unsigned32 );
40
  void       (*stack_free_hook)( void* );
41
  /* end of fields required on all CPUs */
42
 
43
  /* XXX CPU family dependent stuff */
44
@} rtems_cpu_table;
45
@end group
46
@end example
47
 
48
@table @code
49
@item pretasking_hook
50
is the address of the user provided routine which is invoked
51
once RTEMS APIs are initialized.  This routine will be invoked
52
before any system tasks are created.  Interrupts are disabled.
53
This field may be NULL to indicate that the hook is not utilized.
54
 
55
@item predriver_hook
56
is the address of the user provided
57
routine that is invoked immediately before the
58
the device drivers and MPCI are initialized. RTEMS
59
initialization is complete but interrupts and tasking are disabled.
60
This field may be NULL to indicate that the hook is not utilized.
61
 
62
@item postdriver_hook
63
is the address of the user provided
64
routine that is invoked immediately after the
65
the device drivers and MPCI are initialized. RTEMS
66
initialization is complete but interrupts and tasking are disabled.
67
This field may be NULL to indicate that the hook is not utilized.
68
 
69
@item idle_task
70
is the address of the optional user
71
provided routine which is used as the system's IDLE task.  If
72
this field is not NULL, then the RTEMS default IDLE task is not
73
used.  This field may be NULL to indicate that the default IDLE
74
is to be used.
75
 
76
@item do_zero_of_workspace
77
indicates whether RTEMS should
78
zero the Workspace as part of its initialization.  If set to
79
TRUE, the Workspace is zeroed.  Otherwise, it is not.
80
 
81
@item idle_task_stack_size
82
is the size of the RTEMS idle task stack in bytes.
83
If this number is less than MINIMUM_STACK_SIZE, then the
84
idle task's stack will be MINIMUM_STACK_SIZE in byte.
85
 
86
@item interrupt_stack_size
87
is the size of the RTEMS
88
allocated interrupt stack in bytes.  This value must be at least
89
as large as MINIMUM_STACK_SIZE.
90
 
91
@item extra_mpci_receive_server_stack
92
is the extra stack space allocated for the RTEMS MPCI receive server task
93
in bytes.  The MPCI receive server may invoke nearly all directives and
94
may require extra stack space on some targets.
95
 
96
@item stack_allocate_hook
97
is the address of the optional user provided routine which allocates
98
memory for task stacks.  If this hook is not NULL, then a stack_free_hook
99
must be provided as well.
100
 
101
@item stack_free_hook
102
is the address of the optional user provided routine which frees
103
memory for task stacks.  If this hook is not NULL, then a stack_allocate_hook
104
must be provided as well.
105
 
106
@item XXX
107
is where the CPU family dependent stuff goes.
108
 
109
@end table

powered by: WebSVN 2.1.0

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