Commit 785d7fab3eb0c39bcd8086055e7bd144c48158e4
Committed by
Shawn Guo
1 parent
ef44180680
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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 |