]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/hal-future-developments.html
RedBoot TX53 Release 2012-02-15
[karo-tx-redboot.git] / doc / html / ref / hal-future-developments.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >Future developments</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
21 REL="UP"
22 TITLE="The eCos Hardware Abstraction Layer (HAL)"
23 HREF="the-ecos-hardware-abstraction-layer.html"><LINK
24 REL="PREVIOUS"
25 TITLE="Architecture HAL Porting"
26 HREF="hal-porting-architecture.html"><LINK
27 REL="NEXT"
28 TITLE="The ISO Standard C and Math Libraries"
29 HREF="libc.html"></HEAD
30 ><BODY
31 CLASS="CHAPTER"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >eCos Reference Manual</TH
50 ></TR
51 ><TR
52 ><TD
53 WIDTH="10%"
54 ALIGN="left"
55 VALIGN="bottom"
56 ><A
57 HREF="hal-porting-architecture.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 ></TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="libc.html"
72 ACCESSKEY="N"
73 >Next</A
74 ></TD
75 ></TR
76 ></TABLE
77 ><HR
78 ALIGN="LEFT"
79 WIDTH="100%"></DIV
80 ><DIV
81 CLASS="CHAPTER"
82 ><H1
83 ><A
84 NAME="HAL-FUTURE-DEVELOPMENTS">Chapter 12. Future developments</H1
85 ><P
86 >The HAL is not complete, and will evolve and increase over
87 time. Among the intended developments are:</P
88 ><P
89 ></P
90 ><UL
91 ><LI
92 ><P
93 >Common macros for interpreting the contents of a saved
94 machine context. These would allow portable code, such as debug
95 stubs, to extract such values as the program counter and stack pointer
96 from a state without having to interpret a <SPAN
97 CLASS="STRUCTNAME"
98 >HAL_SavedRegisters</SPAN
99 > structure
100 directly.</P
101 ></LI
102 ><LI
103 ><P
104 >Debugging support. Macros to set and clear hardware and
105 software breakpoints. Access to other areas of machine state may
106 also be supported.</P
107 ></LI
108 ><LI
109 ><P
110 >Static initialization support. The current HAL provides a
111 dynamic interface to things like thread context initialization and ISR
112 attachment. We also need to be able to define the system entirely
113 statically so that it is ready to go on restart, without needing to
114 run code. This will require extra macros to define these
115 initializations.  Such support may have a consequential effect on the
116 current HAL specification.</P
117 ></LI
118 ><LI
119 ><P
120 >CPU state control. Many CPUs have both kernel and user
121 states. Although it is not intended to run any code in user state
122 for the foreseeable future, it is possible that this may happen
123 eventually. If this is the case, then some minor changes may be needed
124 to the current HAL API to accommodate this. These should mostly
125 be extensions, but minor changes in semantics may also be required.</P
126 ></LI
127 ><LI
128 ><P
129 >Physical memory management. Many embedded systems have
130 multiple memory areas with varying properties such as base address,
131 size, speed, bus width, cacheability and persistence. An API is
132 needed to support the discovery of this information about the machine's
133 physical memory map.</P
134 ></LI
135 ><LI
136 ><P
137 >Memory management control. Some embedded processors have
138 a memory management unit. In some cases this must be enabled to
139 allow the cache to be controlled, particularly if different regions
140 of memory must have different caching properties. For some purposes,
141 in some systems, it will be useful to manipulate the MMU settings
142 dynamically.</P
143 ></LI
144 ><LI
145 ><P
146 >Power management. Macros to access and control any power
147 management mechanisms available on the CPU implementation. These
148 would provide a substrate for a more general power management system
149 that also involved device drivers and other hardware components.</P
150 ></LI
151 ><LI
152 ><P
153 >Generic serial line macros. Most serial line devices operate
154 in the same way, the only real differences being exactly which bits
155 in which registers perform the standard functions. It should be
156 possible to develop a set of HAL macros that provide basic serial
157 line services such as baud rate setting, enabling interrupts, polling
158 for transmit or receive ready, transmitting and receiving data etc.
159 Given these it should be possible to create a generic serial line
160 device driver that will allow rapid bootstrapping on any new platform.
161 It may be possible to extend this mechanism to other device types.</P
162 ></LI
163 ></UL
164 ></DIV
165 ><DIV
166 CLASS="NAVFOOTER"
167 ><HR
168 ALIGN="LEFT"
169 WIDTH="100%"><TABLE
170 SUMMARY="Footer navigation table"
171 WIDTH="100%"
172 BORDER="0"
173 CELLPADDING="0"
174 CELLSPACING="0"
175 ><TR
176 ><TD
177 WIDTH="33%"
178 ALIGN="left"
179 VALIGN="top"
180 ><A
181 HREF="hal-porting-architecture.html"
182 ACCESSKEY="P"
183 >Prev</A
184 ></TD
185 ><TD
186 WIDTH="34%"
187 ALIGN="center"
188 VALIGN="top"
189 ><A
190 HREF="ecos-ref.html"
191 ACCESSKEY="H"
192 >Home</A
193 ></TD
194 ><TD
195 WIDTH="33%"
196 ALIGN="right"
197 VALIGN="top"
198 ><A
199 HREF="libc.html"
200 ACCESSKEY="N"
201 >Next</A
202 ></TD
203 ></TR
204 ><TR
205 ><TD
206 WIDTH="33%"
207 ALIGN="left"
208 VALIGN="top"
209 >Architecture HAL Porting</TD
210 ><TD
211 WIDTH="34%"
212 ALIGN="center"
213 VALIGN="top"
214 ><A
215 HREF="the-ecos-hardware-abstraction-layer.html"
216 ACCESSKEY="U"
217 >Up</A
218 ></TD
219 ><TD
220 WIDTH="33%"
221 ALIGN="right"
222 VALIGN="top"
223 >The ISO Standard C and Math Libraries</TD
224 ></TR
225 ></TABLE
226 ></DIV
227 ></BODY
228 ></HTML
229 >