Commit 785d7fab3eb0c39bcd8086055e7bd144c48158e4

Authored by Dirk Behme
Committed by Shawn Guo
1 parent ef44180680

ARM: imx6: Add UART2 for low-level debug

To be able to enable early debugging on boards using the UART2 for the
console, add the option for early debugging on UART2.

Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

Showing 4 changed files with 18 additions and 0 deletions Inline Diff

arch/arm/Kconfig.debug
1 menu "Kernel hacking" 1 menu "Kernel hacking"
2 2
3 source "lib/Kconfig.debug" 3 source "lib/Kconfig.debug"
4 4
5 config STRICT_DEVMEM 5 config STRICT_DEVMEM
6 bool "Filter access to /dev/mem" 6 bool "Filter access to /dev/mem"
7 depends on MMU 7 depends on MMU
8 ---help--- 8 ---help---
9 If this option is disabled, you allow userspace (root) access to all 9 If this option is disabled, you allow userspace (root) access to all
10 of memory, including kernel and userspace memory. Accidental 10 of memory, including kernel and userspace memory. Accidental
11 access to this is obviously disastrous, but specific access can 11 access to this is obviously disastrous, but specific access can
12 be used by people debugging the kernel. 12 be used by people debugging the kernel.
13 13
14 If this option is switched on, the /dev/mem file only allows 14 If this option is switched on, the /dev/mem file only allows
15 userspace access to memory mapped peripherals. 15 userspace access to memory mapped peripherals.
16 16
17 If in doubt, say Y. 17 If in doubt, say Y.
18 18
19 # RMK wants arm kernels compiled with frame pointers or stack unwinding. 19 # RMK wants arm kernels compiled with frame pointers or stack unwinding.
20 # If you know what you are doing and are willing to live without stack 20 # If you know what you are doing and are willing to live without stack
21 # traces, you can get a slightly smaller kernel by setting this option to 21 # traces, you can get a slightly smaller kernel by setting this option to
22 # n, but then RMK will have to kill you ;). 22 # n, but then RMK will have to kill you ;).
23 config FRAME_POINTER 23 config FRAME_POINTER
24 bool 24 bool
25 depends on !THUMB2_KERNEL 25 depends on !THUMB2_KERNEL
26 default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER 26 default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER
27 help 27 help
28 If you say N here, the resulting kernel will be slightly smaller and 28 If you say N here, the resulting kernel will be slightly smaller and
29 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled, 29 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
30 when a problem occurs with the kernel, the information that is 30 when a problem occurs with the kernel, the information that is
31 reported is severely limited. 31 reported is severely limited.
32 32
33 config ARM_UNWIND 33 config ARM_UNWIND
34 bool "Enable stack unwinding support (EXPERIMENTAL)" 34 bool "Enable stack unwinding support (EXPERIMENTAL)"
35 depends on AEABI && EXPERIMENTAL 35 depends on AEABI && EXPERIMENTAL
36 default y 36 default y
37 help 37 help
38 This option enables stack unwinding support in the kernel 38 This option enables stack unwinding support in the kernel
39 using the information automatically generated by the 39 using the information automatically generated by the
40 compiler. The resulting kernel image is slightly bigger but 40 compiler. The resulting kernel image is slightly bigger but
41 the performance is not affected. Currently, this feature 41 the performance is not affected. Currently, this feature
42 only works with EABI compilers. If unsure say Y. 42 only works with EABI compilers. If unsure say Y.
43 43
44 config OLD_MCOUNT 44 config OLD_MCOUNT
45 bool 45 bool
46 depends on FUNCTION_TRACER && FRAME_POINTER 46 depends on FUNCTION_TRACER && FRAME_POINTER
47 default y 47 default y
48 48
49 config DEBUG_USER 49 config DEBUG_USER
50 bool "Verbose user fault messages" 50 bool "Verbose user fault messages"
51 help 51 help
52 When a user program crashes due to an exception, the kernel can 52 When a user program crashes due to an exception, the kernel can
53 print a brief message explaining what the problem was. This is 53 print a brief message explaining what the problem was. This is
54 sometimes helpful for debugging but serves no purpose on a 54 sometimes helpful for debugging but serves no purpose on a
55 production system. Most people should say N here. 55 production system. Most people should say N here.
56 56
57 In addition, you need to pass user_debug=N on the kernel command 57 In addition, you need to pass user_debug=N on the kernel command
58 line to enable this feature. N consists of the sum of: 58 line to enable this feature. N consists of the sum of:
59 59
60 1 - undefined instruction events 60 1 - undefined instruction events
61 2 - system calls 61 2 - system calls
62 4 - invalid data aborts 62 4 - invalid data aborts
63 8 - SIGSEGV faults 63 8 - SIGSEGV faults
64 16 - SIGBUS faults 64 16 - SIGBUS faults
65 65
66 # These options are only for real kernel hackers who want to get their hands dirty. 66 # These options are only for real kernel hackers who want to get their hands dirty.
67 config DEBUG_LL 67 config DEBUG_LL
68 bool "Kernel low-level debugging functions (read help!)" 68 bool "Kernel low-level debugging functions (read help!)"
69 depends on DEBUG_KERNEL 69 depends on DEBUG_KERNEL
70 help 70 help
71 Say Y here to include definitions of printascii, printch, printhex 71 Say Y here to include definitions of printascii, printch, printhex
72 in the kernel. This is helpful if you are debugging code that 72 in the kernel. This is helpful if you are debugging code that
73 executes before the console is initialized. 73 executes before the console is initialized.
74 74
75 Note that selecting this option will limit the kernel to a single 75 Note that selecting this option will limit the kernel to a single
76 UART definition, as specified below. Attempting to boot the kernel 76 UART definition, as specified below. Attempting to boot the kernel
77 image on a different platform *will not work*, so this option should 77 image on a different platform *will not work*, so this option should
78 not be enabled for kernels that are intended to be portable. 78 not be enabled for kernels that are intended to be portable.
79 79
80 choice 80 choice
81 prompt "Kernel low-level debugging port" 81 prompt "Kernel low-level debugging port"
82 depends on DEBUG_LL 82 depends on DEBUG_LL
83 83
84 config AT91_DEBUG_LL_DBGU0 84 config AT91_DEBUG_LL_DBGU0
85 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" 85 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"
86 depends on HAVE_AT91_DBGU0 86 depends on HAVE_AT91_DBGU0
87 87
88 config AT91_DEBUG_LL_DBGU1 88 config AT91_DEBUG_LL_DBGU1
89 bool "Kernel low-level debugging on 9263 and 9g45" 89 bool "Kernel low-level debugging on 9263 and 9g45"
90 depends on HAVE_AT91_DBGU1 90 depends on HAVE_AT91_DBGU1
91 91
92 config DEBUG_CLPS711X_UART1 92 config DEBUG_CLPS711X_UART1
93 bool "Kernel low-level debugging messages via UART1" 93 bool "Kernel low-level debugging messages via UART1"
94 depends on ARCH_CLPS711X 94 depends on ARCH_CLPS711X
95 help 95 help
96 Say Y here if you want the debug print routines to direct 96 Say Y here if you want the debug print routines to direct
97 their output to the first serial port on these devices. 97 their output to the first serial port on these devices.
98 98
99 config DEBUG_CLPS711X_UART2 99 config DEBUG_CLPS711X_UART2
100 bool "Kernel low-level debugging messages via UART2" 100 bool "Kernel low-level debugging messages via UART2"
101 depends on ARCH_CLPS711X 101 depends on ARCH_CLPS711X
102 help 102 help
103 Say Y here if you want the debug print routines to direct 103 Say Y here if you want the debug print routines to direct
104 their output to the second serial port on these devices. 104 their output to the second serial port on these devices.
105 105
106 config DEBUG_DC21285_PORT 106 config DEBUG_DC21285_PORT
107 bool "Kernel low-level debugging messages via footbridge serial port" 107 bool "Kernel low-level debugging messages via footbridge serial port"
108 depends on FOOTBRIDGE 108 depends on FOOTBRIDGE
109 help 109 help
110 Say Y here if you want the debug print routines to direct 110 Say Y here if you want the debug print routines to direct
111 their output to the serial port in the DC21285 (Footbridge). 111 their output to the serial port in the DC21285 (Footbridge).
112 112
113 config DEBUG_FOOTBRIDGE_COM1 113 config DEBUG_FOOTBRIDGE_COM1
114 bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" 114 bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
115 depends on FOOTBRIDGE 115 depends on FOOTBRIDGE
116 help 116 help
117 Say Y here if you want the debug print routines to direct 117 Say Y here if you want the debug print routines to direct
118 their output to the 8250 at PCI COM1. 118 their output to the 8250 at PCI COM1.
119 119
120 config DEBUG_HIGHBANK_UART 120 config DEBUG_HIGHBANK_UART
121 bool "Kernel low-level debugging messages via Highbank UART" 121 bool "Kernel low-level debugging messages via Highbank UART"
122 depends on ARCH_HIGHBANK 122 depends on ARCH_HIGHBANK
123 help 123 help
124 Say Y here if you want the debug print routines to direct 124 Say Y here if you want the debug print routines to direct
125 their output to the UART on Highbank based devices. 125 their output to the UART on Highbank based devices.
126 126
127 config DEBUG_IMX1_UART 127 config DEBUG_IMX1_UART
128 bool "i.MX1 Debug UART" 128 bool "i.MX1 Debug UART"
129 depends on SOC_IMX1 129 depends on SOC_IMX1
130 help 130 help
131 Say Y here if you want kernel low-level debugging support 131 Say Y here if you want kernel low-level debugging support
132 on i.MX1. 132 on i.MX1.
133 133
134 config DEBUG_IMX23_UART 134 config DEBUG_IMX23_UART
135 bool "i.MX23 Debug UART" 135 bool "i.MX23 Debug UART"
136 depends on SOC_IMX23 136 depends on SOC_IMX23
137 help 137 help
138 Say Y here if you want kernel low-level debugging support 138 Say Y here if you want kernel low-level debugging support
139 on i.MX23. 139 on i.MX23.
140 140
141 config DEBUG_IMX25_UART 141 config DEBUG_IMX25_UART
142 bool "i.MX25 Debug UART" 142 bool "i.MX25 Debug UART"
143 depends on SOC_IMX25 143 depends on SOC_IMX25
144 help 144 help
145 Say Y here if you want kernel low-level debugging support 145 Say Y here if you want kernel low-level debugging support
146 on i.MX25. 146 on i.MX25.
147 147
148 config DEBUG_IMX21_IMX27_UART 148 config DEBUG_IMX21_IMX27_UART
149 bool "i.MX21 and i.MX27 Debug UART" 149 bool "i.MX21 and i.MX27 Debug UART"
150 depends on SOC_IMX21 || SOC_IMX27 150 depends on SOC_IMX21 || SOC_IMX27
151 help 151 help
152 Say Y here if you want kernel low-level debugging support 152 Say Y here if you want kernel low-level debugging support
153 on i.MX21 or i.MX27. 153 on i.MX21 or i.MX27.
154 154
155 config DEBUG_IMX28_UART 155 config DEBUG_IMX28_UART
156 bool "i.MX28 Debug UART" 156 bool "i.MX28 Debug UART"
157 depends on SOC_IMX28 157 depends on SOC_IMX28
158 help 158 help
159 Say Y here if you want kernel low-level debugging support 159 Say Y here if you want kernel low-level debugging support
160 on i.MX28. 160 on i.MX28.
161 161
162 config DEBUG_IMX31_IMX35_UART 162 config DEBUG_IMX31_IMX35_UART
163 bool "i.MX31 and i.MX35 Debug UART" 163 bool "i.MX31 and i.MX35 Debug UART"
164 depends on SOC_IMX31 || SOC_IMX35 164 depends on SOC_IMX31 || SOC_IMX35
165 help 165 help
166 Say Y here if you want kernel low-level debugging support 166 Say Y here if you want kernel low-level debugging support
167 on i.MX31 or i.MX35. 167 on i.MX31 or i.MX35.
168 168
169 config DEBUG_IMX51_UART 169 config DEBUG_IMX51_UART
170 bool "i.MX51 Debug UART" 170 bool "i.MX51 Debug UART"
171 depends on SOC_IMX51 171 depends on SOC_IMX51
172 help 172 help
173 Say Y here if you want kernel low-level debugging support 173 Say Y here if you want kernel low-level debugging support
174 on i.MX51. 174 on i.MX51.
175 175
176 config DEBUG_IMX50_IMX53_UART 176 config DEBUG_IMX50_IMX53_UART
177 bool "i.MX50 and i.MX53 Debug UART" 177 bool "i.MX50 and i.MX53 Debug UART"
178 depends on SOC_IMX50 || SOC_IMX53 178 depends on SOC_IMX50 || SOC_IMX53
179 help 179 help
180 Say Y here if you want kernel low-level debugging support 180 Say Y here if you want kernel low-level debugging support
181 on i.MX50 or i.MX53. 181 on i.MX50 or i.MX53.
182 182
183 config DEBUG_IMX6Q_UART2
184 bool "i.MX6Q Debug UART2"
185 depends on SOC_IMX6Q
186 help
187 Say Y here if you want kernel low-level debugging support
188 on i.MX6Q UART2. This is correct for e.g. the SabreLite
189 board.
190
183 config DEBUG_IMX6Q_UART4 191 config DEBUG_IMX6Q_UART4
184 bool "i.MX6Q Debug UART4" 192 bool "i.MX6Q Debug UART4"
185 depends on SOC_IMX6Q 193 depends on SOC_IMX6Q
186 help 194 help
187 Say Y here if you want kernel low-level debugging support 195 Say Y here if you want kernel low-level debugging support
188 on i.MX6Q UART4. 196 on i.MX6Q UART4.
189 197
190 config DEBUG_MSM_UART1 198 config DEBUG_MSM_UART1
191 bool "Kernel low-level debugging messages via MSM UART1" 199 bool "Kernel low-level debugging messages via MSM UART1"
192 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 200 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
193 help 201 help
194 Say Y here if you want the debug print routines to direct 202 Say Y here if you want the debug print routines to direct
195 their output to the first serial port on MSM devices. 203 their output to the first serial port on MSM devices.
196 204
197 config DEBUG_MSM_UART2 205 config DEBUG_MSM_UART2
198 bool "Kernel low-level debugging messages via MSM UART2" 206 bool "Kernel low-level debugging messages via MSM UART2"
199 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 207 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
200 help 208 help
201 Say Y here if you want the debug print routines to direct 209 Say Y here if you want the debug print routines to direct
202 their output to the second serial port on MSM devices. 210 their output to the second serial port on MSM devices.
203 211
204 config DEBUG_MSM_UART3 212 config DEBUG_MSM_UART3
205 bool "Kernel low-level debugging messages via MSM UART3" 213 bool "Kernel low-level debugging messages via MSM UART3"
206 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 214 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
207 help 215 help
208 Say Y here if you want the debug print routines to direct 216 Say Y here if you want the debug print routines to direct
209 their output to the third serial port on MSM devices. 217 their output to the third serial port on MSM devices.
210 218
211 config DEBUG_MSM8660_UART 219 config DEBUG_MSM8660_UART
212 bool "Kernel low-level debugging messages via MSM 8660 UART" 220 bool "Kernel low-level debugging messages via MSM 8660 UART"
213 depends on ARCH_MSM8X60 221 depends on ARCH_MSM8X60
214 select MSM_HAS_DEBUG_UART_HS 222 select MSM_HAS_DEBUG_UART_HS
215 help 223 help
216 Say Y here if you want the debug print routines to direct 224 Say Y here if you want the debug print routines to direct
217 their output to the serial port on MSM 8660 devices. 225 their output to the serial port on MSM 8660 devices.
218 226
219 config DEBUG_MSM8960_UART 227 config DEBUG_MSM8960_UART
220 bool "Kernel low-level debugging messages via MSM 8960 UART" 228 bool "Kernel low-level debugging messages via MSM 8960 UART"
221 depends on ARCH_MSM8960 229 depends on ARCH_MSM8960
222 select MSM_HAS_DEBUG_UART_HS 230 select MSM_HAS_DEBUG_UART_HS
223 help 231 help
224 Say Y here if you want the debug print routines to direct 232 Say Y here if you want the debug print routines to direct
225 their output to the serial port on MSM 8960 devices. 233 their output to the serial port on MSM 8960 devices.
226 234
227 config DEBUG_REALVIEW_STD_PORT 235 config DEBUG_REALVIEW_STD_PORT
228 bool "RealView Default UART" 236 bool "RealView Default UART"
229 depends on ARCH_REALVIEW 237 depends on ARCH_REALVIEW
230 help 238 help
231 Say Y here if you want the debug print routines to direct 239 Say Y here if you want the debug print routines to direct
232 their output to the serial port on RealView EB, PB11MP, PBA8 240 their output to the serial port on RealView EB, PB11MP, PBA8
233 and PBX platforms. 241 and PBX platforms.
234 242
235 config DEBUG_REALVIEW_PB1176_PORT 243 config DEBUG_REALVIEW_PB1176_PORT
236 bool "RealView PB1176 UART" 244 bool "RealView PB1176 UART"
237 depends on MACH_REALVIEW_PB1176 245 depends on MACH_REALVIEW_PB1176
238 help 246 help
239 Say Y here if you want the debug print routines to direct 247 Say Y here if you want the debug print routines to direct
240 their output to the standard serial port on the RealView 248 their output to the standard serial port on the RealView
241 PB1176 platform. 249 PB1176 platform.
242 250
243 config DEBUG_S3C_UART0 251 config DEBUG_S3C_UART0
244 depends on PLAT_SAMSUNG 252 depends on PLAT_SAMSUNG
245 bool "Use S3C UART 0 for low-level debug" 253 bool "Use S3C UART 0 for low-level debug"
246 help 254 help
247 Say Y here if you want the debug print routines to direct 255 Say Y here if you want the debug print routines to direct
248 their output to UART 0. The port must have been initialised 256 their output to UART 0. The port must have been initialised
249 by the boot-loader before use. 257 by the boot-loader before use.
250 258
251 The uncompressor code port configuration is now handled 259 The uncompressor code port configuration is now handled
252 by CONFIG_S3C_LOWLEVEL_UART_PORT. 260 by CONFIG_S3C_LOWLEVEL_UART_PORT.
253 261
254 config DEBUG_S3C_UART1 262 config DEBUG_S3C_UART1
255 depends on PLAT_SAMSUNG 263 depends on PLAT_SAMSUNG
256 bool "Use S3C UART 1 for low-level debug" 264 bool "Use S3C UART 1 for low-level debug"
257 help 265 help
258 Say Y here if you want the debug print routines to direct 266 Say Y here if you want the debug print routines to direct
259 their output to UART 1. The port must have been initialised 267 their output to UART 1. The port must have been initialised
260 by the boot-loader before use. 268 by the boot-loader before use.
261 269
262 The uncompressor code port configuration is now handled 270 The uncompressor code port configuration is now handled
263 by CONFIG_S3C_LOWLEVEL_UART_PORT. 271 by CONFIG_S3C_LOWLEVEL_UART_PORT.
264 272
265 config DEBUG_S3C_UART2 273 config DEBUG_S3C_UART2
266 depends on PLAT_SAMSUNG 274 depends on PLAT_SAMSUNG
267 bool "Use S3C UART 2 for low-level debug" 275 bool "Use S3C UART 2 for low-level debug"
268 help 276 help
269 Say Y here if you want the debug print routines to direct 277 Say Y here if you want the debug print routines to direct
270 their output to UART 2. The port must have been initialised 278 their output to UART 2. The port must have been initialised
271 by the boot-loader before use. 279 by the boot-loader before use.
272 280
273 The uncompressor code port configuration is now handled 281 The uncompressor code port configuration is now handled
274 by CONFIG_S3C_LOWLEVEL_UART_PORT. 282 by CONFIG_S3C_LOWLEVEL_UART_PORT.
275 283
276 config DEBUG_LL_UART_NONE 284 config DEBUG_LL_UART_NONE
277 bool "No low-level debugging UART" 285 bool "No low-level debugging UART"
278 help 286 help
279 Say Y here if your platform doesn't provide a UART option 287 Say Y here if your platform doesn't provide a UART option
280 below. This relies on your platform choosing the right UART 288 below. This relies on your platform choosing the right UART
281 definition internally in order for low-level debugging to 289 definition internally in order for low-level debugging to
282 work. 290 work.
283 291
284 config DEBUG_ICEDCC 292 config DEBUG_ICEDCC
285 bool "Kernel low-level debugging via EmbeddedICE DCC channel" 293 bool "Kernel low-level debugging via EmbeddedICE DCC channel"
286 help 294 help
287 Say Y here if you want the debug print routines to direct 295 Say Y here if you want the debug print routines to direct
288 their output to the EmbeddedICE macrocell's DCC channel using 296 their output to the EmbeddedICE macrocell's DCC channel using
289 co-processor 14. This is known to work on the ARM9 style ICE 297 co-processor 14. This is known to work on the ARM9 style ICE
290 channel and on the XScale with the PEEDI. 298 channel and on the XScale with the PEEDI.
291 299
292 Note that the system will appear to hang during boot if there 300 Note that the system will appear to hang during boot if there
293 is nothing connected to read from the DCC. 301 is nothing connected to read from the DCC.
294 302
295 config DEBUG_SEMIHOSTING 303 config DEBUG_SEMIHOSTING
296 bool "Kernel low-level debug output via semihosting I" 304 bool "Kernel low-level debug output via semihosting I"
297 help 305 help
298 Semihosting enables code running on an ARM target to use 306 Semihosting enables code running on an ARM target to use
299 the I/O facilities on a host debugger/emulator through a 307 the I/O facilities on a host debugger/emulator through a
300 simple SVC calls. The host debugger or emulator must have 308 simple SVC calls. The host debugger or emulator must have
301 semihosting enabled for the special svc call to be trapped 309 semihosting enabled for the special svc call to be trapped
302 otherwise the kernel will crash. 310 otherwise the kernel will crash.
303 311
304 This is known to work with OpenOCD, as wellas 312 This is known to work with OpenOCD, as wellas
305 ARM's Fast Models, or any other controlling environment 313 ARM's Fast Models, or any other controlling environment
306 that implements semihosting. 314 that implements semihosting.
307 315
308 For more details about semihosting, please see 316 For more details about semihosting, please see
309 chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd. 317 chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
310 318
311 endchoice 319 endchoice
312 320
313 config EARLY_PRINTK 321 config EARLY_PRINTK
314 bool "Early printk" 322 bool "Early printk"
315 depends on DEBUG_LL 323 depends on DEBUG_LL
316 help 324 help
317 Say Y here if you want to have an early console using the 325 Say Y here if you want to have an early console using the
318 kernel low-level debugging functions. Add earlyprintk to your 326 kernel low-level debugging functions. Add earlyprintk to your
319 kernel parameters to enable this console. 327 kernel parameters to enable this console.
320 328
321 config OC_ETM 329 config OC_ETM
322 bool "On-chip ETM and ETB" 330 bool "On-chip ETM and ETB"
323 depends on ARM_AMBA 331 depends on ARM_AMBA
324 help 332 help
325 Enables the on-chip embedded trace macrocell and embedded trace 333 Enables the on-chip embedded trace macrocell and embedded trace
326 buffer driver that will allow you to collect traces of the 334 buffer driver that will allow you to collect traces of the
327 kernel code. 335 kernel code.
328 336
329 config ARM_KPROBES_TEST 337 config ARM_KPROBES_TEST
330 tristate "Kprobes test module" 338 tristate "Kprobes test module"
331 depends on KPROBES && MODULES 339 depends on KPROBES && MODULES
332 help 340 help
333 Perform tests of kprobes API and instruction set simulation. 341 Perform tests of kprobes API and instruction set simulation.
334 342
335 endmenu 343 endmenu
336 344
arch/arm/mach-imx/lluart.c
1 /* 1 /*
2 * Copyright 2011 Freescale Semiconductor, Inc. 2 * Copyright 2011 Freescale Semiconductor, Inc.
3 * Copyright 2011 Linaro Ltd. 3 * Copyright 2011 Linaro Ltd.
4 * 4 *
5 * The code contained herein is licensed under the GNU General Public 5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License 6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations: 7 * Version 2 or later at the following locations:
8 * 8 *
9 * http://www.opensource.org/licenses/gpl-license.html 9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html 10 * http://www.gnu.org/copyleft/gpl.html
11 */ 11 */
12 12
13 #include <linux/init.h> 13 #include <linux/init.h>
14 #include <asm/page.h> 14 #include <asm/page.h>
15 #include <asm/sizes.h> 15 #include <asm/sizes.h>
16 #include <asm/mach/map.h> 16 #include <asm/mach/map.h>
17 #include <mach/hardware.h> 17 #include <mach/hardware.h>
18 18
19 static struct map_desc imx_lluart_desc = { 19 static struct map_desc imx_lluart_desc = {
20 #ifdef CONFIG_DEBUG_IMX6Q_UART2
21 .virtual = MX6Q_IO_P2V(MX6Q_UART2_BASE_ADDR),
22 .pfn = __phys_to_pfn(MX6Q_UART2_BASE_ADDR),
23 .length = MX6Q_UART2_SIZE,
24 .type = MT_DEVICE,
25 #endif
20 #ifdef CONFIG_DEBUG_IMX6Q_UART4 26 #ifdef CONFIG_DEBUG_IMX6Q_UART4
21 .virtual = MX6Q_IO_P2V(MX6Q_UART4_BASE_ADDR), 27 .virtual = MX6Q_IO_P2V(MX6Q_UART4_BASE_ADDR),
22 .pfn = __phys_to_pfn(MX6Q_UART4_BASE_ADDR), 28 .pfn = __phys_to_pfn(MX6Q_UART4_BASE_ADDR),
23 .length = MX6Q_UART4_SIZE, 29 .length = MX6Q_UART4_SIZE,
24 .type = MT_DEVICE, 30 .type = MT_DEVICE,
25 #endif 31 #endif
26 }; 32 };
27 33
28 void __init imx_lluart_map_io(void) 34 void __init imx_lluart_map_io(void)
29 { 35 {
30 if (imx_lluart_desc.virtual) 36 if (imx_lluart_desc.virtual)
31 iotable_init(&imx_lluart_desc, 1); 37 iotable_init(&imx_lluart_desc, 1);
32 } 38 }
33 39
arch/arm/plat-mxc/include/mach/debug-macro.S
1 /* arch/arm/mach-imx/include/mach/debug-macro.S 1 /* arch/arm/mach-imx/include/mach/debug-macro.S
2 * 2 *
3 * Debugging macro include header 3 * Debugging macro include header
4 * 4 *
5 * Copyright (C) 1994-1999 Russell King 5 * Copyright (C) 1994-1999 Russell King
6 * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks 6 * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 * 11 *
12 */ 12 */
13 #include <mach/hardware.h> 13 #include <mach/hardware.h>
14 14
15 #ifdef CONFIG_DEBUG_IMX1_UART 15 #ifdef CONFIG_DEBUG_IMX1_UART
16 #define UART_PADDR MX1_UART1_BASE_ADDR 16 #define UART_PADDR MX1_UART1_BASE_ADDR
17 #elif defined (CONFIG_DEBUG_IMX25_UART) 17 #elif defined (CONFIG_DEBUG_IMX25_UART)
18 #define UART_PADDR MX25_UART1_BASE_ADDR 18 #define UART_PADDR MX25_UART1_BASE_ADDR
19 #elif defined (CONFIG_DEBUG_IMX21_IMX27_UART) 19 #elif defined (CONFIG_DEBUG_IMX21_IMX27_UART)
20 #define UART_PADDR MX2x_UART1_BASE_ADDR 20 #define UART_PADDR MX2x_UART1_BASE_ADDR
21 #elif defined (CONFIG_DEBUG_IMX31_IMX35_UART) 21 #elif defined (CONFIG_DEBUG_IMX31_IMX35_UART)
22 #define UART_PADDR MX3x_UART1_BASE_ADDR 22 #define UART_PADDR MX3x_UART1_BASE_ADDR
23 #elif defined (CONFIG_DEBUG_IMX51_UART) 23 #elif defined (CONFIG_DEBUG_IMX51_UART)
24 #define UART_PADDR MX51_UART1_BASE_ADDR 24 #define UART_PADDR MX51_UART1_BASE_ADDR
25 #elif defined (CONFIG_DEBUG_IMX50_IMX53_UART) 25 #elif defined (CONFIG_DEBUG_IMX50_IMX53_UART)
26 #define UART_PADDR MX53_UART1_BASE_ADDR 26 #define UART_PADDR MX53_UART1_BASE_ADDR
27 #elif defined (CONFIG_DEBUG_IMX6Q_UART2)
28 #define UART_PADDR MX6Q_UART2_BASE_ADDR
27 #elif defined (CONFIG_DEBUG_IMX6Q_UART4) 29 #elif defined (CONFIG_DEBUG_IMX6Q_UART4)
28 #define UART_PADDR MX6Q_UART4_BASE_ADDR 30 #define UART_PADDR MX6Q_UART4_BASE_ADDR
29 #endif 31 #endif
30 32
31 #define UART_VADDR IMX_IO_ADDRESS(UART_PADDR) 33 #define UART_VADDR IMX_IO_ADDRESS(UART_PADDR)
32 34
33 .macro addruart, rp, rv, tmp 35 .macro addruart, rp, rv, tmp
34 ldr \rp, =UART_PADDR @ physical 36 ldr \rp, =UART_PADDR @ physical
35 ldr \rv, =UART_VADDR @ virtual 37 ldr \rv, =UART_VADDR @ virtual
36 .endm 38 .endm
37 39
38 .macro senduart,rd,rx 40 .macro senduart,rd,rx
39 str \rd, [\rx, #0x40] @ TXDATA 41 str \rd, [\rx, #0x40] @ TXDATA
40 .endm 42 .endm
41 43
42 .macro waituart,rd,rx 44 .macro waituart,rd,rx
43 .endm 45 .endm
44 46
45 .macro busyuart,rd,rx 47 .macro busyuart,rd,rx
46 1002: ldr \rd, [\rx, #0x98] @ SR2 48 1002: ldr \rd, [\rx, #0x98] @ SR2
47 tst \rd, #1 << 3 @ TXDC 49 tst \rd, #1 << 3 @ TXDC
48 beq 1002b @ wait until transmit done 50 beq 1002b @ wait until transmit done
49 .endm 51 .endm
50 52
arch/arm/plat-mxc/include/mach/mx6q.h
1 /* 1 /*
2 * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved. 2 * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
3 * Copyright 2011 Linaro Ltd. 3 * Copyright 2011 Linaro Ltd.
4 * 4 *
5 * The code contained herein is licensed under the GNU General Public 5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License 6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations: 7 * Version 2 or later at the following locations:
8 * 8 *
9 * http://www.opensource.org/licenses/gpl-license.html 9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html 10 * http://www.gnu.org/copyleft/gpl.html
11 */ 11 */
12 12
13 #ifndef __MACH_MX6Q_H__ 13 #ifndef __MACH_MX6Q_H__
14 #define __MACH_MX6Q_H__ 14 #define __MACH_MX6Q_H__
15 15
16 #define MX6Q_IO_P2V(x) IMX_IO_P2V(x) 16 #define MX6Q_IO_P2V(x) IMX_IO_P2V(x)
17 #define MX6Q_IO_ADDRESS(x) IOMEM(MX6Q_IO_P2V(x)) 17 #define MX6Q_IO_ADDRESS(x) IOMEM(MX6Q_IO_P2V(x))
18 18
19 /* 19 /*
20 * The following are the blocks that need to be statically mapped. 20 * The following are the blocks that need to be statically mapped.
21 * For other blocks, the base address really should be retrieved from 21 * For other blocks, the base address really should be retrieved from
22 * device tree. 22 * device tree.
23 */ 23 */
24 #define MX6Q_SCU_BASE_ADDR 0x00a00000 24 #define MX6Q_SCU_BASE_ADDR 0x00a00000
25 #define MX6Q_SCU_SIZE 0x1000 25 #define MX6Q_SCU_SIZE 0x1000
26 #define MX6Q_CCM_BASE_ADDR 0x020c4000 26 #define MX6Q_CCM_BASE_ADDR 0x020c4000
27 #define MX6Q_CCM_SIZE 0x4000 27 #define MX6Q_CCM_SIZE 0x4000
28 #define MX6Q_ANATOP_BASE_ADDR 0x020c8000 28 #define MX6Q_ANATOP_BASE_ADDR 0x020c8000
29 #define MX6Q_ANATOP_SIZE 0x1000 29 #define MX6Q_ANATOP_SIZE 0x1000
30 #define MX6Q_UART2_BASE_ADDR 0x021e8000
31 #define MX6Q_UART2_SIZE 0x4000
30 #define MX6Q_UART4_BASE_ADDR 0x021f0000 32 #define MX6Q_UART4_BASE_ADDR 0x021f0000
31 #define MX6Q_UART4_SIZE 0x4000 33 #define MX6Q_UART4_SIZE 0x4000
32 34
33 #endif /* __MACH_MX6Q_H__ */ 35 #endif /* __MACH_MX6Q_H__ */
34 36