2 * linux/arch/arm/mach-omap/dsp/hardware_dsp.h
4 * Register bit definitions for DSP driver
6 * Copyright (C) 2002-2005 Nokia Corporation
8 * Written by Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
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.
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.
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
24 * 2005/05/30: DSP Gateway version 3.3
27 #ifndef __OMAP_DSP_HARDWARE_DSP_H
28 #define __OMAP_DSP_HARDWARE_DSP_H
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
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
44 * MAJOR device number: !! allocated arbitrary !!
46 #define OMAP_DSP_CTL_MAJOR 96
47 #define OMAP_DSP_TASK_MAJOR 97
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
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
94 * pseudo direct: 0x080000
95 * MPUI: branch 0x010000
96 * internel: branch 0x024000
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
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
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)
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
142 #define DSPMMU_FAULT_AD_H_DP 0x0100
143 #define DSPMMU_FAULT_AD_H_ADR_MASK 0x00ff
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
150 #define DSPMMU_IT_ACK_IT_ACK 0x0001
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
157 #define DSPMMU_CAM_H_VA_TAG_H_MASK 0x0003
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
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
178 #define DSPMMU_GFLUSH_GFLUSH 0x0001
180 #define DSPMMU_FLUSH_ENTRY_FLUSH_ENTRY 0x0001
182 #define DSPMMU_LD_TLB_RD 0x0002
183 #define DSPMMU_LD_TLB_LD 0x0001
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)
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
210 #endif /* __OMAP_DSP_HARDWARE_DSP_H */