xref: /linux/arch/arm/Kconfig.debug (revision 3932b9ca55b0be314a36d3e84faff3e823c081f5)
1menu "Kernel hacking"
2
3source "lib/Kconfig.debug"
4
5config ARM_PTDUMP
6	bool "Export kernel pagetable layout to userspace via debugfs"
7	depends on DEBUG_KERNEL
8	select DEBUG_FS
9	---help---
10	  Say Y here if you want to show the kernel pagetable layout in a
11	  debugfs file. This information is only useful for kernel developers
12	  who are working in architecture specific areas of the kernel.
13	  It is probably not a good idea to enable this feature in a production
14	  kernel.
15	  If in doubt, say "N"
16
17config STRICT_DEVMEM
18	bool "Filter access to /dev/mem"
19	depends on MMU
20	---help---
21	  If this option is disabled, you allow userspace (root) access to all
22	  of memory, including kernel and userspace memory. Accidental
23	  access to this is obviously disastrous, but specific access can
24	  be used by people debugging the kernel.
25
26	  If this option is switched on, the /dev/mem file only allows
27	  userspace access to memory mapped peripherals.
28
29          If in doubt, say Y.
30
31# RMK wants arm kernels compiled with frame pointers or stack unwinding.
32# If you know what you are doing and are willing to live without stack
33# traces, you can get a slightly smaller kernel by setting this option to
34# n, but then RMK will have to kill you ;).
35config FRAME_POINTER
36	bool
37	depends on !THUMB2_KERNEL
38	default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER
39	help
40	  If you say N here, the resulting kernel will be slightly smaller and
41	  faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
42	  when a problem occurs with the kernel, the information that is
43	  reported is severely limited.
44
45config ARM_UNWIND
46	bool "Enable stack unwinding support (EXPERIMENTAL)"
47	depends on AEABI
48	default y
49	help
50	  This option enables stack unwinding support in the kernel
51	  using the information automatically generated by the
52	  compiler. The resulting kernel image is slightly bigger but
53	  the performance is not affected. Currently, this feature
54	  only works with EABI compilers. If unsure say Y.
55
56config OLD_MCOUNT
57	bool
58	depends on FUNCTION_TRACER && FRAME_POINTER
59	default y
60
61config DEBUG_USER
62	bool "Verbose user fault messages"
63	help
64	  When a user program crashes due to an exception, the kernel can
65	  print a brief message explaining what the problem was. This is
66	  sometimes helpful for debugging but serves no purpose on a
67	  production system. Most people should say N here.
68
69	  In addition, you need to pass user_debug=N on the kernel command
70	  line to enable this feature.  N consists of the sum of:
71
72	      1 - undefined instruction events
73	      2 - system calls
74	      4 - invalid data aborts
75	      8 - SIGSEGV faults
76	     16 - SIGBUS faults
77
78# These options are only for real kernel hackers who want to get their hands dirty.
79config DEBUG_LL
80	bool "Kernel low-level debugging functions (read help!)"
81	depends on DEBUG_KERNEL
82	help
83	  Say Y here to include definitions of printascii, printch, printhex
84	  in the kernel.  This is helpful if you are debugging code that
85	  executes before the console is initialized.
86
87	  Note that selecting this option will limit the kernel to a single
88	  UART definition, as specified below. Attempting to boot the kernel
89	  image on a different platform *will not work*, so this option should
90	  not be enabled for kernels that are intended to be portable.
91
92choice
93	prompt "Kernel low-level debugging port"
94	depends on DEBUG_LL
95
96	config AT91_DEBUG_LL_DBGU0
97		bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"
98		depends on HAVE_AT91_DBGU0
99
100	config AT91_DEBUG_LL_DBGU1
101		bool "Kernel low-level debugging on 9263 and 9g45"
102		depends on HAVE_AT91_DBGU1
103
104	config DEBUG_BCM2835
105		bool "Kernel low-level debugging on BCM2835 PL011 UART"
106		depends on ARCH_BCM2835
107		select DEBUG_UART_PL01X
108
109	config DEBUG_BCM_5301X
110		bool "Kernel low-level debugging on BCM5301X UART1"
111		depends on ARCH_BCM_5301X
112		select DEBUG_UART_PL01X
113
114	config DEBUG_BCM_KONA_UART
115		bool "Kernel low-level debugging messages via BCM KONA UART"
116		depends on ARCH_BCM_MOBILE
117		select DEBUG_UART_8250
118		help
119		  Say Y here if you want kernel low-level debugging support
120		  on Broadcom SoC platforms.
121		  This low level debug works for Broadcom
122		  mobile SoCs in the Kona family of chips (e.g. bcm28155,
123		  bcm11351, etc...)
124
125	config DEBUG_BERLIN_UART
126		bool "Marvell Berlin SoC Debug UART"
127		depends on ARCH_BERLIN
128		select DEBUG_UART_8250
129		help
130		  Say Y here if you want kernel low-level debugging support
131		  on Marvell Berlin SoC based platforms.
132
133	config DEBUG_CLPS711X_UART1
134		bool "Kernel low-level debugging messages via UART1"
135		depends on ARCH_CLPS711X
136		help
137		  Say Y here if you want the debug print routines to direct
138		  their output to the first serial port on these devices.
139
140	config DEBUG_CLPS711X_UART2
141		bool "Kernel low-level debugging messages via UART2"
142		depends on ARCH_CLPS711X
143		help
144		  Say Y here if you want the debug print routines to direct
145		  their output to the second serial port on these devices.
146
147	config DEBUG_CNS3XXX
148		bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
149		depends on ARCH_CNS3XXX
150		select DEBUG_UART_PL01X
151		help
152		  Say Y here if you want the debug print routines to direct
153                  their output to the CNS3xxx UART0.
154
155	config DEBUG_DAVINCI_DA8XX_UART1
156		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
157		depends on ARCH_DAVINCI_DA8XX
158		select DEBUG_UART_8250
159		help
160		  Say Y here if you want the debug print routines to direct
161		  their output to UART1 serial port on DaVinci DA8XX devices.
162
163	config DEBUG_DAVINCI_DA8XX_UART2
164		bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
165		depends on ARCH_DAVINCI_DA8XX
166		select DEBUG_UART_8250
167		help
168		  Say Y here if you want the debug print routines to direct
169		  their output to UART2 serial port on DaVinci DA8XX devices.
170
171	config DEBUG_DAVINCI_DMx_UART0
172		bool "Kernel low-level debugging on DaVinci DMx using UART0"
173		depends on ARCH_DAVINCI_DMx
174		select DEBUG_UART_8250
175		help
176		  Say Y here if you want the debug print routines to direct
177		  their output to UART0 serial port on DaVinci DMx devices.
178
179	config DEBUG_ZYNQ_UART0
180		bool "Kernel low-level debugging on Xilinx Zynq using UART0"
181		depends on ARCH_ZYNQ
182		help
183		  Say Y here if you want the debug print routines to direct
184		  their output to UART0 on the Zynq platform.
185
186	config DEBUG_ZYNQ_UART1
187		bool "Kernel low-level debugging on Xilinx Zynq using UART1"
188		depends on ARCH_ZYNQ
189		help
190		  Say Y here if you want the debug print routines to direct
191		  their output to UART1 on the Zynq platform.
192
193		  If you have a ZC702 board and want early boot messages to
194		  appear on the USB serial adaptor, select this option.
195
196	config DEBUG_DC21285_PORT
197		bool "Kernel low-level debugging messages via footbridge serial port"
198		depends on FOOTBRIDGE
199		help
200		  Say Y here if you want the debug print routines to direct
201		  their output to the serial port in the DC21285 (Footbridge).
202
203	config DEBUG_FOOTBRIDGE_COM1
204		bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
205		depends on FOOTBRIDGE
206		help
207		  Say Y here if you want the debug print routines to direct
208		  their output to the 8250 at PCI COM1.
209
210	config DEBUG_HI3620_UART
211		bool "Hisilicon HI3620 Debug UART"
212		depends on ARCH_HI3xxx
213		select DEBUG_UART_PL01X
214		help
215		  Say Y here if you want kernel low-level debugging support
216		  on HI3620 UART.
217
218	config DEBUG_HI3716_UART
219		bool "Hisilicon Hi3716 Debug UART"
220		depends on ARCH_HI3xxx
221		select DEBUG_UART_PL01X
222		help
223		  Say Y here if you want kernel low-level debugging support
224		  on HI3716 UART.
225
226	config DEBUG_HIX5HD2_UART
227		bool "Hisilicon Hix5hd2 Debug UART"
228		depends on ARCH_HIX5HD2
229		select DEBUG_UART_PL01X
230		help
231		  Say Y here if you want kernel low-level debugging support
232		  on Hix5hd2 UART.
233
234	config DEBUG_HIGHBANK_UART
235		bool "Kernel low-level debugging messages via Highbank UART"
236		depends on ARCH_HIGHBANK
237		select DEBUG_UART_PL01X
238		help
239		  Say Y here if you want the debug print routines to direct
240		  their output to the UART on Highbank based devices.
241
242	config DEBUG_IMX1_UART
243		bool "i.MX1 Debug UART"
244		depends on SOC_IMX1
245		help
246		  Say Y here if you want kernel low-level debugging support
247		  on i.MX1.
248
249	config DEBUG_IMX23_UART
250		bool "i.MX23 Debug UART"
251		depends on SOC_IMX23
252		select DEBUG_UART_PL01X
253		help
254		  Say Y here if you want kernel low-level debugging support
255		  on i.MX23.
256
257	config DEBUG_IMX25_UART
258		bool "i.MX25 Debug UART"
259		depends on SOC_IMX25
260		help
261		  Say Y here if you want kernel low-level debugging support
262		  on i.MX25.
263
264	config DEBUG_IMX21_IMX27_UART
265		bool "i.MX21 and i.MX27 Debug UART"
266		depends on SOC_IMX21 || SOC_IMX27
267		help
268		  Say Y here if you want kernel low-level debugging support
269		  on i.MX21 or i.MX27.
270
271	config DEBUG_IMX28_UART
272		bool "i.MX28 Debug UART"
273		depends on SOC_IMX28
274		select DEBUG_UART_PL01X
275		help
276		  Say Y here if you want kernel low-level debugging support
277		  on i.MX28.
278
279	config DEBUG_IMX31_UART
280		bool "i.MX31 Debug UART"
281		depends on SOC_IMX31
282		help
283		  Say Y here if you want kernel low-level debugging support
284		  on i.MX31.
285
286	config DEBUG_IMX35_UART
287		bool "i.MX35 Debug UART"
288		depends on SOC_IMX35
289		help
290		  Say Y here if you want kernel low-level debugging support
291		  on i.MX35.
292
293	config DEBUG_IMX50_UART
294		bool "i.MX50 Debug UART"
295		depends on SOC_IMX50
296		help
297		  Say Y here if you want kernel low-level debugging support
298		  on i.MX50.
299
300	config DEBUG_IMX51_UART
301		bool "i.MX51 Debug UART"
302		depends on SOC_IMX51
303		help
304		  Say Y here if you want kernel low-level debugging support
305		  on i.MX51.
306
307	config DEBUG_IMX53_UART
308		bool "i.MX53 Debug UART"
309		depends on SOC_IMX53
310		help
311		  Say Y here if you want kernel low-level debugging support
312		  on i.MX53.
313
314	config DEBUG_IMX6Q_UART
315		bool "i.MX6Q/DL Debug UART"
316		depends on SOC_IMX6Q
317		help
318		  Say Y here if you want kernel low-level debugging support
319		  on i.MX6Q/DL.
320
321	config DEBUG_IMX6SL_UART
322		bool "i.MX6SL Debug UART"
323		depends on SOC_IMX6SL
324		help
325		  Say Y here if you want kernel low-level debugging support
326		  on i.MX6SL.
327
328	config DEBUG_IMX6SX_UART
329		bool "i.MX6SX Debug UART"
330		depends on SOC_IMX6SX
331		help
332		  Say Y here if you want kernel low-level debugging support
333		  on i.MX6SX.
334
335	config DEBUG_KEYSTONE_UART0
336		bool "Kernel low-level debugging on KEYSTONE2 using UART0"
337		depends on ARCH_KEYSTONE
338		select DEBUG_UART_8250
339		help
340		  Say Y here if you want the debug print routines to direct
341		  their output to UART0 serial port on KEYSTONE2 devices.
342
343	config DEBUG_KEYSTONE_UART1
344		bool "Kernel low-level debugging on KEYSTONE2 using UART1"
345		depends on ARCH_KEYSTONE
346		select DEBUG_UART_8250
347		help
348		  Say Y here if you want the debug print routines to direct
349		  their output to UART1 serial port on KEYSTONE2 devices.
350
351	config DEBUG_MMP_UART2
352		bool "Kernel low-level debugging message via MMP UART2"
353		depends on ARCH_MMP
354		select DEBUG_UART_8250
355		help
356		  Say Y here if you want kernel low-level debugging support
357		  on MMP UART2.
358
359	config DEBUG_MMP_UART3
360		bool "Kernel low-level debugging message via MMP UART3"
361		depends on ARCH_MMP
362		select DEBUG_UART_8250
363		help
364		  Say Y here if you want kernel low-level debugging support
365		  on MMP UART3.
366
367	config DEBUG_MSM_UART
368		bool "Kernel low-level debugging messages via MSM UART"
369		depends on ARCH_MSM
370		help
371		  Say Y here if you want the debug print routines to direct
372		  their output to the serial port on MSM devices.
373
374		  ARCH                DEBUG_UART_PHYS   DEBUG_UART_BASE   #
375		  MSM7X00A, QSD8X50   0xa9a00000        0xe1000000        UART1
376		  MSM7X00A, QSD8X50   0xa9b00000        0xe1000000        UART2
377		  MSM7X00A, QSD8X50   0xa9c00000        0xe1000000        UART3
378
379		  MSM7X30             0xaca00000        0xe1000000        UART1
380		  MSM7X30             0xacb00000        0xe1000000        UART2
381		  MSM7X30             0xacc00000        0xe1000000        UART3
382
383		  Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
384		  options based on your needs.
385
386	config DEBUG_QCOM_UARTDM
387		bool "Kernel low-level debugging messages via QCOM UARTDM"
388		depends on ARCH_QCOM
389		help
390		  Say Y here if you want the debug print routines to direct
391		  their output to the serial port on Qualcomm devices.
392
393		  ARCH      DEBUG_UART_PHYS   DEBUG_UART_BASE
394		  APQ8084   0xf995e000        0xfa75e000
395		  MSM8X60   0x19c40000        0xf0040000
396		  MSM8960   0x16440000        0xf0040000
397		  MSM8974   0xf991e000        0xfa71e000
398
399		  Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
400		  options based on your needs.
401
402	config DEBUG_MVEBU_UART
403		bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)"
404		depends on ARCH_MVEBU
405		select DEBUG_UART_8250
406		help
407		  Say Y here if you want kernel low-level debugging support
408		  on MVEBU based platforms.
409
410		  This option should be used with the old bootloaders
411		  that left the internal registers mapped at
412		  0xd0000000. As of today, this is the case on
413		  platforms such as the Globalscale Mirabox or the
414		  Plathome OpenBlocks AX3, when using the original
415		  bootloader.
416
417		  If the wrong DEBUG_MVEBU_UART* option is selected,
418		  when u-boot hands over to the kernel, the system
419		  silently crashes, with no serial output at all.
420
421	config DEBUG_MVEBU_UART_ALTERNATE
422		bool "Kernel low-level debugging messages via MVEBU UART (new bootloaders)"
423		depends on ARCH_MVEBU
424		select DEBUG_UART_8250
425		help
426		  Say Y here if you want kernel low-level debugging support
427		  on MVEBU based platforms.
428
429		  This option should be used with the new bootloaders
430		  that remap the internal registers at 0xf1000000.
431
432		  If the wrong DEBUG_MVEBU_UART* option is selected,
433		  when u-boot hands over to the kernel, the system
434		  silently crashes, with no serial output at all.
435
436	config DEBUG_VF_UART
437		bool "Vybrid UART"
438		depends on SOC_VF610
439		help
440		  Say Y here if you want kernel low-level debugging support
441		  on Vybrid based platforms.
442
443	config DEBUG_NOMADIK_UART
444		bool "Kernel low-level debugging messages via NOMADIK UART"
445		depends on ARCH_NOMADIK
446		select DEBUG_UART_PL01X
447		help
448		  Say Y here if you want kernel low-level debugging support
449		  on NOMADIK based platforms.
450
451	config DEBUG_NSPIRE_CLASSIC_UART
452		bool "Kernel low-level debugging via TI-NSPIRE 8250 UART"
453		depends on ARCH_NSPIRE
454		select DEBUG_UART_8250
455		help
456		  Say Y here if you want kernel low-level debugging support
457		  on TI-NSPIRE classic models.
458
459	config DEBUG_NSPIRE_CX_UART
460		bool "Kernel low-level debugging via TI-NSPIRE PL011 UART"
461		depends on ARCH_NSPIRE
462		select DEBUG_UART_PL01X
463		help
464		  Say Y here if you want kernel low-level debugging support
465		  on TI-NSPIRE CX models.
466
467	config DEBUG_OMAP2UART1
468		bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
469		depends on ARCH_OMAP2PLUS
470		select DEBUG_OMAP2PLUS_UART
471		help
472		  This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
473		  omap3 torpedo and 3530 lv som.
474
475	config DEBUG_OMAP2UART2
476		bool "Kernel low-level debugging messages via OMAP2/3/4 UART2"
477		depends on ARCH_OMAP2PLUS
478		select DEBUG_OMAP2PLUS_UART
479
480	config DEBUG_OMAP2UART3
481		bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)"
482		depends on ARCH_OMAP2PLUS
483		select DEBUG_OMAP2PLUS_UART
484
485	config DEBUG_OMAP3UART3
486		bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)"
487		depends on ARCH_OMAP2PLUS
488		select DEBUG_OMAP2PLUS_UART
489		help
490		  This covers at least cm_t3x, beagle, crane, devkit8000,
491		  igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
492		  and 3517evm.
493
494	config DEBUG_OMAP4UART3
495		bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
496		depends on ARCH_OMAP2PLUS
497		select DEBUG_OMAP2PLUS_UART
498
499	config DEBUG_OMAP3UART4
500		bool "Kernel low-level debugging messages via OMAP36XX UART4"
501		depends on ARCH_OMAP2PLUS
502		select DEBUG_OMAP2PLUS_UART
503
504	config DEBUG_OMAP4UART4
505		bool "Kernel low-level debugging messages via OMAP4/5 UART4"
506		depends on ARCH_OMAP2PLUS
507		select DEBUG_OMAP2PLUS_UART
508
509	config DEBUG_TI81XXUART1
510		bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
511		depends on ARCH_OMAP2PLUS
512		select DEBUG_OMAP2PLUS_UART
513
514	config DEBUG_TI81XXUART2
515		bool "Kernel low-level debugging messages via TI81XX UART2"
516		depends on ARCH_OMAP2PLUS
517		select DEBUG_OMAP2PLUS_UART
518
519	config DEBUG_TI81XXUART3
520		bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)"
521		depends on ARCH_OMAP2PLUS
522		select DEBUG_OMAP2PLUS_UART
523
524	config DEBUG_AM33XXUART1
525		bool "Kernel low-level debugging messages via AM33XX UART1"
526		depends on ARCH_OMAP2PLUS
527		select DEBUG_OMAP2PLUS_UART
528
529	config DEBUG_ZOOM_UART
530		bool "Kernel low-level debugging messages via Zoom2/3 UART"
531		depends on ARCH_OMAP2PLUS
532		select DEBUG_OMAP2PLUS_UART
533
534	config DEBUG_PICOXCELL_UART
535		depends on ARCH_PICOXCELL
536		bool "Use PicoXcell UART for low-level debug"
537		select DEBUG_UART_8250
538		help
539		  Say Y here if you want kernel low-level debugging support
540		  on PicoXcell based platforms.
541
542	config DEBUG_PXA_UART1
543		depends on ARCH_PXA
544		bool "Use PXA UART1 for low-level debug"
545		select DEBUG_UART_8250
546		help
547		  Say Y here if you want kernel low-level debugging support
548		  on PXA UART1.
549
550	config DEBUG_REALVIEW_STD_PORT
551		bool "RealView Default UART"
552		depends on ARCH_REALVIEW
553		select DEBUG_UART_PL01X
554		help
555		  Say Y here if you want the debug print routines to direct
556		  their output to the serial port on RealView EB, PB11MP, PBA8
557		  and PBX platforms.
558
559	config DEBUG_REALVIEW_PB1176_PORT
560		bool "RealView PB1176 UART"
561		depends on MACH_REALVIEW_PB1176
562		select DEBUG_UART_PL01X
563		help
564		  Say Y here if you want the debug print routines to direct
565		  their output to the standard serial port on the RealView
566		  PB1176 platform.
567
568	config DEBUG_RK29_UART0
569		bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
570		depends on ARCH_ROCKCHIP
571		select DEBUG_UART_8250
572		help
573		  Say Y here if you want kernel low-level debugging support
574		  on Rockchip based platforms.
575
576	config DEBUG_RK29_UART1
577		bool "Kernel low-level debugging messages via Rockchip RK29 UART1"
578		depends on ARCH_ROCKCHIP
579		select DEBUG_UART_8250
580		help
581		  Say Y here if you want kernel low-level debugging support
582		  on Rockchip based platforms.
583
584	config DEBUG_RK29_UART2
585		bool "Kernel low-level debugging messages via Rockchip RK29 UART2"
586		depends on ARCH_ROCKCHIP
587		select DEBUG_UART_8250
588		help
589		  Say Y here if you want kernel low-level debugging support
590		  on Rockchip based platforms.
591
592	config DEBUG_RK3X_UART0
593		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART0"
594		depends on ARCH_ROCKCHIP
595		select DEBUG_UART_8250
596		help
597		  Say Y here if you want kernel low-level debugging support
598		  on Rockchip based platforms.
599
600	config DEBUG_RK3X_UART1
601		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART1"
602		depends on ARCH_ROCKCHIP
603		select DEBUG_UART_8250
604		help
605		  Say Y here if you want kernel low-level debugging support
606		  on Rockchip based platforms.
607
608	config DEBUG_RK3X_UART2
609		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART2"
610		depends on ARCH_ROCKCHIP
611		select DEBUG_UART_8250
612		help
613		  Say Y here if you want kernel low-level debugging support
614		  on Rockchip based platforms.
615
616	config DEBUG_RK3X_UART3
617		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART3"
618		depends on ARCH_ROCKCHIP
619		select DEBUG_UART_8250
620		help
621		  Say Y here if you want kernel low-level debugging support
622		  on Rockchip based platforms.
623
624	config DEBUG_RK32_UART2
625		bool "Kernel low-level debugging messages via Rockchip RK32 UART2"
626		depends on ARCH_ROCKCHIP
627		select DEBUG_UART_8250
628		help
629		  Say Y here if you want kernel low-level debugging support
630		  on Rockchip RK32xx based platforms.
631
632	config DEBUG_S3C_UART0
633		depends on PLAT_SAMSUNG
634		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
635		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
636		select DEBUG_S5PV210_UART if ARCH_S5PV210
637		bool "Use Samsung S3C UART 0 for low-level debug"
638		help
639		  Say Y here if you want the debug print routines to direct
640		  their output to UART 0. The port must have been initialised
641		  by the boot-loader before use.
642
643	config DEBUG_S3C_UART1
644		depends on PLAT_SAMSUNG
645		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
646		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
647		select DEBUG_S5PV210_UART if ARCH_S5PV210
648		bool "Use Samsung S3C UART 1 for low-level debug"
649		help
650		  Say Y here if you want the debug print routines to direct
651		  their output to UART 1. The port must have been initialised
652		  by the boot-loader before use.
653
654	config DEBUG_S3C_UART2
655		depends on PLAT_SAMSUNG
656		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
657		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
658		select DEBUG_S5PV210_UART if ARCH_S5PV210
659		bool "Use Samsung S3C UART 2 for low-level debug"
660		help
661		  Say Y here if you want the debug print routines to direct
662		  their output to UART 2. The port must have been initialised
663		  by the boot-loader before use.
664
665	config DEBUG_S3C_UART3
666		depends on PLAT_SAMSUNG && (ARCH_EXYNOS || ARCH_S5PV210)
667		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
668		select DEBUG_S5PV210_UART if ARCH_S5PV210
669		bool "Use Samsung S3C UART 3 for low-level debug"
670		help
671		  Say Y here if you want the debug print routines to direct
672		  their output to UART 3. The port must have been initialised
673		  by the boot-loader before use.
674
675	config DEBUG_S3C2410_UART0
676		depends on ARCH_S3C24XX
677		select DEBUG_S3C2410_UART
678		bool "Use S3C2410/S3C2412 UART 0 for low-level debug"
679		help
680		  Say Y here if you want the debug print routines to direct
681		  their output to UART 0. The port must have been initialised
682		  by the boot-loader before use.
683
684	config DEBUG_S3C2410_UART1
685		depends on ARCH_S3C24XX
686		select DEBUG_S3C2410_UART
687		bool "Use S3C2410/S3C2412 UART 1 for low-level debug"
688		help
689		  Say Y here if you want the debug print routines to direct
690		  their output to UART 1. The port must have been initialised
691		  by the boot-loader before use.
692
693	config DEBUG_S3C2410_UART2
694		depends on ARCH_S3C24XX
695		select DEBUG_S3C2410_UART
696		bool "Use S3C2410/S3C2412 UART 2 for low-level debug"
697		help
698		  Say Y here if you want the debug print routines to direct
699		  their output to UART 2. The port must have been initialised
700		  by the boot-loader before use.
701
702	config DEBUG_SOCFPGA_UART
703		depends on ARCH_SOCFPGA
704		bool "Use SOCFPGA UART for low-level debug"
705		select DEBUG_UART_8250
706		help
707		  Say Y here if you want kernel low-level debugging support
708		  on SOCFPGA based platforms.
709
710	config DEBUG_SUNXI_UART0
711		bool "Kernel low-level debugging messages via sunXi UART0"
712		depends on ARCH_SUNXI
713		select DEBUG_UART_8250
714		help
715		  Say Y here if you want kernel low-level debugging support
716		  on Allwinner A1X based platforms on the UART0.
717
718	config DEBUG_SUNXI_UART1
719		bool "Kernel low-level debugging messages via sunXi UART1"
720		depends on ARCH_SUNXI
721		select DEBUG_UART_8250
722		help
723		  Say Y here if you want kernel low-level debugging support
724		  on Allwinner A1X based platforms on the UART1.
725
726	config DEBUG_SUNXI_R_UART
727		bool "Kernel low-level debugging messages via sunXi R_UART"
728		depends on MACH_SUN6I || MACH_SUN8I
729		select DEBUG_UART_8250
730		help
731		  Say Y here if you want kernel low-level debugging support
732		  on Allwinner A31/A23 based platforms on the R_UART.
733
734	config TEGRA_DEBUG_UART_AUTO_ODMDATA
735		bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
736		depends on ARCH_TEGRA
737		select DEBUG_TEGRA_UART
738		help
739		  Automatically determines which UART to use for low-level
740		  debug based on the ODMDATA value. This value is part of
741		  the BCT, and is written to the boot memory device using
742		  nvflash, or other flashing tool.  When bits 19:18 are 3,
743		  then bits 17:15 indicate which UART to use; 0/1/2/3/4
744		  are UART A/B/C/D/E.
745
746	config TEGRA_DEBUG_UARTA
747		bool "Kernel low-level debugging messages via Tegra UART A"
748		depends on ARCH_TEGRA
749		select DEBUG_TEGRA_UART
750		help
751		  Say Y here if you want kernel low-level debugging support
752		  on Tegra based platforms.
753
754	config TEGRA_DEBUG_UARTB
755		bool "Kernel low-level debugging messages via Tegra UART B"
756		depends on ARCH_TEGRA
757		select DEBUG_TEGRA_UART
758		help
759		  Say Y here if you want kernel low-level debugging support
760		  on Tegra based platforms.
761
762	config TEGRA_DEBUG_UARTC
763		bool "Kernel low-level debugging messages via Tegra UART C"
764		depends on ARCH_TEGRA
765		select DEBUG_TEGRA_UART
766		help
767		  Say Y here if you want kernel low-level debugging support
768		  on Tegra based platforms.
769
770	config TEGRA_DEBUG_UARTD
771		bool "Kernel low-level debugging messages via Tegra UART D"
772		depends on ARCH_TEGRA
773		select DEBUG_TEGRA_UART
774		help
775		  Say Y here if you want kernel low-level debugging support
776		  on Tegra based platforms.
777
778	config TEGRA_DEBUG_UARTE
779		bool "Kernel low-level debugging messages via Tegra UART E"
780		depends on ARCH_TEGRA
781		select DEBUG_TEGRA_UART
782		help
783		  Say Y here if you want kernel low-level debugging support
784		  on Tegra based platforms.
785
786	config DEBUG_SIRFPRIMA2_UART1
787		bool "Kernel low-level debugging messages via SiRFprimaII UART1"
788		depends on ARCH_PRIMA2
789		help
790		  Say Y here if you want the debug print routines to direct
791		  their output to the uart1 port on SiRFprimaII devices.
792
793	config DEBUG_SIRFMARCO_UART1
794		bool "Kernel low-level debugging messages via SiRFmarco UART1"
795		depends on ARCH_MARCO
796		help
797		  Say Y here if you want the debug print routines to direct
798		  their output to the uart1 port on SiRFmarco devices.
799
800	config STIH41X_DEBUG_ASC2
801		bool "Use StiH415/416 ASC2 UART for low-level debug"
802		depends on ARCH_STI
803		select DEBUG_STI_UART
804		help
805		  Say Y here if you want kernel low-level debugging support
806		  on STiH415/416 based platforms like b2000, which has
807		  default UART wired up to ASC2.
808
809		  If unsure, say N.
810
811	config STIH41X_DEBUG_SBC_ASC1
812		bool "Use StiH415/416 SBC ASC1 UART for low-level debug"
813		depends on ARCH_STI
814		select DEBUG_STI_UART
815		help
816		  Say Y here if you want kernel low-level debugging support
817		  on STiH415/416 based platforms like b2020. which has
818		  default UART wired up to SBC ASC1.
819
820		  If unsure, say N.
821
822	config DEBUG_U300_UART
823		bool "Kernel low-level debugging messages via U300 UART0"
824		depends on ARCH_U300
825		select DEBUG_UART_PL01X
826		help
827		  Say Y here if you want the debug print routines to direct
828		  their output to the uart port on U300 devices.
829
830	config DEBUG_UX500_UART
831		depends on ARCH_U8500
832		bool "Use Ux500 UART for low-level debug"
833		help
834		  Say Y here if you want kernel low-level debugging support
835		  on Ux500 based platforms.
836
837	config DEBUG_VEXPRESS_UART0_DETECT
838		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
839		depends on ARCH_VEXPRESS && CPU_CP15_MMU
840		help
841		  This option enables a simple heuristic which tries to determine
842		  the motherboard's memory map variant (original or RS1) and then
843		  choose the relevant UART0 base address.
844
845		  Note that this will only work with standard A-class core tiles,
846		  and may fail with non-standard SMM or custom software models.
847
848	config DEBUG_VEXPRESS_UART0_CA9
849		bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)"
850		depends on ARCH_VEXPRESS
851		select DEBUG_UART_PL01X
852		help
853		  This option selects UART0 at 0x10009000. Except for custom models,
854		  this applies only to the V2P-CA9 tile.
855
856	config DEBUG_VEXPRESS_UART0_RS1
857		bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)"
858		depends on ARCH_VEXPRESS
859		select DEBUG_UART_PL01X
860		help
861		  This option selects UART0 at 0x1c090000. This applies to most
862		  of the tiles using the RS1 memory map, including all new A-class
863		  core tiles, FPGA-based SMMs and software models.
864
865	config DEBUG_VEXPRESS_UART0_CRX
866		bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)"
867		depends on ARCH_VEXPRESS && !MMU
868		select DEBUG_UART_PL01X
869		help
870		  This option selects UART0 at 0xb0090000. This is appropriate for
871		  Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7
872
873	config DEBUG_VT8500_UART0
874		bool "Use UART0 on VIA/Wondermedia SoCs"
875		depends on ARCH_VT8500
876		help
877		  This option selects UART0 on VIA/Wondermedia System-on-a-chip
878		  devices, including VT8500, WM8505, WM8650 and WM8850.
879
880	config DEBUG_LL_UART_NONE
881		bool "No low-level debugging UART"
882		depends on !ARCH_MULTIPLATFORM
883		help
884		  Say Y here if your platform doesn't provide a UART option
885		  above. This relies on your platform choosing the right UART
886		  definition internally in order for low-level debugging to
887		  work.
888
889	config DEBUG_ICEDCC
890		bool "Kernel low-level debugging via EmbeddedICE DCC channel"
891		help
892		  Say Y here if you want the debug print routines to direct
893		  their output to the EmbeddedICE macrocell's DCC channel using
894		  co-processor 14. This is known to work on the ARM9 style ICE
895		  channel and on the XScale with the PEEDI.
896
897		  Note that the system will appear to hang during boot if there
898		  is nothing connected to read from the DCC.
899
900	config DEBUG_SEMIHOSTING
901		bool "Kernel low-level debug output via semihosting I/O"
902		help
903		  Semihosting enables code running on an ARM target to use
904		  the I/O facilities on a host debugger/emulator through a
905		  simple SVC call. The host debugger or emulator must have
906		  semihosting enabled for the special svc call to be trapped
907		  otherwise the kernel will crash.
908
909		  This is known to work with OpenOCD, as well as
910		  ARM's Fast Models, or any other controlling environment
911		  that implements semihosting.
912
913		  For more details about semihosting, please see
914		  chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
915
916	config DEBUG_LL_UART_8250
917		bool "Kernel low-level debugging via 8250 UART"
918		help
919		  Say Y here if you wish the debug print routes to direct
920		  their output to an 8250 UART.  You can use this option
921		  to provide the parameters for the 8250 UART rather than
922		  selecting one of the platform specific options above if
923		  you know the parameters for the port.
924
925		  This option is preferred over the platform specific
926		  options; the platform specific options are deprecated
927		  and will be soon removed.
928
929	config DEBUG_LL_UART_EFM32
930		bool "Kernel low-level debugging via efm32 UART"
931		depends on ARCH_EFM32
932		help
933		  Say Y here if you want the debug print routines to direct
934		  their output to an UART or USART port on efm32 based
935		  machines. Use the following addresses for DEBUG_UART_PHYS:
936
937		    0x4000c000 | USART0
938		    0x4000c400 | USART1
939		    0x4000c800 | USART2
940		    0x4000e000 | UART0
941		    0x4000e400 | UART1
942
943	config DEBUG_LL_UART_PL01X
944		bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
945		help
946		  Say Y here if you wish the debug print routes to direct
947		  their output to a PL01x Primecell UART.  You can use
948		  this option to provide the parameters for the UART
949		  rather than selecting one of the platform specific
950		  options above if you know the parameters for the port.
951
952		  This option is preferred over the platform specific
953		  options; the platform specific options are deprecated
954		  and will be soon removed.
955
956endchoice
957
958config DEBUG_EXYNOS_UART
959	bool
960
961config DEBUG_S3C2410_UART
962	bool
963	select DEBUG_S3C24XX_UART
964
965config DEBUG_S3C24XX_UART
966	bool
967
968config DEBUG_S5PV210_UART
969	bool
970
971config DEBUG_OMAP2PLUS_UART
972	bool
973	depends on ARCH_OMAP2PLUS
974
975config DEBUG_IMX_UART_PORT
976	int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \
977						DEBUG_IMX25_UART || \
978						DEBUG_IMX21_IMX27_UART || \
979						DEBUG_IMX31_UART || \
980						DEBUG_IMX35_UART || \
981						DEBUG_IMX50_UART || \
982						DEBUG_IMX51_UART || \
983						DEBUG_IMX53_UART || \
984						DEBUG_IMX6Q_UART || \
985						DEBUG_IMX6SL_UART || \
986						DEBUG_IMX6SX_UART
987	default 1
988	depends on ARCH_MXC
989	help
990	  Choose UART port on which kernel low-level debug messages
991	  should be output.
992
993config DEBUG_VF_UART_PORT
994	int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART
995	default 1
996	range 0 3
997	depends on SOC_VF610
998	help
999	  Choose UART port on which kernel low-level debug messages
1000	  should be output.
1001
1002config DEBUG_TEGRA_UART
1003	bool
1004	depends on ARCH_TEGRA
1005
1006config DEBUG_STI_UART
1007	bool
1008	depends on ARCH_STI
1009
1010config DEBUG_LL_INCLUDE
1011	string
1012	default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
1013	default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2
1014	default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
1015	default "debug/exynos.S" if DEBUG_EXYNOS_UART
1016	default "debug/efm32.S" if DEBUG_LL_UART_EFM32
1017	default "debug/icedcc.S" if DEBUG_ICEDCC
1018	default "debug/imx.S" if DEBUG_IMX1_UART || \
1019				 DEBUG_IMX25_UART || \
1020				 DEBUG_IMX21_IMX27_UART || \
1021				 DEBUG_IMX31_UART || \
1022				 DEBUG_IMX35_UART || \
1023				 DEBUG_IMX50_UART || \
1024				 DEBUG_IMX51_UART || \
1025				 DEBUG_IMX53_UART ||\
1026				 DEBUG_IMX6Q_UART || \
1027				 DEBUG_IMX6SL_UART || \
1028				 DEBUG_IMX6SX_UART
1029	default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
1030	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
1031	default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART
1032	default "debug/s5pv210.S" if DEBUG_S5PV210_UART
1033	default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
1034	default "debug/sti.S" if DEBUG_STI_UART
1035	default "debug/tegra.S" if DEBUG_TEGRA_UART
1036	default "debug/ux500.S" if DEBUG_UX500_UART
1037	default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
1038	default "debug/vf.S" if DEBUG_VF_UART
1039	default "debug/vt8500.S" if DEBUG_VT8500_UART0
1040	default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
1041	default "mach/debug-macro.S"
1042
1043# Compatibility options for PL01x
1044config DEBUG_UART_PL01X
1045	def_bool ARCH_EP93XX || \
1046		ARCH_INTEGRATOR || \
1047		ARCH_SPEAR3XX || \
1048		ARCH_SPEAR6XX || \
1049		ARCH_SPEAR13XX || \
1050		ARCH_VERSATILE
1051
1052# Compatibility options for 8250
1053config DEBUG_UART_8250
1054	def_bool ARCH_DOVE || ARCH_EBSA110 || \
1055		(FOOTBRIDGE && !DEBUG_DC21285_PORT) || \
1056		ARCH_GEMINI || ARCH_IOP13XX || ARCH_IOP32X || \
1057		ARCH_IOP33X || ARCH_IXP4XX || \
1058		ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC
1059
1060config DEBUG_UART_PHYS
1061	hex "Physical base address of debug UART"
1062	default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0
1063	default 0x01c28000 if DEBUG_SUNXI_UART0
1064	default 0x01c28400 if DEBUG_SUNXI_UART1
1065	default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
1066	default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
1067	default 0x01f02800 if DEBUG_SUNXI_R_UART
1068	default 0x02530c00 if DEBUG_KEYSTONE_UART0
1069	default 0x02531000 if DEBUG_KEYSTONE_UART1
1070	default 0x03010fe0 if ARCH_RPC
1071	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \
1072				DEBUG_VEXPRESS_UART0_CA9
1073	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
1074	default 0x10124000 if DEBUG_RK3X_UART0
1075	default 0x10126000 if DEBUG_RK3X_UART1
1076	default 0x101f1000 if ARCH_VERSATILE
1077	default 0x101fb000 if DEBUG_NOMADIK_UART
1078	default 0x16000000 if ARCH_INTEGRATOR
1079	default 0x18000300 if DEBUG_BCM_5301X
1080	default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
1081	default 0x20060000 if DEBUG_RK29_UART0
1082	default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1083	default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1084	default 0x20201000 if DEBUG_BCM2835
1085	default 0x3e000000 if DEBUG_BCM_KONA_UART
1086	default 0x4000e400 if DEBUG_LL_UART_EFM32
1087	default 0x40090000 if ARCH_LPC32XX
1088	default 0x40100000 if DEBUG_PXA_UART1
1089	default 0x42000000 if ARCH_GEMINI
1090	default 0x50000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
1091				DEBUG_S3C2410_UART0)
1092	default 0x50004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
1093				DEBUG_S3C2410_UART1)
1094	default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1095				DEBUG_S3C2410_UART2)
1096	default 0x7c0003f8 if FOOTBRIDGE
1097	default 0x80070000 if DEBUG_IMX23_UART
1098	default 0x80074000 if DEBUG_IMX28_UART
1099	default 0x80230000 if DEBUG_PICOXCELL_UART
1100	default 0x808c0000 if ARCH_EP93XX
1101	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1102	default 0xa9a00000 if DEBUG_MSM_UART
1103	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
1104	default 0xc0013000 if DEBUG_U300_UART
1105	default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1106	default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1107	default 0xd0000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
1108	default 0xd0012000 if DEBUG_MVEBU_UART
1109	default 0xd4017000 if DEBUG_MMP_UART2
1110	default 0xd4018000 if DEBUG_MMP_UART3
1111	default 0xe0000000 if ARCH_SPEAR13XX
1112	default 0xf0000be0 if ARCH_EBSA110
1113	default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
1114	default 0xf1012000 if ARCH_DOVE || ARCH_MV78XX0 || \
1115				ARCH_ORION5X
1116	default 0xf7fc9000 if DEBUG_BERLIN_UART
1117	default 0xf8b00000 if DEBUG_HIX5HD2_UART
1118	default 0xf991e000 if DEBUG_QCOM_UARTDM
1119	default 0xfcb00000 if DEBUG_HI3620_UART
1120	default 0xfe800000 if ARCH_IOP32X
1121	default 0xff690000 if DEBUG_RK32_UART2
1122	default 0xffc02000 if DEBUG_SOCFPGA_UART
1123	default 0xffd82340 if ARCH_IOP13XX
1124	default 0xfff36000 if DEBUG_HIGHBANK_UART
1125	default 0xfffff700 if ARCH_IOP33X
1126	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1127		DEBUG_LL_UART_EFM32 || \
1128		DEBUG_UART_8250 || DEBUG_UART_PL01X || \
1129		DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART
1130
1131config DEBUG_UART_VIRT
1132	hex "Virtual base address of debug UART"
1133	default 0xe0010fe0 if ARCH_RPC
1134	default 0xe1000000 if DEBUG_MSM_UART
1135	default 0xf0000be0 if ARCH_EBSA110
1136	default 0xf0009000 if DEBUG_CNS3XXX
1137	default 0xf01fb000 if DEBUG_NOMADIK_UART
1138	default 0xf0201000 if DEBUG_BCM2835
1139	default 0xf1000300 if DEBUG_BCM_5301X
1140	default 0xf11f1000 if ARCH_VERSATILE
1141	default 0xf1600000 if ARCH_INTEGRATOR
1142	default 0xf1c28000 if DEBUG_SUNXI_UART0
1143	default 0xf1c28400 if DEBUG_SUNXI_UART1
1144	default 0xf1f02800 if DEBUG_SUNXI_R_UART
1145	default 0xf2100000 if DEBUG_PXA_UART1
1146	default 0xf4090000 if ARCH_LPC32XX
1147	default 0xf4200000 if ARCH_GEMINI
1148	default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
1149				DEBUG_S3C2410_UART0)
1150	default 0xf7004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
1151				DEBUG_S3C2410_UART1)
1152	default 0xf7008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1153				DEBUG_S3C2410_UART2)
1154	default 0xf7fc9000 if DEBUG_BERLIN_UART
1155	default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
1156	default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
1157	default 0xfa71e000 if DEBUG_QCOM_UARTDM
1158	default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
1159	default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
1160	default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
1161	default 0xfd000000 if ARCH_SPEAR13XX
1162	default 0xfd012000 if ARCH_MV78XX0
1163	default 0xfde12000 if ARCH_DOVE
1164	default 0xfe012000 if ARCH_ORION5X
1165	default 0xfe017000 if DEBUG_MMP_UART2
1166	default 0xfe018000 if DEBUG_MMP_UART3
1167	default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
1168	default 0xfe230000 if DEBUG_PICOXCELL_UART
1169	default 0xfe300000 if DEBUG_BCM_KONA_UART
1170	default 0xfe800000 if ARCH_IOP32X
1171	default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HIX5HD2_UART
1172	default 0xfeb24000 if DEBUG_RK3X_UART0
1173	default 0xfeb26000 if DEBUG_RK3X_UART1
1174	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
1175	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
1176	default 0xfec02000 if DEBUG_SOCFPGA_UART
1177	default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
1178	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
1179	default 0xfec90000 if DEBUG_RK32_UART2
1180	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
1181	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
1182	default 0xfed60000 if DEBUG_RK29_UART0
1183	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1184	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1185	default 0xfedc0000 if ARCH_EP93XX
1186	default 0xfee003f8 if FOOTBRIDGE
1187	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1188	default 0xfee82340 if ARCH_IOP13XX
1189	default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1190	default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1191	default 0xfef36000 if DEBUG_HIGHBANK_UART
1192	default 0xfefff700 if ARCH_IOP33X
1193	default 0xff003000 if DEBUG_U300_UART
1194	default DEBUG_UART_PHYS if !MMU
1195	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1196		DEBUG_UART_8250 || DEBUG_UART_PL01X || \
1197		DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART
1198
1199config DEBUG_UART_8250_SHIFT
1200	int "Register offset shift for the 8250 debug UART"
1201	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1202	default 0 if FOOTBRIDGE || ARCH_IOP32X
1203	default 2
1204
1205config DEBUG_UART_8250_WORD
1206	bool "Use 32-bit accesses for 8250 UART"
1207	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1208	depends on DEBUG_UART_8250_SHIFT >= 2
1209	default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
1210		ARCH_KEYSTONE || \
1211		DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
1212		DEBUG_DAVINCI_DA8XX_UART2 || \
1213		DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2
1214
1215config DEBUG_UART_8250_FLOW_CONTROL
1216	bool "Enable flow control for 8250 UART"
1217	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1218	default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_GEMINI || ARCH_RPC
1219
1220config DEBUG_UNCOMPRESS
1221	bool
1222	depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG
1223	default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
1224		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM)
1225	help
1226	  This option influences the normal decompressor output for
1227	  multiplatform kernels.  Normally, multiplatform kernels disable
1228	  decompressor output because it is not possible to know where to
1229	  send the decompressor output.
1230
1231	  When this option is set, the selected DEBUG_LL output method
1232	  will be re-used for normal decompressor output on multiplatform
1233	  kernels.
1234
1235
1236config UNCOMPRESS_INCLUDE
1237	string
1238	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
1239					PLAT_SAMSUNG || ARCH_EFM32
1240	default "mach/uncompress.h"
1241
1242config EARLY_PRINTK
1243	bool "Early printk"
1244	depends on DEBUG_LL
1245	help
1246	  Say Y here if you want to have an early console using the
1247	  kernel low-level debugging functions. Add earlyprintk to your
1248	  kernel parameters to enable this console.
1249
1250config OC_ETM
1251	bool "On-chip ETM and ETB"
1252	depends on ARM_AMBA
1253	help
1254	  Enables the on-chip embedded trace macrocell and embedded trace
1255	  buffer driver that will allow you to collect traces of the
1256	  kernel code.
1257
1258config ARM_KPROBES_TEST
1259	tristate "Kprobes test module"
1260	depends on KPROBES && MODULES
1261	help
1262	  Perform tests of kprobes API and instruction set simulation.
1263
1264config PID_IN_CONTEXTIDR
1265	bool "Write the current PID to the CONTEXTIDR register"
1266	depends on CPU_COPY_V6
1267	help
1268	  Enabling this option causes the kernel to write the current PID to
1269	  the PROCID field of the CONTEXTIDR register, at the expense of some
1270	  additional instructions during context switch. Say Y here only if you
1271	  are planning to use hardware trace tools with this kernel.
1272
1273config DEBUG_SET_MODULE_RONX
1274	bool "Set loadable kernel module data as NX and text as RO"
1275	depends on MODULES
1276	---help---
1277	  This option helps catch unintended modifications to loadable
1278	  kernel module's text and read-only data. It also prevents execution
1279	  of module data. Such protection may interfere with run-time code
1280	  patching and dynamic kernel tracing - and they might also protect
1281	  against certain classes of kernel exploits.
1282	  If in doubt, say "N".
1283
1284endmenu
1285