]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - arch/arm/plat-omap/dsp/hardware_dsp.h
1308e5305439adc781b1e55603e7963b53855917
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / dsp / hardware_dsp.h
1 /*
2  * linux/arch/arm/mach-omap/dsp/hardware_dsp.h
3  *
4  * Register bit definitions for DSP driver
5  *
6  * Copyright (C) 2002-2005 Nokia Corporation
7  *
8  * Written by Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  * 2005/05/30:  DSP Gateway version 3.3
25  */
26
27 #ifndef __OMAP_DSP_HARDWARE_DSP_H
28 #define __OMAP_DSP_HARDWARE_DSP_H
29
30 #ifdef CONFIG_ARCH_OMAP15XX
31 #define OMAP1510_DARAM_BASE     0xe0000000
32 #define OMAP1510_DARAM_SIZE     0x10000
33 #define OMAP1510_SARAM_BASE     0xe0010000
34 #define OMAP1510_SARAM_SIZE     0x18000
35 #endif
36 #ifdef CONFIG_ARCH_OMAP16XX
37 #define OMAP16XX_DARAM_BASE     0xe0000000
38 #define OMAP16XX_DARAM_SIZE     0x10000
39 #define OMAP16XX_SARAM_BASE     0xe0010000
40 #define OMAP16XX_SARAM_SIZE     0x18000
41 #endif
42
43 /*
44  * MAJOR device number: !! allocated arbitrary !!
45  */
46 #define OMAP_DSP_CTL_MAJOR              96
47 #define OMAP_DSP_TASK_MAJOR             97
48
49 /*
50  * Reset Control
51  */
52 #define ARM_RSTCT1_SW_RST               0x0008
53 #define ARM_RSTCT1_DSP_RST              0x0004
54 #define ARM_RSTCT1_DSP_EN               0x0002
55 #define ARM_RSTCT1_ARM_RST              0x0001
56
57 /*
58  * MPUI
59  */
60 #define MPUI_CTRL_WORDSWAP_MASK         0x00600000
61 #define MPUI_CTRL_WORDSWAP_ALL          0x00000000
62 #define MPUI_CTRL_WORDSWAP_NONAPI       0x00200000
63 #define MPUI_CTRL_WORDSWAP_API          0x00400000
64 #define MPUI_CTRL_WORDSWAP_NONE         0x00600000
65 #define MPUI_CTRL_AP_MASK               0x001c0000
66 #define MPUI_CTRL_AP_MDH                0x00000000
67 #define MPUI_CTRL_AP_MHD                0x00040000
68 #define MPUI_CTRL_AP_DMH                0x00080000
69 #define MPUI_CTRL_AP_HMD                0x000c0000
70 #define MPUI_CTRL_AP_DHM                0x00100000
71 #define MPUI_CTRL_AP_HDM                0x00140000
72 #define MPUI_CTRL_BYTESWAP_MASK         0x00030000
73 #define MPUI_CTRL_BYTESWAP_NONE         0x00000000
74 #define MPUI_CTRL_BYTESWAP_NONAPI       0x00010000
75 #define MPUI_CTRL_BYTESWAP_ALL          0x00020000
76 #define MPUI_CTRL_BYTESWAP_API          0x00030000
77 #define MPUI_CTRL_TIMEOUT_MASK          0x0000ff00
78 #define MPUI_CTRL_APIF_HNSTB_DIV_MASK   0x000000f0
79 #define MPUI_CTRL_S_NABORT_GL           0x00000008
80 #define MPUI_CTRL_S_NABORT_32BIT        0x00000004
81 #define MPUI_CTRL_EN_TIMEOUT            0x00000002
82 #define MPUI_CTRL_HF_MCUCLK             0x00000001
83 #define MPUI_DSP_BOOT_CONFIG_DIRECT     0x00000000
84 #define MPUI_DSP_BOOT_CONFIG_PSD_DIRECT 0x00000001
85 #define MPUI_DSP_BOOT_CONFIG_IDLE       0x00000002
86 #define MPUI_DSP_BOOT_CONFIG_DL16       0x00000003
87 #define MPUI_DSP_BOOT_CONFIG_DL32       0x00000004
88 #define MPUI_DSP_BOOT_CONFIG_MPUI       0x00000005
89 #define MPUI_DSP_BOOT_CONFIG_INTERNAL   0x00000006
90
91 /*
92  * DSP boot mode
93  *   direct:        0xffff00
94  *   pseudo direct: 0x080000
95  *   MPUI:          branch 0x010000
96  *   internel:      branch 0x024000
97  */
98 #define DSP_BOOT_ADR_DIRECT             0xffff00
99 #define DSP_BOOT_ADR_PSD_DIRECT         0x080000
100 #define DSP_BOOT_ADR_MPUI               0x010000
101 #define DSP_BOOT_ADR_INTERNAL           0x024000
102
103 /*
104  * TC
105  */
106 #define TC_ENDIANISM_SWAP               0x00000002
107 #define TC_ENDIANISM_SWAP_WORD          0x00000002
108 #define TC_ENDIANISM_SWAP_BYTE          0x00000000
109 #define TC_ENDIANISM_EN                 0x00000001
110
111 /*
112  * DSP MMU
113  */
114 #define DSPMMU_BASE                     (0xfffed200)
115 #define DSPMMU_PREFETCH                 (DSPMMU_BASE + 0x00)
116 #define DSPMMU_WALKING_ST               (DSPMMU_BASE + 0x04)
117 #define DSPMMU_CNTL                     (DSPMMU_BASE + 0x08)
118 #define DSPMMU_FAULT_AD_H               (DSPMMU_BASE + 0x0c)
119 #define DSPMMU_FAULT_AD_L               (DSPMMU_BASE + 0x10)
120 #define DSPMMU_FAULT_ST                 (DSPMMU_BASE + 0x14)
121 #define DSPMMU_IT_ACK                   (DSPMMU_BASE + 0x18)
122 #define DSPMMU_TTB_H                    (DSPMMU_BASE + 0x1c)
123 #define DSPMMU_TTB_L                    (DSPMMU_BASE + 0x20)
124 #define DSPMMU_LOCK                     (DSPMMU_BASE + 0x24)
125 #define DSPMMU_LD_TLB                   (DSPMMU_BASE + 0x28)
126 #define DSPMMU_CAM_H                    (DSPMMU_BASE + 0x2c)
127 #define DSPMMU_CAM_L                    (DSPMMU_BASE + 0x30)
128 #define DSPMMU_RAM_H                    (DSPMMU_BASE + 0x34)
129 #define DSPMMU_RAM_L                    (DSPMMU_BASE + 0x38)
130 #define DSPMMU_GFLUSH                   (DSPMMU_BASE + 0x3c)
131 #define DSPMMU_FLUSH_ENTRY              (DSPMMU_BASE + 0x40)
132 #define DSPMMU_READ_CAM_H               (DSPMMU_BASE + 0x44)
133 #define DSPMMU_READ_CAM_L               (DSPMMU_BASE + 0x48)
134 #define DSPMMU_READ_RAM_H               (DSPMMU_BASE + 0x4c)
135 #define DSPMMU_READ_RAM_L               (DSPMMU_BASE + 0x50)
136
137 #define DSPMMU_CNTL_BURST_16MNGT_EN     0x0020
138 #define DSPMMU_CNTL_WTL_EN              0x0004
139 #define DSPMMU_CNTL_MMU_EN              0x0002
140 #define DSPMMU_CNTL_RESET_SW            0x0001
141
142 #define DSPMMU_FAULT_AD_H_DP            0x0100
143 #define DSPMMU_FAULT_AD_H_ADR_MASK      0x00ff
144
145 #define DSPMMU_FAULT_ST_PREF            0x0008
146 #define DSPMMU_FAULT_ST_PERM            0x0004
147 #define DSPMMU_FAULT_ST_TLB_MISS        0x0002
148 #define DSPMMU_FAULT_ST_TRANS           0x0001
149
150 #define DSPMMU_IT_ACK_IT_ACK            0x0001
151
152 #define DSPMMU_LOCK_BASE_MASK           0xfc00
153 #define DSPMMU_LOCK_BASE_SHIFT          10
154 #define DSPMMU_LOCK_VICTIM_MASK         0x03f0
155 #define DSPMMU_LOCK_VICTIM_SHIFT        4
156
157 #define DSPMMU_CAM_H_VA_TAG_H_MASK              0x0003
158
159 #define DSPMMU_CAM_L_VA_TAG_L1_MASK             0xc000
160 #define DSPMMU_CAM_L_VA_TAG_L2_MASK_1MB         0x0000
161 #define DSPMMU_CAM_L_VA_TAG_L2_MASK_64KB        0x3c00
162 #define DSPMMU_CAM_L_VA_TAG_L2_MASK_4KB         0x3fc0
163 #define DSPMMU_CAM_L_VA_TAG_L2_MASK_1KB         0x3ff0
164 #define DSPMMU_CAM_L_P                          0x0008
165 #define DSPMMU_CAM_L_V                          0x0004
166 #define DSPMMU_CAM_L_SLST_MASK                  0x0003
167 #define DSPMMU_CAM_L_SLST_1MB                   0x0000
168 #define DSPMMU_CAM_L_SLST_64KB                  0x0001
169 #define DSPMMU_CAM_L_SLST_4KB                   0x0002
170 #define DSPMMU_CAM_L_SLST_1KB                   0x0003
171
172 #define DSPMMU_RAM_L_RAM_LSB_MASK       0xfc00
173 #define DSPMMU_RAM_L_AP_MASK            0x0300
174 #define DSPMMU_RAM_L_AP_NA              0x0000
175 #define DSPMMU_RAM_L_AP_RO              0x0200
176 #define DSPMMU_RAM_L_AP_FA              0x0300
177
178 #define DSPMMU_GFLUSH_GFLUSH            0x0001
179
180 #define DSPMMU_FLUSH_ENTRY_FLUSH_ENTRY  0x0001
181
182 #define DSPMMU_LD_TLB_RD                0x0002
183 #define DSPMMU_LD_TLB_LD                0x0001
184
185 /*
186  * Mailbox
187  */
188 #define MAILBOX_BASE                    (0xfffcf000)
189 #define MAILBOX_ARM2DSP1                (MAILBOX_BASE + 0x00)
190 #define MAILBOX_ARM2DSP1b               (MAILBOX_BASE + 0x04)
191 #define MAILBOX_DSP2ARM1                (MAILBOX_BASE + 0x08)
192 #define MAILBOX_DSP2ARM1b               (MAILBOX_BASE + 0x0c)
193 #define MAILBOX_DSP2ARM2                (MAILBOX_BASE + 0x10)
194 #define MAILBOX_DSP2ARM2b               (MAILBOX_BASE + 0x14)
195 #define MAILBOX_ARM2DSP1_Flag           (MAILBOX_BASE + 0x18)
196 #define MAILBOX_DSP2ARM1_Flag           (MAILBOX_BASE + 0x1c)
197 #define MAILBOX_DSP2ARM2_Flag           (MAILBOX_BASE + 0x20)
198
199 /*
200  * DSP ICR
201  */
202 #define DSPREG_ICR_RESERVED_BITS        0xffc0
203 #define DSPREG_ICR_EMIF_IDLE_DOMAIN     0x0020
204 #define DSPREG_ICR_DPLL_IDLE_DOMAIN     0x0010
205 #define DSPREG_ICR_PER_IDLE_DOMAIN      0x0008
206 #define DSPREG_ICR_CACHE_IDLE_DOMAIN    0x0004
207 #define DSPREG_ICR_DMA_IDLE_DOMAIN      0x0002
208 #define DSPREG_ICR_CPU_IDLE_DOMAIN      0x0001
209
210 #endif /* __OMAP_DSP_HARDWARE_DSP_H */