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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [doc/] [html/] [ref/] [hal-porting-structure.html] - Rev 174

Compare with Previous | Blame | View Log

<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
<!-- This material may be distributed only subject to the terms      -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- or later (the latest version is presently available at          -->
<!-- http://www.opencontent.org/openpub/).                           -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- permission is obtained from the copyright holder.               -->
<HTML
><HEAD
><TITLE
>HAL Structure</TITLE
><meta name="MSSmartTagsPreventParsing" content="TRUE">
<META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="eCos Reference Manual"
HREF="ecos-ref.html"><LINK
REL="UP"
TITLE="	Porting Guide"
HREF="hal-porting-guide.html"><LINK
REL="PREVIOUS"
TITLE="	Porting Guide"
HREF="hal-porting-guide.html"><LINK
REL="NEXT"
TITLE="Virtual Vectors (eCos/ROM Monitor Calling Interface)"
HREF="hal-calling-if.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>eCos Reference Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="hal-porting-guide.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 11. Porting Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="hal-calling-if.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="HAL-PORTING-STRUCTURE">HAL Structure</H1
><P
>In order to write an eCos HAL it's a good idea to have at least a
passing understanding of how the HAL interacts with the rest of the
system.</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN8659">HAL Classes</H2
><P
>The eCos HAL consists of four HAL sub-classes. This table gives a
brief description of each class and partly reiterates the description
in <A
HREF="hal-architecture-variant-and-platform.html"
>Chapter 7</A
>. The links
refer to the on-line CVS tree (specifically to the sub-HALs used by
the PowerPC MBX target).</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN8663"><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>HAL type</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Description</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Functionality Overview</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Common HAL <A
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/common/current?cvsroot=ecos"
TARGET="_top"
>(hal/common)</A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Configuration options and functionality shared by all HALs.</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Generic debugging functionality, driver API, eCos/ROM monitor
      calling interface, and tests.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Architecture HAL <A
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/arch/current?cvsroot=ecos"
TARGET="_top"
>(hal/&lt;architecture&gt;/arch)</A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Functionality specific to the given architecture. Also default
  implementations of some functionality which can be overridden by
  variant or platform HALs.</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Architecture specific debugger functionality (handles single
     stepping, exception-to-signal conversion, etc.),
     exception/interrupt vector definitions and handlers, cache
     definition and control macros, context switching code, assembler
     functions for early system initialization, configuration options,
     and possibly tests. </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Variant HAL <A
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/mpc8xx/current?cvsroot=ecos"
TARGET="_top"
>(hal/&lt;architecture&gt;/&lt;variant&gt;)</A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Some CPU architectures consist of a number variants, for example
     MIPS CPUs come in both 32 and 64 bit versions, and some variants
     have embedded features additional to the CPU core.</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Variant extensions to the architecture code (cache,
     exception/interrupt), configuration options, possibly drivers for
     variant on-core devices, and possibly tests.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Platform HAL <A
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/mbx/current?cvsroot=ecos"
TARGET="_top"
>(hal/&lt;architecture&gt;/&lt;platform&gt;)</A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Contains functionality and configuration options specific to the
      platform.</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Early platform initialization code, platform memory layout
     specification, configuration options (processor speed, compiler
     options), diagnostic IO functions, debugger IO functions,
     platform specific extensions to architecture or variant code
     (off-core interrupt controller), and possibly tests.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Auxiliary HAL <A
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/quicc/current?cvsroot=ecos"
TARGET="_top"
>(hal/&lt;architecture&gt;/&lt;module&gt;)</A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Some variants share common modules on the core. Motorola's PowerPC
      QUICC is an example of such a module.</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Module specific functionality (interrupt controller, simple
      device drivers), possibly tests.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN8696">File Descriptions</H2
><P
>Listed below are the files found in various HALs, with a short
description of what each file contains. When looking in existing HALs
beware that they do not necessarily follow this naming scheme.
If you are writing a new HAL, please try to follow it as
closely as possible. Still, no two targets are the same, so sometimes
it makes sense to use additional files.</P
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN8699">Common HAL</H3
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN8701"><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>File</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/dbg-thread-syscall.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines the thread debugging syscall function. This is used by
  the ROM monitor to access the thread debugging API in the RAM
  application.  .</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/dbg-threads-api.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines the thread debugging API. .</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/drv_api.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines the driver API.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/generic-stub.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines the generic stub features.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_if.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines the ROM/RAM calling interface API.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_misc.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines miscellaneous helper functions shared by all HALs.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_stub.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines eCos mappings of GDB stub features.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/dbg-threads-syscall.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Thread debugging implementation.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/drv_api.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Driver API implementation. Depending on configuration this
  provides either wrappers for the kernel API, or a minimal
  implementation of these features. This allows drivers to be written
  relying only on HAL features.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/dummy.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Empty dummy file ensuring creation of libtarget.a.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/generic-stub.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Generic GDB stub implementation. This provides the
  communication protocol used to communicate with GDB over a serial
  device or via the network.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_if.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>ROM/RAM calling interface implementation. Provides wrappers from
  the calling interface API to the eCos features used for the
  implementation.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_misc.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Various helper functions shared by all platforms and
  architectures.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_stub.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Wrappers from eCos HAL features to the features required by the
  generic GDB stub.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/stubrom/stubrom.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>The file used to build eCos GDB stub images. Basically a
  cyg_start function with a hard coded breakpoint.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/thread-packets.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>More thread debugging related functions.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/thread-pkts.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines more thread debugging related function.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN8776">Architecture HAL</H3
><P
>Some architecture HALs may add extra files for architecture
specific serial drivers, or for handling interrupts and exceptions if it
makes sense.</P
><P
>Note that many of the definitions in these files are only
conditionally defined - if the equivalent variant or platform headers
provide the definitions, those override the generic architecture
definitions.</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN8780"><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>File</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/arch.inc</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Various assembly macros used during system initialization.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/basetype.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Endian, label, alignment, and type size definitions. These
  override common defaults in CYGPKG_INFRA.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_arch.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Saved register frame format, various thread, register and stack
  related macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_cache.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Cache definitions and cache control macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_intr.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Exception and interrupt definitions. Macros for configuring and
  controlling interrupts. eCos real-time clock control macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_io.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Macros for accessing IO devices.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/&lt;arch&gt;_regs.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Architecture register definitions.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/&lt;arch&gt;_stub.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Architecture stub definitions. In particular the register frame
  layout used by GDB. This may differ from the one used by eCos.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/&lt;arch&gt;.inc</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Architecture convenience assembly macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/&lt;arch&gt;.ld</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Linker macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/context.S</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Functions handling context switching and setjmp/longjmp.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_misc.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Exception and interrupt handlers in C. Various other utility
  functions.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_mk_defs.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Used to export definitions from C header files to assembler
  header files.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_intr.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Any necessary interrupt handling functions.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/&lt;arch&gt;stub.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Architecture stub code. Contains functions for translating eCos
  exceptions to UNIX signals and functions for single-stepping.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/vectors.S</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Exception, interrupt and early initialization code.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN8851">Variant HAL</H3
><P
>Some variant HALs may add extra files for variant specific serial
drivers, or for handling interrupts/exceptions if it makes sense.</P
><P
>Note that these files may be mostly empty if the CPU variant can be
controlled by the generic architecture macros. The definitions present
are only conditionally defined - if the equivalent platform headers
provide the definitions, those override the variant definitions.</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN8855"><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>File</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/var_arch.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Saved register frame format, various thread, register and stack
  related macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/var_cache.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Cache related macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/var_intr.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Interrupt related macros.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/var_regs.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Extra register definitions for the CPU variant.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/variant.inc</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Various assembly macros used during system initialization.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/var_intr.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Interrupt functions if necessary.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/var_misc.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>hal_variant_init function and any necessary extra functions.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/variant.S</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Interrupt handler table definition.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/&lt;arch&gt;_&lt;variant&gt;.ld</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Linker macros.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN8898">Platform HAL</H3
><P
>Extras files may be added for platform specific serial
drivers. Extra files for handling interrupts and exceptions will be
present if it makes sense.</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN8901"><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>File</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/hal_diag.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines functions used for HAL diagnostics output. This would
  normally be the ROM calling interface wrappers, but may also be the
  low-level IO functions themselves, saving a little overhead.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/platform.inc</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Platform initialization code. This includes memory controller,
  vectors, and monitor initialization. Depending on the architecture,
  other things may need defining here as well: interrupt decoding,
  status register initialization value, etc.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/plf_cache.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Platform specific cache handling.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/plf_intr.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Platform specific interrupt handling.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/plf_io.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>PCI IO definitions and macros. May also be used to override
  generic HAL IO macros if the platform endianness differs from that of
  the CPU.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>include/plf_stub.h</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Defines stub initializer and board reset details.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/hal_diag.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>May contain the low-level device drivers. But these may also
  reside in plf_stub.c</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/platform.S</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Memory controller setup macro, and if necessary interrupt
  springboard code.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/plf_misc.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Platform initialization code.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/plf_mk_defs.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Used to export definitions from C header files to assembler
  header files.</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>src/plf_stub.c</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Platform specific stub initialization and possibly the low-level
  device driver.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><P
>The platform HAL also contains files specifying the platform's
memory layout. These files are located in
<TT
CLASS="FILENAME"
>include/pkgconf</TT
>.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN8954">Auxiliary HAL</H3
><P
>Auxiliary HALs contain whatever files are necessary to provide the
required functionality. There are no predefined set of files required
in an auxiliary HAL.</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="hal-porting-guide.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ecos-ref.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="hal-calling-if.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Porting Guide</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="hal-porting-guide.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Virtual Vectors (eCos/ROM Monitor Calling Interface)</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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