annotate packages/hal/sh/sh3/current/include/variant.inc @ 3292:7f8e529b4d82 default tip

Fix FREESCALE_EDMA_NBYTES_MLOFFYES_MLOFF() so it works with negative offsets.
author vae
date Wed, 29 Apr 2015 23:31:48 +0000
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_HAL_VARIANT_INC
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
2 #define CYGONCE_HAL_VARIANT_INC
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
3 ##=============================================================================
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
4 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
5 ## variant.inc
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
6 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
7 ## SH3 variant assembler header file
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
8 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
9 ##=============================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
10 ## ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
11 ## -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
12 ## This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
13 ## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
14 ##
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
15 ## eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
16 ## the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
17 ## Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
18 ## version.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
19 ##
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
20 ## eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
21 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
22 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
23 ## for more details.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
24 ##
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
25 ## You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
26 ## along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
27 ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
28 ##
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
29 ## As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
30 ## macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
31 ## and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
32 ## this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
33 ## the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
34 ## must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
35 ## General Public License v2.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
36 ##
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
37 ## This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
38 ## on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
39 ## -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 507
diff changeset
40 ## ####ECOSGPLCOPYRIGHTEND####
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
41 ##=============================================================================
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
42 #######DESCRIPTIONBEGIN####
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
43 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
44 ## Author(s): jskov
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
45 ## Contributors:jskov
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
46 ## Date: 2000-10-30
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
47 ## Purpose: SH3 variant definitions and init code
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
48 ## Description: This file contains various definitions and macros that are
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
49 ## useful for writing assembly code for the SH3 CPU family.
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
50 ## Usage:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
51 ## #include <cyg/hal/variant.inc>
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
52 ## ...
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
53 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
54 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
55 ######DESCRIPTIONEND####
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
56 ##
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
57 ##=============================================================================
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
58
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
59 #include <pkgconf/hal.h>
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
60 #include <cyg/hal/sh_regs.h>
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
61
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
62 #===========================================================================
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
63 ## SR initialization value
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
64 ## zero all bits except:
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
65 ## MD = Processor operation mode field (privileged mode)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
66 ## I0-3 = Mask out all interrupts but NMI.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
67 ##
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
68 ## When saving or restoring the state of an exception or interrupt, the bit
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
69 ## CYGARC_REG_SR_RB is also set, switching the register bank. When this bit
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
70 ## is set, interrupts must be disabled.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
71 ##
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
72 ## Note: We could also use the BL bit to prevent interrupts, but that would
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
73 ## also prevent the use of breakpoints.
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
74
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
75 #define CYG_SR (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
76 #define CYG_SR_BANK1 (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK|CYGARC_REG_SR_RB)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
77
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
78 ##-----------------------------------------------------------------------------
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
79 ## Hardware init macros
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
80 #ifndef CYGPKG_HAL_SH_POST_RESET_INIT
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
81 .macro hal_post_reset_init
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
82 # Initialize CPU
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
83 mov.l $nCYG_SR,r1 ! Put CPU in a well-known state
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
84 ldc r1,sr
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
85 mov #0,r0
507
0baabe6e08e0 Minor clean ups to cope with a more finicky SH assembler
bartv
parents: 210
diff changeset
86 mov #CYGARC_REG_CCR & 0x0FF,r1 ! Disable cache
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
87 mov.l r0,@r1
507
0baabe6e08e0 Minor clean ups to cope with a more finicky SH assembler
bartv
parents: 210
diff changeset
88 mov #CYGARC_REG_MMUCR & 0x0FF,r1 ! Disable MMU
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
89 mov.l r0,@r1
507
0baabe6e08e0 Minor clean ups to cope with a more finicky SH assembler
bartv
parents: 210
diff changeset
90 mov #CYGARC_REG_BBRA & 0x0FF,r1 ! Disable UBC Channel A
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
91 mov.w r0,@r1
507
0baabe6e08e0 Minor clean ups to cope with a more finicky SH assembler
bartv
parents: 210
diff changeset
92 mov #CYGARC_REG_BBRB & 0x0FF,r1 ! Disable UBC Channel B
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
93 mov.w r0,@r1
507
0baabe6e08e0 Minor clean ups to cope with a more finicky SH assembler
bartv
parents: 210
diff changeset
94 mov #CYGARC_REG_BRCR & 0x0FF,r1 ! Reset UBC common register
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
95 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
96 mov.l $CYGARC_REG_TSTR,r1 ! Disable timers
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
97 mov.b r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
98 mov.l $CYGARC_REG_IPRA,r1 ! Disable interrupt request sources
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
99 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
100 mov.l $CYGARC_REG_IPRB,r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
101 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
102 #if (CYGARC_SH_MOD_INTC >= 2)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
103 mov.l $CYGARC_REG_IPRC,r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
104 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
105 mov.l $CYGARC_REG_IPRD,r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
106 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
107 mov.l $CYGARC_REG_IPRE,r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
108 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
109 #if (CYGARC_SH_MOD_INTC >= 3)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
110 mov.l $CYGARC_REG_IPRF,r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
111 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
112 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
113 mov.w $nCYG_ICR1_INIT,r0
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
114 mov.l $CYGARC_REG_ICR1,r1 ! Set interrupt controller to IRQ mode
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
115 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
116 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
117 mov.w $nCYG_WTCSR,r0 ! Clear watchdog
507
0baabe6e08e0 Minor clean ups to cope with a more finicky SH assembler
bartv
parents: 210
diff changeset
118 mov #CYGARC_REG_WTCSR & 0x0FF,r1
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
119 mov.w r0,@r1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
120
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
121 # Initialize VBR if necessary
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
122 #if !defined(CYG_HAL_STARTUP_RAM) || \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
123 ( defined(CYG_HAL_STARTUP_RAM) && \
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
124 !defined(CYGSEM_HAL_USE_ROM_MONITOR))
138
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 134
diff changeset
125 mov.l $_reset,r1 ! Set VBR
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
126 ldc r1,vbr
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
127 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
128 bra 1f
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
129 nop
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
130
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
131 $nCYG_WTCSR:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
132 .word 0xa500 ! clear all CSR bits
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
133
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
134 .align 2
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
135 $nCYG_SR:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
136 .long CYG_SR
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
137 $CYGARC_REG_TSTR:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
138 .long CYGARC_REG_TSTR
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
139 $CYGARC_REG_IPRA:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
140 .long CYGARC_REG_IPRA
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
141 $CYGARC_REG_IPRB:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
142 .long CYGARC_REG_IPRB
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
143 #if (CYGARC_SH_MOD_INTC >= 2)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
144 $CYGARC_REG_IPRC:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
145 .long CYGARC_REG_IPRC
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
146 $CYGARC_REG_IPRD:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
147 .long CYGARC_REG_IPRD
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
148 $CYGARC_REG_IPRE:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
149 .long CYGARC_REG_IPRE
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
150 $CYGARC_REG_ICR1:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
151 .long CYGARC_REG_ICR1
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
152 $nCYG_ICR1_INIT:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
153 .word CYGARC_REG_ICR1_INIT
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
154 .align 2
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
155 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
156 #if (CYGARC_SH_MOD_INTC >= 3)
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
157 $CYGARC_REG_IPRF:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
158 .long CYGARC_REG_IPRF
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
159 #endif
138
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 134
diff changeset
160 SYM_PTR_REF(_reset)
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
161
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
162 1:
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
163 .endm
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
164 #define CYGPKG_HAL_SH_POST_RESET_INIT
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
165 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
166
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
167 ##-----------------------------------------------------------------------------
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
168 ## Interrupt decode macros
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
169 .macro hal_intc_decode tmp,inum
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
170 mov.l 1f,\tmp
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
171 mov.l @\tmp,\inum
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
172 mov #-5,\tmp ! divide cause by 0x20
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
173 shld \tmp,\inum
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
174 bra 2f
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
175 add #-14,\inum ! adjust so NMI becomes 0
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
176 .align 2
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
177 1:
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
178 #if (CYGARC_SH_MOD_INTC >= 2)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
179 .long CYGARC_REG_INTEVT2
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
180 #else
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
181 .long CYGARC_REG_INTEVT
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
182 #endif
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 138
diff changeset
183 2:
134
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
184 .endm
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
185
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
186 #ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
187 .macro hal_intc_translate inum,vnum
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
188 mov #0,\vnum ! Just vector zero is supported
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
189 .endm
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
190 #else
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
191 .macro hal_intc_translate inum,vnum
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
192 mov \inum,\vnum ! Vector == interrupt number
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
193 shll2 \vnum ! get from vector number to ISR index
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
194 .endm
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
195 #endif
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
196
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
197 #------------------------------------------------------------------------------
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
198 #endif // CYGONCE_HAL_VARIANT_INC
d2f49caf9e38 Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff changeset
199 # end of variant.inc