annotate packages/hal/m68k/mcf52xx/mcf5272/proc/current/doc/mcf5272.sgml @ 2729:74dbf4c3f2e1 after-copyright-change-20090129

Update all copyright banners to reflect FSF ownership; fix and improve licence text.
author jlarmour
date Thu, 29 Jan 2009 17:47:46 +0000
parents ebd0ea2e6282
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2652
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
1 <!-- DOCTYPE part PUBLIC "-//OASIS//DTD DocBook V3.1//EN" -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
2
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
3 <!-- {{{ Banner -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
4
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
5 <!-- =============================================================== -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
6 <!-- -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
7 <!-- mcf5272.sgml -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
8 <!-- -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
9 <!-- mcf5272 processor HAL documentation. -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
10 <!-- -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
11 <!-- =============================================================== -->
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2652
diff changeset
12 <!-- ####ECOSDOCCOPYRIGHTBEGIN#### -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2652
diff changeset
13 <!-- =============================================================== -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2652
diff changeset
14 <!-- Copyright (C) 2003, 2008 Free Software Foundation, Inc. -->
2652
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
15 <!-- This material may be distributed only subject to the terms -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
16 <!-- and conditions set forth in the Open Publication License, v1.0 -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
17 <!-- or later (the latest version is presently available at -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
18 <!-- http://www.opencontent.org/openpub/) -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
19 <!-- Distribution of the work or derivative of the work in any -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
20 <!-- standard (paper) book form is prohibited unless prior -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
21 <!-- permission obtained from the copyright holder -->
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2652
diff changeset
22 <!-- =============================================================== -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2652
diff changeset
23 <!-- ####ECOSDOCCOPYRIGHTEND#### -->
2652
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
24 <!-- =============================================================== -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
25 <!-- #####DESCRIPTIONBEGIN#### -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
26 <!-- -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
27 <!-- Author(s): bartv -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
28 <!-- Contact(s): bartv -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
29 <!-- Date: 2003/07/15 -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
30 <!-- Version: 0.01 -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
31 <!-- -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
32 <!-- ####DESCRIPTIONEND#### -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
33 <!-- =============================================================== -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
34
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
35 <!-- }}} -->
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
36
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
37 <part id="hal-m68k-mcf5272"><title>Freescale MCF5272 Processor Support</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
38
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
39 <refentry id="m68k-mcf5272">
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
40 <refmeta>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
41 <refentrytitle>The MCF5272 ColdFire Processor</refentrytitle>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
42 </refmeta>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
43 <refnamediv>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
44 <refname><varname>CYGPKG_HAL_M68K_MCF5272</varname></refname>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
45 <refpurpose>eCos Support for the Freescale MCF5272 Processor</refpurpose>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
46 </refnamediv>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
47
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
48 <refsect1 id="m68k-mcf5272-description"><title>Description</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
49 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
50 The MCF5272 is one member of the Freescale MCFxxxx ColdFire range of
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
51 processors. It comes with a number of on-chip peripherals including 2
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
52 UARTs, ethernet, and USB slave. The processor HAL package
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
53 <varname>CYGPKG_HAL_M68K_MCF5272</varname> provides support for
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
54 features that are specific to the MCF5272. It complements the M68K
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
55 architectural HAL package <varname>CYGPKG_HAL_M68K</varname> and the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
56 variant HAL package <varname>CYGPKG_HAL_M68K_MCFxxxx</varname>. An
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
57 eCos configuration should also include a platform HAL package, for
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
58 example <varname>CYGPKG_HAL_M68K_M5272C3</varname> to support
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
59 board-level details like the external memory chips.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
60 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
61 </refsect1>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
62
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
63 <refsect1 id="m68k-mcf5272-config"><title>Configuration</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
64 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
65 The MCF5272 processor HAL package should be loaded automatically when
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
66 eCos is configured for appropriate target hardware. It should never be
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
67 necessary to load this package explicitly. Unloading the package
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
68 should only happen as a side effect of switching target hardware.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
69 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
70 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
71 The component <varname>CYGPKG_HAL_M68K_MCF5272_HARDWARE</varname>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
72 contains configuration options for the available hardware. This
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
73 includes all GPIO pin settings, with defaults provided by the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
74 platform HAL. In turn the pin settings are used to determine defaults
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
75 for other hardware settings, for example which of the two on-chip
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
76 uarts are usable. Users can override these settings if necessary,
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
77 subject to any constraints imposed by the platform HAL, but care has
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
78 to be taken that the resulting configuration still matches the actual
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
79 hardware.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
80 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
81 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
82 The option <varname>CYGIMP_HAL_M68K_MCF5272_IDLE</varname> controls
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
83 what happens in configurations containing the eCos kernel when the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
84 idle thread runs, i.e. when there is nothing for the processor to do
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
85 until the next interrupt comes in. Usually the processor made to
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
86 sleep, halting the cpu but leaving all peripherals active.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
87 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
88 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
89 The package contains a single configuration option
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
90 <varname>CYGFUN_HAL_M68K_MCF5272_PROFILE_TIMER</varname>. This
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
91 controls the support for gprof-based profiling. By default it is
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
92 active and enabled if the configuration contains the gprof profiling
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
93 package, otherwise inactive. The relevant code uses hardware timer 2,
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
94 so that timer is no longer available for application code. If the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
95 timer is required but a platform HAL provides an alternative
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
96 implementation of the profiling support then this option can be
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
97 disabled.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
98 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
99 </refsect1>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
100
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
101 <refsect1 id="m68k-mcf5272-port"><title>The HAL Port</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
102 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
103 This section describes how the MCF5272 processor HAL package
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
104 implements parts of the eCos HAL specification. It should be read in
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
105 conjunction with similar sections from the architectural and variant
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
106 HAL documentation.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
107 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
108
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
109 <refsect2 id="m68k-mcf5272-port-io"><title>HAL I/O</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
110 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
111 The header
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
112 file <filename class="headerfile">cyg/hal/proc_io.h</filename>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
113 specifies which generic MCFxxxx devices are present, and provides
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
114 details of MCF5272-specific devices. This header file is automatically
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
115 included by the architectural
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
116 header <filename class="headerfile">cyg/hal/hal_io.h</filename>, so
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
117 typically application code and other packages will just include the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
118 latter.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
119 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
120 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
121 It should be noted that the Freescale documentation is occasionally
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
122 confusing when it comes to numbering devices. For example the four
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
123 on-chip timers are numbered TMR0 to TMR3, but in the interrupt
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
124 controller the corresponding interrupts are numbered TMR1 to TMR4. The
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
125 eCos port consistently starts numbering at 0, so these interrupts have
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
126 been renamed TMR0 to TMR3.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
127 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
128 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
129
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
130 <refsect2 id="m68k-mcf5272-port-interrupts"><title>Interrupt Handling</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
131 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
132 The header file <filename
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
133 class="headerfile">cyg/hal/proc_intr.h</filename> provides VSR and ISR
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
134 vector numbers for all interrupt sources. The VSR vector number, for
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
135 example <varname>CYGNUM_HAL_VECTOR_TMR0</varname>, should be used
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
136 for calls like <function>cyg_interrupt_get_vsr</function>. It
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
137 corresponds directly to the M68K exception number. The ISR vector
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
138 number, for example <varname>CYGNUM_HAL_ISR_TMR0</varname>, should be
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
139 used for calls like <function>cyg_interrupt_create</function>. This
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
140 header file is automatically included by the architectural header
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
141 <filename class="headerfile">cyg/hal/hal_intr.h</filename>, and other
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
142 packages and application code will normally just include the latter.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
143 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
144 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
145 The eCos HAL macros <function>HAL_INTERRUPT_MASK</function>,
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
146 <function>HAL_INTERRUPT_UNMASK</function>,
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
147 <function>HAL_INTERRUPT_SET_LEVEL</function>,
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
148 <function>HAL_INTERRUPT_ACKNOWLEDGE</function>, and
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
149 <function>HAL_INTERRUPT_CONFIGURE</function> are implemented by the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
150 processor HAL. The mask and unmask operations are straightforward,
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
151 simply manipulating the on-chip interrupt controller. The acknowledge
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
152 and configure macros are only relevant for external interrupts:
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
153 internal interrupts generated by on-chip devices do not need to be
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
154 acknowledged. The set-level operation, used implicitly by higher level
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
155 code such as <function>cyg_interrupt_create</function>, is mapped on
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
156 to M68K IPL levels so interrupts can be given a priority between 1
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
157 and 7. Priority 7 corresponds to non-maskable interrupts and must be
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
158 used with care: such interrupts cannot be managed safely by the usual
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
159 eCos ISR and DSR mechanisms; instead application code will have to
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
160 install a custom VSR and manage the entire interrupt.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
161 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
162 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
163
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
164 <refsect2 id="m68k-mcf5272-port-clock"><title>Clock Support</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
165 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
166 The processor HAL provides support for the eCos system clock. This
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
167 always uses hardware timer 3, which should not be used directly by
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
168 application code. If gprof-based profiling is in use then that will
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
169 use hardware timer 2. Timers 0 and 1 are never used by eCos so
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
170 application code is free to manipulate these as required.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
171 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
172 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
173 Some of the configuration options related to the system clock, for
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
174 example <varname>CYGNUM_HAL_RTC_PERIOD</varname>, are actually
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
175 contained in the platform HAL rather than the processor HAL. These
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
176 options need to take into account the processor clock speed, a
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
177 characteristic of the platform rather than the processor.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
178 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
179 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
180
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
181 <refsect2 id="m68k-mcf5272-port-cache"><title>Cache Handling</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
182 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
183 The MCF5272 has a small instruction cache of 1024 bytes. This is fully
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
184 supported by the processor HAL. There is no data cache.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
185 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
186 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
187
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
188 <refsect2 id="m68k-mcf5272-port-idle"><title>Idle Thread Support</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
189 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
190 The configuration
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
191 option <varname>CYGIMP_HAL_M68K_MCF5272_IDLE</varname> controls what
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
192 happens when the kernel idle thread runs. The default behaviour is to
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
193 put the processor to sleep until the next interrupt.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
194 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
195 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
196
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
197 <refsect2 id="m68k-mcf5272-port-profiling"><title>Profiling Support</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
198 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
199 The MCF5272 processor HAL provides a profiling timer for use with the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
200 gprof profiling package. This uses hardware timer 2, so application
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
201 code should not manipulate this timer if profiling is enabled. The
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
202 M68K architectural HAL implements the <function>mcount</function>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
203 function so profiling is fully supported on all MCF5272-based platforms.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
204 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
205 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
206
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
207 <refsect2 id="m68k-mcf5272-port-other-hal"><title>Other Issues</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
208 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
209 The MCF5272 processor HAL does not affect the implementation of data
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
210 types, stack size definitions, linker scripts, SMP support, system
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
211 startup, or debug support. The architectural HAL's bit index
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
212 instructions are used rather than the MCFxxxx variant HAL's versions
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
213 since the MCF5272 does not implement the ff1 and bitrev instructions.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
214 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
215 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
216
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
217 <refsect2 id="m68k-mcf5272-port-other"><title>Other Functionality</title>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
218 <para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
219 The MCF5272 processor HAL only implements functionality defined in the
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
220 eCos HAL specification and does not export any additional functions.
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
221 </para>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
222 </refsect2>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
223 </refsect1>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
224 </refentry>
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
225
ebd0ea2e6282 Contribute eCosCentric's MCF5272 processor HAL, replacing the old
bartv
parents:
diff changeset
226 </part>