]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/coldfire/mcf5272/v2_0/include/variant.inc
Initial revision
[karo-tx-redboot.git] / packages / hal / coldfire / mcf5272 / v2_0 / include / variant.inc
1 #ifndef CYGONCE_HAL_VARIANT_INC
2 #define CYGONCE_HAL_VARIANT_INC
3
4 |==========================================================================
5 |
6 |      variant.inc
7 |
8 |      MCF5272 variant assembler header file
9 |
10 |==========================================================================
11 |###ECOSGPLCOPYRIGHTBEGIN####
12 | -------------------------------------------
13 | This file is part of eCos, the Embedded Configurable Operating System.
14 | Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15 | Copyright (C) 2006 eCosCentric Ltd.
16 |
17 | eCos is free software; you can redistribute it and/or modify it under
18 | the terms of the GNU General Public License as published by the Free
19 | Software Foundation; either version 2 or (at your option) any later version.
20 |
21 | eCos is distributed in the hope that it will be useful, but WITHOUT ANY
22 | WARRANTY; without even the implied warranty of MERCHANTABILITY or
23 | FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
24 | for more details.
25 |
26 | You should have received a copy of the GNU General Public License along
27 | with eCos; if not, write to the Free Software Foundation, Inc.,
28 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
29 |
30 | As a special exception, if other files instantiate templates or use macros
31 | or inline functions from this file, or you compile this file and link it
32 | with other works to produce a work based on this file, this file does not
33 | by itself cause the resulting work to be covered by the GNU General Public
34 | License. However the source code for this file must still be made available
35 | in accordance with section (3) of the GNU General Public License.
36 |
37 | This exception does not invalidate any other reasons why a work based on
38 | this file might be covered by the GNU General Public License.
39 | -------------------------------------------
40 |###ECOSGPLCOPYRIGHTEND####
41 |=============================================================================
42 |#####DESCRIPTIONBEGIN####
43 |
44 | Author(s):    Enrico Piria
45 | Contributors:
46 | Date:         2005-25-06
47 | Purpose:      MCF5272 variant definitions.
48 | Description:  This file contains the definitions specific to the
49 |               CPU variant, used in the architecture HAL assembler file.
50 | Usage:        Included by "vectors.S". Do not use directly.
51 |
52 |####DESCRIPTIONEND####
53 |==========================================================================
54
55 #include <cyg/hal/platform.inc>
56
57
58 | -----------------------------------------------------------------------------
59 | CPU specific macros. These provide a common assembler interface to
60 | operations that may have CPU specific implementations on different
61 | variants of the architecture.     
62
63 | CPU initialization macro
64         .macro hal_cpu_init
65
66         | Invalidate and disable the cache and ACRs.
67         move.l  #0x01000000,%d0
68         movec   %d0,%cacr
69
70         move.l  #0x0,%d0
71         movec   %d0,%acr0
72         movec   %d0,%acr1
73         .endm
74
75
76 | ----------------------------------------------------------------------------
77 | This macro retrieves the IPL of the current interrupt from the
78 | interrupt controller register. This is needed because on inetrrupt entry
79 | all interrupts are disabled by writing to the status register, and thus
80 | loosing the current IPL.
81 | Input: interrupt vector number in d0
82 | Output: IPL associated to interrupt in d0
83
84         .macro hal_variant_retrieve_ipl
85
86         | Subtract minimum interrupt vector number
87         sub.l #CYGNUM_HAL_ISR_MIN,%d0
88     
89         | Load IPL table address in a0
90         lea cyg_hal_ILVL_table,%a0
91
92         | Retrieve IPL level for current interrupt
93         move.b  (%a0,%d0.l),%d0
94
95         .endm
96
97 | ----------------------------------------------------------------------------
98 | end of variant.inc
99 #endif // ifndef CYGONCE_HAL_VARIANT_INC