Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(491)

Side by Side Diff: chromeos/drivers/ath6kl/include/common/targaddrs.h

Issue 3579004: ath6kl: Bringing in the upstream version (Closed) Base URL: http://git.chromium.org/git/kernel.git
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 //------------------------------------------------------------------------------ 1 //------------------------------------------------------------------------------
2 // <copyright file="targaddrs.h" company="Atheros"> 2 // Copyright (c) 2010 Atheros Corporation. All rights reserved.
3 // Copyright (c) 2010 Atheros Corporation. All rights reserved.
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License version 2 as
7 // published by the Free Software Foundation;
8 //
9 // Software distributed under the License is distributed on an "AS
10 // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
11 // implied. See the License for the specific language governing
12 // rights and limitations under the License.
13 // 3 //
14 // 4 //
5 // Permission to use, copy, modify, and/or distribute this software for any
6 // purpose with or without fee is hereby granted, provided that the above
7 // copyright notice and this permission notice appear in all copies.
8 //
9 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 //
17 //
18 //
19 // Author(s): ="Atheros"
15 //------------------------------------------------------------------------------ 20 //------------------------------------------------------------------------------
16 //==============================================================================
17 // Author(s): ="Atheros"
18 //==============================================================================
19 21
20 #ifndef __TARGADDRS_H__ 22 #ifndef __TARGADDRS_H__
21 #define __TARGADDRS_H__ 23 #define __TARGADDRS_H__
22 #if defined(AR6001) 24
23 #include "AR6001/addrs.h" 25 #ifndef ATH_TARGET
26 #include "athstartpack.h"
24 #endif 27 #endif
28
25 #if defined(AR6002) 29 #if defined(AR6002)
26 #include "AR6002/addrs.h" 30 #include "AR6002/addrs.h"
27 #endif 31 #endif
28 32
29 /* 33 /*
30 * AR6K option bits, to enable/disable various features. 34 * AR6K option bits, to enable/disable various features.
31 * By default, all option bits are 0. 35 * By default, all option bits are 0.
32 * These bits can be set in LOCAL_SCRATCH register 0. 36 * These bits can be set in LOCAL_SCRATCH register 0.
33 */ 37 */
34 #define AR6K_OPTION_BMI_DISABLE 0x01 /* Disable BMI comm with Host */ 38 #define AR6K_OPTION_BMI_DISABLE 0x01 /* Disable BMI comm with Host */
(...skipping 11 matching lines...) Expand all
46 * symbol (see linker script). 50 * symbol (see linker script).
47 * 51 *
48 * Host Interest is shared between Host and Target in order to coordinate 52 * Host Interest is shared between Host and Target in order to coordinate
49 * between the two, and is intended to remain constant (with additions only 53 * between the two, and is intended to remain constant (with additions only
50 * at the end) across software releases. 54 * at the end) across software releases.
51 * 55 *
52 * All addresses are available here so that it's possible to 56 * All addresses are available here so that it's possible to
53 * write a single binary that works with all Target Types. 57 * write a single binary that works with all Target Types.
54 * May be used in assembler code as well as C. 58 * May be used in assembler code as well as C.
55 */ 59 */
56 #define AR6001_HOST_INTEREST_ADDRESS 0x80000600
57 #define AR6002_HOST_INTEREST_ADDRESS 0x00500400 60 #define AR6002_HOST_INTEREST_ADDRESS 0x00500400
58 #define AR6003_HOST_INTEREST_ADDRESS 0x00540600 61 #define AR6003_HOST_INTEREST_ADDRESS 0x00540600
59 62
60 63
61 #define HOST_INTEREST_MAX_SIZE 0x100 64 #define HOST_INTEREST_MAX_SIZE 0x100
62 65
63 #if !defined(__ASSEMBLER__) 66 #if !defined(__ASSEMBLER__)
64 struct register_dump_s; 67 struct register_dump_s;
65 struct dbglog_hdr_s; 68 struct dbglog_hdr_s;
66 69
67 /* 70 /*
68 * These are items that the Host may need to access 71 * These are items that the Host may need to access
69 * via BMI or via the Diagnostic Window. The position 72 * via BMI or via the Diagnostic Window. The position
70 * of items in this structure must remain constant 73 * of items in this structure must remain constant
71 * across firmware revisions! 74 * across firmware revisions!
72 * 75 *
73 * Types for each item must be fixed size across 76 * Types for each item must be fixed size across
74 * target and host platforms. 77 * target and host platforms.
75 * 78 *
76 * More items may be added at the end. 79 * More items may be added at the end.
77 */ 80 */
78 struct host_interest_s { 81 PREPACK struct host_interest_s {
79 /* 82 /*
80 * Pointer to application-defined area, if any. 83 * Pointer to application-defined area, if any.
81 * Set by Target application during startup. 84 * Set by Target application during startup.
82 */ 85 */
83 A_UINT32 hi_app_host_interest; /* 0x00 */ 86 A_UINT32 hi_app_host_interest; /* 0x00 */
84 87
85 /* Pointer to register dump area, valid after Target crash. */ 88 /* Pointer to register dump area, valid after Target crash. */
86 A_UINT32 hi_failure_state; /* 0x04 */ 89 A_UINT32 hi_failure_state; /* 0x04 */
87 90
88 /* Pointer to debug logging header */ 91 /* Pointer to debug logging header */
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 A_UINT32 hi_allocram_sz; /* 0x9c */ 169 A_UINT32 hi_allocram_sz; /* 0x9c */
167 A_UINT32 hi_hci_bridge_flags; /* 0xa0 */ 170 A_UINT32 hi_hci_bridge_flags; /* 0xa0 */
168 A_UINT32 hi_hci_uart_support_pins; /* 0xa4 */ 171 A_UINT32 hi_hci_uart_support_pins; /* 0xa4 */
169 /* NOTE: byte [0] = RESET pin (bit 7 is polarity), bytes[1]..bytes[3] ar e for future use */ 172 /* NOTE: byte [0] = RESET pin (bit 7 is polarity), bytes[1]..bytes[3] ar e for future use */
170 A_UINT32 hi_hci_uart_pwr_mgmt_params; /* 0xa8 */ 173 A_UINT32 hi_hci_uart_pwr_mgmt_params; /* 0xa8 */
171 /* 0xa8 - [0]: 1 = enable, 0 = disable 174 /* 0xa8 - [0]: 1 = enable, 0 = disable
172 * [1]: 0 = UART FC active low, 1 = UART FC active high 175 * [1]: 0 = UART FC active low, 1 = UART FC active high
173 * 0xa9 - [7:0]: wakeup timeout in ms 176 * 0xa9 - [7:0]: wakeup timeout in ms
174 * 0xaa, 0xab - [15:0]: idle timeout in ms 177 * 0xaa, 0xab - [15:0]: idle timeout in ms
175 */ 178 */
176 }; 179 /* Pointer to extended board Data */
180 A_UINT32 hi_board_ext_data; /* 0xac */
181 A_UINT32 hi_board_ext_data_initialized; /* 0xb0 */
182 } POSTPACK;
177 183
178 /* Bits defined in hi_option_flag */ 184 /* Bits defined in hi_option_flag */
179 #define HI_OPTION_TIMER_WAR 0x01 /* Enable timer workaround */ 185 #define HI_OPTION_TIMER_WAR 0x01 /* Enable timer workaround */
180 #define HI_OPTION_BMI_CRED_LIMIT 0x02 /* Limit BMI command credits */ 186 #define HI_OPTION_BMI_CRED_LIMIT 0x02 /* Limit BMI command credits */
181 #define HI_OPTION_RELAY_DOT11_HDR 0x04 /* Relay Dot11 hdr to/from host */ 187 #define HI_OPTION_RELAY_DOT11_HDR 0x04 /* Relay Dot11 hdr to/from host */
182 #define HI_OPTION_FW_MODE_LSB 0x08 /* low bit of MODE (see below) */ 188 #define HI_OPTION_FW_MODE_LSB 0x08 /* low bit of MODE (see below) */
183 #define HI_OPTION_FW_MODE_MSB 0x10 /* high bit of MODE (see below) */ 189 #define HI_OPTION_FW_MODE_MSB 0x10 /* high bit of MODE (see below) */
184 #define HI_OPTION_ENABLE_PROFILE 0x20 /* Enable CPU profiling */ 190 #define HI_OPTION_ENABLE_PROFILE 0x20 /* Enable CPU profiling */
185 #define HI_OPTION_DISABLE_DBGLOG 0x40 /* Disable debug logging */ 191 #define HI_OPTION_DISABLE_DBGLOG 0x40 /* Disable debug logging */
186 #define HI_OPTION_SKIP_ERA_TRACKING 0x80 /* Skip Era Tracking */ 192 #define HI_OPTION_SKIP_ERA_TRACKING 0x80 /* Skip Era Tracking */
187 #define HI_OPTION_PAPRD_DISABLE 0x100 /* Disable PAPRD (debug) */ 193 #define HI_OPTION_PAPRD_DISABLE 0x100 /* Disable PAPRD (debug) */
188 194
189 /* 2 bits of hi_option_flag are used to represent 3 modes */ 195 /* 2 bits of hi_option_flag are used to represent 3 modes */
190 #define HI_OPTION_FW_MODE_IBSS 0x0 /* IBSS Mode */ 196 #define HI_OPTION_FW_MODE_IBSS 0x0 /* IBSS Mode */
191 #define HI_OPTION_FW_MODE_BSS_STA 0x1 /* STA Mode */ 197 #define HI_OPTION_FW_MODE_BSS_STA 0x1 /* STA Mode */
192 #define HI_OPTION_FW_MODE_AP 0x2 /* AP Mode */ 198 #define HI_OPTION_FW_MODE_AP 0x2 /* AP Mode */
193 199
194 /* Fw Mode Mask */ 200 /* Fw Mode Mask */
195 #define HI_OPTION_FW_MODE_MASK 0x3 201 #define HI_OPTION_FW_MODE_MASK 0x3
196 #define HI_OPTION_FW_MODE_SHIFT 0x3 202 #define HI_OPTION_FW_MODE_SHIFT 0x3
197 203
198 /* 204 /*
199 * Intended for use by Host software, this macro returns the Target RAM 205 * Intended for use by Host software, this macro returns the Target RAM
200 * address of any item in the host_interest structure. 206 * address of any item in the host_interest structure.
201 * Example: target_addr = AR6001_HOST_INTEREST_ITEM_ADDRESS(hi_board_data); 207 * Example: target_addr = AR6002_HOST_INTEREST_ITEM_ADDRESS(hi_board_data);
202 */ 208 */
203 #define AR6001_HOST_INTEREST_ITEM_ADDRESS(item) \
204 ((A_UINT32)&((((struct host_interest_s *)(AR6001_HOST_INTEREST_ADDRESS))->it em)))
205
206 #define AR6002_HOST_INTEREST_ITEM_ADDRESS(item) \ 209 #define AR6002_HOST_INTEREST_ITEM_ADDRESS(item) \
207 ((A_UINT32)&((((struct host_interest_s *)(AR6002_HOST_INTEREST_ADDRESS))->it em))) 210 (A_UINT32)((unsigned long)&((((struct host_interest_s *)(AR6002_HOST_INTERES T_ADDRESS))->item)))
208 211
209 #define AR6003_HOST_INTEREST_ITEM_ADDRESS(item) \ 212 #define AR6003_HOST_INTEREST_ITEM_ADDRESS(item) \
210 ((A_UINT32)&((((struct host_interest_s *)(AR6003_HOST_INTEREST_ADDRESS))->it em))) 213 (A_UINT32)((unsigned long)&((((struct host_interest_s *)(AR6003_HOST_INTERES T_ADDRESS))->item)))
211 214
212 #define HOST_INTEREST_DBGLOG_IS_ENABLED() \ 215 #define HOST_INTEREST_DBGLOG_IS_ENABLED() \
213 (!(HOST_INTEREST->hi_option_flag & HI_OPTION_DISABLE_DBGLOG)) 216 (!(HOST_INTEREST->hi_option_flag & HI_OPTION_DISABLE_DBGLOG))
214 217
215 #define HOST_INTEREST_PROFILE_IS_ENABLED() \ 218 #define HOST_INTEREST_PROFILE_IS_ENABLED() \
216 (HOST_INTEREST->hi_option_flag & HI_OPTION_ENABLE_PROFILE) 219 (HOST_INTEREST->hi_option_flag & HI_OPTION_ENABLE_PROFILE)
217 220
218 /* Convert a Target virtual address into a Target physical address */ 221 /* Convert a Target virtual address into a Target physical address */
219 #define AR6001_VTOP(vaddr) ((vaddr) & 0x0fffffff)
220 #define AR6002_VTOP(vaddr) ((vaddr) & 0x001fffff) 222 #define AR6002_VTOP(vaddr) ((vaddr) & 0x001fffff)
221 #define AR6003_VTOP(vaddr) ((vaddr) & 0x001fffff) 223 #define AR6003_VTOP(vaddr) ((vaddr) & 0x001fffff)
222 #define TARG_VTOP(TargetType, vaddr) \ 224 #define TARG_VTOP(TargetType, vaddr) \
223 (((TargetType) == TARGET_TYPE_AR6001) ? AR6001_VTOP(vaddr) : \ 225 (((TargetType) == TARGET_TYPE_AR6002) ? AR6002_VTOP(vaddr) : AR6003_VTOP (vaddr))
224 (((TargetType) == TARGET_TYPE_AR6002) ? AR6002_VTOP(vaddr) : AR6003_VTOP (vaddr)))
225 226
226 /* override REV2 ROM's app start address */ 227 /* override REV2 ROM's app start address */
227 #define AR6002_REV2_APP_START_OVERRIDE 0x911A00 228 #define AR6002_REV2_APP_START_OVERRIDE 0x911A00
228 #define AR6003_REV1_APP_START_OVERRIDE 0x944c00 229 #define AR6003_REV1_APP_START_OVERRIDE 0x944c00
229 #define AR6003_REV1_OTP_DATA_ADDRESS 0x542800 230 #define AR6003_REV1_OTP_DATA_ADDRESS 0x542800
230 #define AR6003_REV2_APP_START_OVERRIDE 0x945000 231 #define AR6003_REV2_APP_START_OVERRIDE 0x945000
231 #define AR6003_REV2_OTP_DATA_ADDRESS 0x543800 232 #define AR6003_REV2_OTP_DATA_ADDRESS 0x543800
233 #define AR6003_BOARD_EXT_DATA_ADDRESS 0x57E600
232 234
233 235
234 /* # of A_UINT32 entries in targregs, used by DIAG_FETCH_TARG_REGS */ 236 /* # of A_UINT32 entries in targregs, used by DIAG_FETCH_TARG_REGS */
235 #define AR6003_FETCH_TARG_REGS_COUNT 64 237 #define AR6003_FETCH_TARG_REGS_COUNT 64
236 238
237 #endif /* !__ASSEMBLER__ */ 239 #endif /* !__ASSEMBLER__ */
238 240
241 #ifndef ATH_TARGET
242 #include "athendpack.h"
243 #endif
244
239 #endif /* __TARGADDRS_H__ */ 245 #endif /* __TARGADDRS_H__ */
OLDNEW
« no previous file with comments | « chromeos/drivers/ath6kl/include/common/roaming.h ('k') | chromeos/drivers/ath6kl/include/common/testcmd.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698