xref: /openbmc/linux/arch/arm/Kconfig.debug (revision b34e08d5)
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_HIGHBANK_UART
227		bool "Kernel low-level debugging messages via Highbank UART"
228		depends on ARCH_HIGHBANK
229		select DEBUG_UART_PL01X
230		help
231		  Say Y here if you want the debug print routines to direct
232		  their output to the UART on Highbank based devices.
233
234	config DEBUG_IMX1_UART
235		bool "i.MX1 Debug UART"
236		depends on SOC_IMX1
237		help
238		  Say Y here if you want kernel low-level debugging support
239		  on i.MX1.
240
241	config DEBUG_IMX23_UART
242		bool "i.MX23 Debug UART"
243		depends on SOC_IMX23
244		select DEBUG_UART_PL01X
245		help
246		  Say Y here if you want kernel low-level debugging support
247		  on i.MX23.
248
249	config DEBUG_IMX25_UART
250		bool "i.MX25 Debug UART"
251		depends on SOC_IMX25
252		help
253		  Say Y here if you want kernel low-level debugging support
254		  on i.MX25.
255
256	config DEBUG_IMX21_IMX27_UART
257		bool "i.MX21 and i.MX27 Debug UART"
258		depends on SOC_IMX21 || SOC_IMX27
259		help
260		  Say Y here if you want kernel low-level debugging support
261		  on i.MX21 or i.MX27.
262
263	config DEBUG_IMX28_UART
264		bool "i.MX28 Debug UART"
265		depends on SOC_IMX28
266		select DEBUG_UART_PL01X
267		help
268		  Say Y here if you want kernel low-level debugging support
269		  on i.MX28.
270
271	config DEBUG_IMX31_UART
272		bool "i.MX31 Debug UART"
273		depends on SOC_IMX31
274		help
275		  Say Y here if you want kernel low-level debugging support
276		  on i.MX31.
277
278	config DEBUG_IMX35_UART
279		bool "i.MX35 Debug UART"
280		depends on SOC_IMX35
281		help
282		  Say Y here if you want kernel low-level debugging support
283		  on i.MX35.
284
285	config DEBUG_IMX50_UART
286		bool "i.MX50 Debug UART"
287		depends on SOC_IMX50
288		help
289		  Say Y here if you want kernel low-level debugging support
290		  on i.MX50.
291
292	config DEBUG_IMX51_UART
293		bool "i.MX51 Debug UART"
294		depends on SOC_IMX51
295		help
296		  Say Y here if you want kernel low-level debugging support
297		  on i.MX51.
298
299	config DEBUG_IMX53_UART
300		bool "i.MX53 Debug UART"
301		depends on SOC_IMX53
302		help
303		  Say Y here if you want kernel low-level debugging support
304		  on i.MX53.
305
306	config DEBUG_IMX6Q_UART
307		bool "i.MX6Q/DL Debug UART"
308		depends on SOC_IMX6Q
309		help
310		  Say Y here if you want kernel low-level debugging support
311		  on i.MX6Q/DL.
312
313	config DEBUG_IMX6SL_UART
314		bool "i.MX6SL Debug UART"
315		depends on SOC_IMX6SL
316		help
317		  Say Y here if you want kernel low-level debugging support
318		  on i.MX6SL.
319
320	config DEBUG_KEYSTONE_UART0
321		bool "Kernel low-level debugging on KEYSTONE2 using UART0"
322		depends on ARCH_KEYSTONE
323		select DEBUG_UART_8250
324		help
325		  Say Y here if you want the debug print routines to direct
326		  their output to UART0 serial port on KEYSTONE2 devices.
327
328	config DEBUG_KEYSTONE_UART1
329		bool "Kernel low-level debugging on KEYSTONE2 using UART1"
330		depends on ARCH_KEYSTONE
331		select DEBUG_UART_8250
332		help
333		  Say Y here if you want the debug print routines to direct
334		  their output to UART1 serial port on KEYSTONE2 devices.
335
336	config DEBUG_MMP_UART2
337		bool "Kernel low-level debugging message via MMP UART2"
338		depends on ARCH_MMP
339		select DEBUG_UART_8250
340		help
341		  Say Y here if you want kernel low-level debugging support
342		  on MMP UART2.
343
344	config DEBUG_MMP_UART3
345		bool "Kernel low-level debugging message via MMP UART3"
346		depends on ARCH_MMP
347		select DEBUG_UART_8250
348		help
349		  Say Y here if you want kernel low-level debugging support
350		  on MMP UART3.
351
352	config DEBUG_MSM_UART1
353		bool "Kernel low-level debugging messages via MSM UART1"
354		depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
355		select DEBUG_MSM_UART
356		help
357		  Say Y here if you want the debug print routines to direct
358		  their output to the first serial port on MSM devices.
359
360	config DEBUG_MSM_UART2
361		bool "Kernel low-level debugging messages via MSM UART2"
362		depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
363		select DEBUG_MSM_UART
364		help
365		  Say Y here if you want the debug print routines to direct
366		  their output to the second serial port on MSM devices.
367
368	config DEBUG_MSM_UART3
369		bool "Kernel low-level debugging messages via MSM UART3"
370		depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
371		select DEBUG_MSM_UART
372		help
373		  Say Y here if you want the debug print routines to direct
374		  their output to the third serial port on MSM devices.
375
376	config DEBUG_MSM8660_UART
377		bool "Kernel low-level debugging messages via MSM 8660 UART"
378		depends on ARCH_MSM8X60
379		select MSM_HAS_DEBUG_UART_HS
380		select DEBUG_MSM_UART
381		help
382		  Say Y here if you want the debug print routines to direct
383		  their output to the serial port on MSM 8660 devices.
384
385	config DEBUG_MSM8960_UART
386		bool "Kernel low-level debugging messages via MSM 8960 UART"
387		depends on ARCH_MSM8960
388		select MSM_HAS_DEBUG_UART_HS
389		select DEBUG_MSM_UART
390		help
391		  Say Y here if you want the debug print routines to direct
392		  their output to the serial port on MSM 8960 devices.
393
394	config DEBUG_MSM8974_UART
395		bool "Kernel low-level debugging messages via MSM 8974 UART"
396		depends on ARCH_MSM8974
397		select MSM_HAS_DEBUG_UART_HS
398		select DEBUG_MSM_UART
399		help
400		  Say Y here if you want the debug print routines to direct
401		  their output to the serial port on MSM 8974 devices.
402
403	config DEBUG_MVEBU_UART
404		bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)"
405		depends on ARCH_MVEBU
406		select DEBUG_UART_8250
407		help
408		  Say Y here if you want kernel low-level debugging support
409		  on MVEBU based platforms.
410
411		  This option should be used with the old bootloaders
412		  that left the internal registers mapped at
413		  0xd0000000. As of today, this is the case on
414		  platforms such as the Globalscale Mirabox or the
415		  Plathome OpenBlocks AX3, when using the original
416		  bootloader.
417
418		  If the wrong DEBUG_MVEBU_UART* option is selected,
419		  when u-boot hands over to the kernel, the system
420		  silently crashes, with no serial output at all.
421
422	config DEBUG_MVEBU_UART_ALTERNATE
423		bool "Kernel low-level debugging messages via MVEBU UART (new bootloaders)"
424		depends on ARCH_MVEBU
425		select DEBUG_UART_8250
426		help
427		  Say Y here if you want kernel low-level debugging support
428		  on MVEBU based platforms.
429
430		  This option should be used with the new bootloaders
431		  that remap the internal registers at 0xf1000000.
432
433		  If the wrong DEBUG_MVEBU_UART* option is selected,
434		  when u-boot hands over to the kernel, the system
435		  silently crashes, with no serial output at all.
436
437	config DEBUG_VF_UART
438		bool "Vybrid UART"
439		depends on SOC_VF610
440		help
441		  Say Y here if you want kernel low-level debugging support
442		  on Vybrid based platforms.
443
444	config DEBUG_NOMADIK_UART
445		bool "Kernel low-level debugging messages via NOMADIK UART"
446		depends on ARCH_NOMADIK
447		select DEBUG_UART_PL01X
448		help
449		  Say Y here if you want kernel low-level debugging support
450		  on NOMADIK based platforms.
451
452	config DEBUG_NSPIRE_CLASSIC_UART
453		bool "Kernel low-level debugging via TI-NSPIRE 8250 UART"
454		depends on ARCH_NSPIRE
455		select DEBUG_UART_8250
456		help
457		  Say Y here if you want kernel low-level debugging support
458		  on TI-NSPIRE classic models.
459
460	config DEBUG_NSPIRE_CX_UART
461		bool "Kernel low-level debugging via TI-NSPIRE PL011 UART"
462		depends on ARCH_NSPIRE
463		select DEBUG_UART_PL01X
464		help
465		  Say Y here if you want kernel low-level debugging support
466		  on TI-NSPIRE CX models.
467
468	config DEBUG_OMAP2UART1
469		bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
470		depends on ARCH_OMAP2PLUS
471		select DEBUG_OMAP2PLUS_UART
472		help
473		  This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
474		  omap3 torpedo and 3530 lv som.
475
476	config DEBUG_OMAP2UART2
477		bool "Kernel low-level debugging messages via OMAP2/3/4 UART2"
478		depends on ARCH_OMAP2PLUS
479		select DEBUG_OMAP2PLUS_UART
480
481	config DEBUG_OMAP2UART3
482		bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)"
483		depends on ARCH_OMAP2PLUS
484		select DEBUG_OMAP2PLUS_UART
485
486	config DEBUG_OMAP3UART3
487		bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)"
488		depends on ARCH_OMAP2PLUS
489		select DEBUG_OMAP2PLUS_UART
490		help
491		  This covers at least cm_t3x, beagle, crane, devkit8000,
492		  igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
493		  and 3517evm.
494
495	config DEBUG_OMAP4UART3
496		bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
497		depends on ARCH_OMAP2PLUS
498		select DEBUG_OMAP2PLUS_UART
499
500	config DEBUG_OMAP3UART4
501		bool "Kernel low-level debugging messages via OMAP36XX UART4"
502		depends on ARCH_OMAP2PLUS
503		select DEBUG_OMAP2PLUS_UART
504
505	config DEBUG_OMAP4UART4
506		bool "Kernel low-level debugging messages via OMAP4/5 UART4"
507		depends on ARCH_OMAP2PLUS
508		select DEBUG_OMAP2PLUS_UART
509
510	config DEBUG_TI81XXUART1
511		bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
512		depends on ARCH_OMAP2PLUS
513		select DEBUG_OMAP2PLUS_UART
514
515	config DEBUG_TI81XXUART2
516		bool "Kernel low-level debugging messages via TI81XX UART2"
517		depends on ARCH_OMAP2PLUS
518		select DEBUG_OMAP2PLUS_UART
519
520	config DEBUG_TI81XXUART3
521		bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)"
522		depends on ARCH_OMAP2PLUS
523		select DEBUG_OMAP2PLUS_UART
524
525	config DEBUG_AM33XXUART1
526		bool "Kernel low-level debugging messages via AM33XX UART1"
527		depends on ARCH_OMAP2PLUS
528		select DEBUG_OMAP2PLUS_UART
529
530	config DEBUG_ZOOM_UART
531		bool "Kernel low-level debugging messages via Zoom2/3 UART"
532		depends on ARCH_OMAP2PLUS
533		select DEBUG_OMAP2PLUS_UART
534
535	config DEBUG_PICOXCELL_UART
536		depends on ARCH_PICOXCELL
537		bool "Use PicoXcell UART for low-level debug"
538		select DEBUG_UART_8250
539		help
540		  Say Y here if you want kernel low-level debugging support
541		  on PicoXcell based platforms.
542
543	config DEBUG_PXA_UART1
544		depends on ARCH_PXA
545		bool "Use PXA UART1 for low-level debug"
546		select DEBUG_UART_8250
547		help
548		  Say Y here if you want kernel low-level debugging support
549		  on PXA UART1.
550
551	config DEBUG_REALVIEW_STD_PORT
552		bool "RealView Default UART"
553		depends on ARCH_REALVIEW
554		select DEBUG_UART_PL01X
555		help
556		  Say Y here if you want the debug print routines to direct
557		  their output to the serial port on RealView EB, PB11MP, PBA8
558		  and PBX platforms.
559
560	config DEBUG_REALVIEW_PB1176_PORT
561		bool "RealView PB1176 UART"
562		depends on MACH_REALVIEW_PB1176
563		select DEBUG_UART_PL01X
564		help
565		  Say Y here if you want the debug print routines to direct
566		  their output to the standard serial port on the RealView
567		  PB1176 platform.
568
569	config DEBUG_RK29_UART0
570		bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
571		depends on ARCH_ROCKCHIP
572		select DEBUG_UART_8250
573		help
574		  Say Y here if you want kernel low-level debugging support
575		  on Rockchip based platforms.
576
577	config DEBUG_RK29_UART1
578		bool "Kernel low-level debugging messages via Rockchip RK29 UART1"
579		depends on ARCH_ROCKCHIP
580		select DEBUG_UART_8250
581		help
582		  Say Y here if you want kernel low-level debugging support
583		  on Rockchip based platforms.
584
585	config DEBUG_RK29_UART2
586		bool "Kernel low-level debugging messages via Rockchip RK29 UART2"
587		depends on ARCH_ROCKCHIP
588		select DEBUG_UART_8250
589		help
590		  Say Y here if you want kernel low-level debugging support
591		  on Rockchip based platforms.
592
593	config DEBUG_RK3X_UART0
594		bool "Kernel low-level debugging messages via Rockchip RK3X UART0"
595		depends on ARCH_ROCKCHIP
596		select DEBUG_UART_8250
597		help
598		  Say Y here if you want kernel low-level debugging support
599		  on Rockchip based platforms.
600
601	config DEBUG_RK3X_UART1
602		bool "Kernel low-level debugging messages via Rockchip RK3X UART1"
603		depends on ARCH_ROCKCHIP
604		select DEBUG_UART_8250
605		help
606		  Say Y here if you want kernel low-level debugging support
607		  on Rockchip based platforms.
608
609	config DEBUG_RK3X_UART2
610		bool "Kernel low-level debugging messages via Rockchip RK3X UART2"
611		depends on ARCH_ROCKCHIP
612		select DEBUG_UART_8250
613		help
614		  Say Y here if you want kernel low-level debugging support
615		  on Rockchip based platforms.
616
617	config DEBUG_RK3X_UART3
618		bool "Kernel low-level debugging messages via Rockchip RK3X UART3"
619		depends on ARCH_ROCKCHIP
620		select DEBUG_UART_8250
621		help
622		  Say Y here if you want kernel low-level debugging support
623		  on Rockchip based platforms.
624
625	config DEBUG_S3C_UART0
626		depends on PLAT_SAMSUNG
627		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
628		bool "Use S3C UART 0 for low-level debug"
629		help
630		  Say Y here if you want the debug print routines to direct
631		  their output to UART 0. The port must have been initialised
632		  by the boot-loader before use.
633
634		  The uncompressor code port configuration is now handled
635		  by CONFIG_S3C_LOWLEVEL_UART_PORT.
636
637	config DEBUG_S3C_UART1
638		depends on PLAT_SAMSUNG
639		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
640		bool "Use S3C UART 1 for low-level debug"
641		help
642		  Say Y here if you want the debug print routines to direct
643		  their output to UART 1. The port must have been initialised
644		  by the boot-loader before use.
645
646		  The uncompressor code port configuration is now handled
647		  by CONFIG_S3C_LOWLEVEL_UART_PORT.
648
649	config DEBUG_S3C_UART2
650		depends on PLAT_SAMSUNG
651		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
652		bool "Use S3C UART 2 for low-level debug"
653		help
654		  Say Y here if you want the debug print routines to direct
655		  their output to UART 2. The port must have been initialised
656		  by the boot-loader before use.
657
658		  The uncompressor code port configuration is now handled
659		  by CONFIG_S3C_LOWLEVEL_UART_PORT.
660
661	config DEBUG_S3C_UART3
662		depends on PLAT_SAMSUNG && ARCH_EXYNOS
663		select DEBUG_EXYNOS_UART
664		bool "Use S3C UART 3 for low-level debug"
665		help
666		  Say Y here if you want the debug print routines to direct
667		  their output to UART 3. The port must have been initialised
668		  by the boot-loader before use.
669
670		  The uncompressor code port configuration is now handled
671		  by CONFIG_S3C_LOWLEVEL_UART_PORT.
672
673	config DEBUG_SOCFPGA_UART
674		depends on ARCH_SOCFPGA
675		bool "Use SOCFPGA UART for low-level debug"
676		select DEBUG_UART_8250
677		help
678		  Say Y here if you want kernel low-level debugging support
679		  on SOCFPGA based platforms.
680
681	config DEBUG_SUNXI_UART0
682		bool "Kernel low-level debugging messages via sunXi UART0"
683		depends on ARCH_SUNXI
684		select DEBUG_UART_8250
685		help
686		  Say Y here if you want kernel low-level debugging support
687		  on Allwinner A1X based platforms on the UART0.
688
689	config DEBUG_SUNXI_UART1
690		bool "Kernel low-level debugging messages via sunXi UART1"
691		depends on ARCH_SUNXI
692		select DEBUG_UART_8250
693		help
694		  Say Y here if you want kernel low-level debugging support
695		  on Allwinner A1X based platforms on the UART1.
696
697	config TEGRA_DEBUG_UART_AUTO_ODMDATA
698		bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
699		depends on ARCH_TEGRA
700		select DEBUG_TEGRA_UART
701		help
702		  Automatically determines which UART to use for low-level
703		  debug based on the ODMDATA value. This value is part of
704		  the BCT, and is written to the boot memory device using
705		  nvflash, or other flashing tool.  When bits 19:18 are 3,
706		  then bits 17:15 indicate which UART to use; 0/1/2/3/4
707		  are UART A/B/C/D/E.
708
709	config TEGRA_DEBUG_UARTA
710		bool "Kernel low-level debugging messages via Tegra UART A"
711		depends on ARCH_TEGRA
712		select DEBUG_TEGRA_UART
713		help
714		  Say Y here if you want kernel low-level debugging support
715		  on Tegra based platforms.
716
717	config TEGRA_DEBUG_UARTB
718		bool "Kernel low-level debugging messages via Tegra UART B"
719		depends on ARCH_TEGRA
720		select DEBUG_TEGRA_UART
721		help
722		  Say Y here if you want kernel low-level debugging support
723		  on Tegra based platforms.
724
725	config TEGRA_DEBUG_UARTC
726		bool "Kernel low-level debugging messages via Tegra UART C"
727		depends on ARCH_TEGRA
728		select DEBUG_TEGRA_UART
729		help
730		  Say Y here if you want kernel low-level debugging support
731		  on Tegra based platforms.
732
733	config TEGRA_DEBUG_UARTD
734		bool "Kernel low-level debugging messages via Tegra UART D"
735		depends on ARCH_TEGRA
736		select DEBUG_TEGRA_UART
737		help
738		  Say Y here if you want kernel low-level debugging support
739		  on Tegra based platforms.
740
741	config TEGRA_DEBUG_UARTE
742		bool "Kernel low-level debugging messages via Tegra UART E"
743		depends on ARCH_TEGRA
744		select DEBUG_TEGRA_UART
745		help
746		  Say Y here if you want kernel low-level debugging support
747		  on Tegra based platforms.
748
749	config DEBUG_SIRFPRIMA2_UART1
750		bool "Kernel low-level debugging messages via SiRFprimaII UART1"
751		depends on ARCH_PRIMA2
752		help
753		  Say Y here if you want the debug print routines to direct
754		  their output to the uart1 port on SiRFprimaII devices.
755
756	config DEBUG_SIRFMARCO_UART1
757		bool "Kernel low-level debugging messages via SiRFmarco UART1"
758		depends on ARCH_MARCO
759		help
760		  Say Y here if you want the debug print routines to direct
761		  their output to the uart1 port on SiRFmarco devices.
762
763	config STIH41X_DEBUG_ASC2
764		bool "Use StiH415/416 ASC2 UART for low-level debug"
765		depends on ARCH_STI
766		select DEBUG_STI_UART
767		help
768		  Say Y here if you want kernel low-level debugging support
769		  on STiH415/416 based platforms like b2000, which has
770		  default UART wired up to ASC2.
771
772		  If unsure, say N.
773
774	config STIH41X_DEBUG_SBC_ASC1
775		bool "Use StiH415/416 SBC ASC1 UART for low-level debug"
776		depends on ARCH_STI
777		select DEBUG_STI_UART
778		help
779		  Say Y here if you want kernel low-level debugging support
780		  on STiH415/416 based platforms like b2020. which has
781		  default UART wired up to SBC ASC1.
782
783		  If unsure, say N.
784
785	config DEBUG_U300_UART
786		bool "Kernel low-level debugging messages via U300 UART0"
787		depends on ARCH_U300
788		select DEBUG_UART_PL01X
789		help
790		  Say Y here if you want the debug print routines to direct
791		  their output to the uart port on U300 devices.
792
793	config DEBUG_UX500_UART
794		depends on ARCH_U8500
795		bool "Use Ux500 UART for low-level debug"
796		help
797		  Say Y here if you want kernel low-level debugging support
798		  on Ux500 based platforms.
799
800	config DEBUG_VEXPRESS_UART0_DETECT
801		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
802		depends on ARCH_VEXPRESS && CPU_CP15_MMU
803		help
804		  This option enables a simple heuristic which tries to determine
805		  the motherboard's memory map variant (original or RS1) and then
806		  choose the relevant UART0 base address.
807
808		  Note that this will only work with standard A-class core tiles,
809		  and may fail with non-standard SMM or custom software models.
810
811	config DEBUG_VEXPRESS_UART0_CA9
812		bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)"
813		depends on ARCH_VEXPRESS
814		select DEBUG_UART_PL01X
815		help
816		  This option selects UART0 at 0x10009000. Except for custom models,
817		  this applies only to the V2P-CA9 tile.
818
819	config DEBUG_VEXPRESS_UART0_RS1
820		bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)"
821		depends on ARCH_VEXPRESS
822		select DEBUG_UART_PL01X
823		help
824		  This option selects UART0 at 0x1c090000. This applies to most
825		  of the tiles using the RS1 memory map, including all new A-class
826		  core tiles, FPGA-based SMMs and software models.
827
828	config DEBUG_VEXPRESS_UART0_CRX
829		bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)"
830		depends on ARCH_VEXPRESS && !MMU
831		select DEBUG_UART_PL01X
832		help
833		  This option selects UART0 at 0xb0090000. This is appropriate for
834		  Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7
835
836	config DEBUG_VT8500_UART0
837		bool "Use UART0 on VIA/Wondermedia SoCs"
838		depends on ARCH_VT8500
839		help
840		  This option selects UART0 on VIA/Wondermedia System-on-a-chip
841		  devices, including VT8500, WM8505, WM8650 and WM8850.
842
843	config DEBUG_LL_UART_NONE
844		bool "No low-level debugging UART"
845		depends on !ARCH_MULTIPLATFORM
846		help
847		  Say Y here if your platform doesn't provide a UART option
848		  above. This relies on your platform choosing the right UART
849		  definition internally in order for low-level debugging to
850		  work.
851
852	config DEBUG_ICEDCC
853		bool "Kernel low-level debugging via EmbeddedICE DCC channel"
854		help
855		  Say Y here if you want the debug print routines to direct
856		  their output to the EmbeddedICE macrocell's DCC channel using
857		  co-processor 14. This is known to work on the ARM9 style ICE
858		  channel and on the XScale with the PEEDI.
859
860		  Note that the system will appear to hang during boot if there
861		  is nothing connected to read from the DCC.
862
863	config DEBUG_SEMIHOSTING
864		bool "Kernel low-level debug output via semihosting I/O"
865		help
866		  Semihosting enables code running on an ARM target to use
867		  the I/O facilities on a host debugger/emulator through a
868		  simple SVC call. The host debugger or emulator must have
869		  semihosting enabled for the special svc call to be trapped
870		  otherwise the kernel will crash.
871
872		  This is known to work with OpenOCD, as well as
873		  ARM's Fast Models, or any other controlling environment
874		  that implements semihosting.
875
876		  For more details about semihosting, please see
877		  chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
878
879	config DEBUG_LL_UART_8250
880		bool "Kernel low-level debugging via 8250 UART"
881		help
882		  Say Y here if you wish the debug print routes to direct
883		  their output to an 8250 UART.  You can use this option
884		  to provide the parameters for the 8250 UART rather than
885		  selecting one of the platform specific options above if
886		  you know the parameters for the port.
887
888		  This option is preferred over the platform specific
889		  options; the platform specific options are deprecated
890		  and will be soon removed.
891
892	config DEBUG_LL_UART_EFM32
893		bool "Kernel low-level debugging via efm32 UART"
894		depends on ARCH_EFM32
895		help
896		  Say Y here if you want the debug print routines to direct
897		  their output to an UART or USART port on efm32 based
898		  machines. Use the following addresses for DEBUG_UART_PHYS:
899
900		    0x4000c000 | USART0
901		    0x4000c400 | USART1
902		    0x4000c800 | USART2
903		    0x4000e000 | UART0
904		    0x4000e400 | UART1
905
906	config DEBUG_LL_UART_PL01X
907		bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
908		help
909		  Say Y here if you wish the debug print routes to direct
910		  their output to a PL01x Primecell UART.  You can use
911		  this option to provide the parameters for the UART
912		  rather than selecting one of the platform specific
913		  options above if you know the parameters for the port.
914
915		  This option is preferred over the platform specific
916		  options; the platform specific options are deprecated
917		  and will be soon removed.
918
919endchoice
920
921config DEBUG_EXYNOS_UART
922	bool
923
924config DEBUG_OMAP2PLUS_UART
925	bool
926	depends on ARCH_OMAP2PLUS
927
928config DEBUG_IMX_UART_PORT
929	int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \
930						DEBUG_IMX25_UART || \
931						DEBUG_IMX21_IMX27_UART || \
932						DEBUG_IMX31_UART || \
933						DEBUG_IMX35_UART || \
934						DEBUG_IMX50_UART || \
935						DEBUG_IMX51_UART || \
936						DEBUG_IMX53_UART || \
937						DEBUG_IMX6Q_UART || \
938						DEBUG_IMX6SL_UART
939	default 1
940	depends on ARCH_MXC
941	help
942	  Choose UART port on which kernel low-level debug messages
943	  should be output.
944
945config DEBUG_TEGRA_UART
946	bool
947	depends on ARCH_TEGRA
948
949config DEBUG_STI_UART
950	bool
951	depends on ARCH_STI
952
953config DEBUG_MSM_UART
954	bool
955	depends on ARCH_MSM || ARCH_QCOM
956
957config DEBUG_LL_INCLUDE
958	string
959	default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
960	default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
961	default "debug/exynos.S" if DEBUG_EXYNOS_UART
962	default "debug/efm32.S" if DEBUG_LL_UART_EFM32
963	default "debug/icedcc.S" if DEBUG_ICEDCC
964	default "debug/imx.S" if DEBUG_IMX1_UART || \
965				 DEBUG_IMX25_UART || \
966				 DEBUG_IMX21_IMX27_UART || \
967				 DEBUG_IMX31_UART || \
968				 DEBUG_IMX35_UART || \
969				 DEBUG_IMX50_UART || \
970				 DEBUG_IMX51_UART || \
971				 DEBUG_IMX53_UART ||\
972				 DEBUG_IMX6Q_UART || \
973				 DEBUG_IMX6SL_UART
974	default "debug/msm.S" if DEBUG_MSM_UART
975	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
976	default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
977	default "debug/sti.S" if DEBUG_STI_UART
978	default "debug/tegra.S" if DEBUG_TEGRA_UART
979	default "debug/ux500.S" if DEBUG_UX500_UART
980	default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
981	default "debug/vf.S" if DEBUG_VF_UART
982	default "debug/vt8500.S" if DEBUG_VT8500_UART0
983	default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
984	default "mach/debug-macro.S"
985
986# Compatibility options for PL01x
987config DEBUG_UART_PL01X
988	def_bool ARCH_EP93XX || \
989		ARCH_INTEGRATOR || \
990		ARCH_SPEAR3XX || \
991		ARCH_SPEAR6XX || \
992		ARCH_SPEAR13XX || \
993		ARCH_VERSATILE
994
995# Compatibility options for 8250
996config DEBUG_UART_8250
997	def_bool ARCH_DOVE || ARCH_EBSA110 || \
998		(FOOTBRIDGE && !DEBUG_DC21285_PORT) || \
999		ARCH_GEMINI || ARCH_IOP13XX || ARCH_IOP32X || \
1000		ARCH_IOP33X || ARCH_IXP4XX || ARCH_KIRKWOOD || \
1001		ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC
1002
1003config DEBUG_UART_PHYS
1004	hex "Physical base address of debug UART"
1005	default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0
1006	default 0x01c28000 if DEBUG_SUNXI_UART0
1007	default 0x01c28400 if DEBUG_SUNXI_UART1
1008	default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
1009	default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
1010	default 0x02530c00 if DEBUG_KEYSTONE_UART0
1011	default 0x02531000 if DEBUG_KEYSTONE_UART1
1012	default 0x03010fe0 if ARCH_RPC
1013	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \
1014				DEBUG_VEXPRESS_UART0_CA9
1015	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
1016	default 0x10124000 if DEBUG_RK3X_UART0
1017	default 0x10126000 if DEBUG_RK3X_UART1
1018	default 0x101f1000 if ARCH_VERSATILE
1019	default 0x101fb000 if DEBUG_NOMADIK_UART
1020	default 0x16000000 if ARCH_INTEGRATOR
1021	default 0x18000300 if DEBUG_BCM_5301X
1022	default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
1023	default 0x20060000 if DEBUG_RK29_UART0
1024	default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1025	default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1026	default 0x20201000 if DEBUG_BCM2835
1027	default 0x3e000000 if DEBUG_BCM_KONA_UART
1028	default 0x4000e400 if DEBUG_LL_UART_EFM32
1029	default 0x40090000 if ARCH_LPC32XX
1030	default 0x40100000 if DEBUG_PXA_UART1
1031	default 0x42000000 if ARCH_GEMINI
1032	default 0x7c0003f8 if FOOTBRIDGE
1033	default 0x80230000 if DEBUG_PICOXCELL_UART
1034	default 0x80070000 if DEBUG_IMX23_UART
1035	default 0x80074000 if DEBUG_IMX28_UART
1036	default 0x808c0000 if ARCH_EP93XX
1037	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1038	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
1039	default 0xc0013000 if DEBUG_U300_UART
1040	default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1041	default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1042	default 0xd0000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
1043	default 0xd0012000 if DEBUG_MVEBU_UART
1044	default 0xd4017000 if DEBUG_MMP_UART2
1045	default 0xd4018000 if DEBUG_MMP_UART3
1046	default 0xe0000000 if ARCH_SPEAR13XX
1047	default 0xf0000be0 if ARCH_EBSA110
1048	default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
1049	default 0xf1012000 if ARCH_DOVE || ARCH_KIRKWOOD || ARCH_MV78XX0 || \
1050				ARCH_ORION5X
1051	default 0xf7fc9000 if DEBUG_BERLIN_UART
1052	default 0xf8b00000 if DEBUG_HI3716_UART
1053	default 0xfcb00000 if DEBUG_HI3620_UART
1054	default 0xfe800000 if ARCH_IOP32X
1055	default 0xffc02000 if DEBUG_SOCFPGA_UART
1056	default 0xffd82340 if ARCH_IOP13XX
1057	default 0xfff36000 if DEBUG_HIGHBANK_UART
1058	default 0xfffff700 if ARCH_IOP33X
1059	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1060		DEBUG_LL_UART_EFM32 || \
1061		DEBUG_UART_8250 || DEBUG_UART_PL01X
1062
1063config DEBUG_UART_VIRT
1064	hex "Virtual base address of debug UART"
1065	default 0xe0010fe0 if ARCH_RPC
1066	default 0xf0000be0 if ARCH_EBSA110
1067	default 0xf0009000 if DEBUG_CNS3XXX
1068	default 0xf01fb000 if DEBUG_NOMADIK_UART
1069	default 0xf0201000 if DEBUG_BCM2835
1070	default 0xf1000300 if DEBUG_BCM_5301X
1071	default 0xf11f1000 if ARCH_VERSATILE
1072	default 0xf1600000 if ARCH_INTEGRATOR
1073	default 0xf1c28000 if DEBUG_SUNXI_UART0
1074	default 0xf1c28400 if DEBUG_SUNXI_UART1
1075	default 0xf2100000 if DEBUG_PXA_UART1
1076	default 0xf4090000 if ARCH_LPC32XX
1077	default 0xf4200000 if ARCH_GEMINI
1078	default 0xf7fc9000 if DEBUG_BERLIN_UART
1079	default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
1080	default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
1081	default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
1082	default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
1083	default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
1084	default 0xfd000000 if ARCH_SPEAR13XX
1085	default 0xfd012000 if ARCH_MV78XX0
1086	default 0xfde12000 if ARCH_DOVE
1087	default 0xfe012000 if ARCH_ORION5X
1088	default 0xfe017000 if DEBUG_MMP_UART2
1089	default 0xfe018000 if DEBUG_MMP_UART3
1090	default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
1091	default 0xfe230000 if DEBUG_PICOXCELL_UART
1092	default 0xfe300000 if DEBUG_BCM_KONA_UART
1093	default 0xfe800000 if ARCH_IOP32X
1094	default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HI3716_UART
1095	default 0xfeb24000 if DEBUG_RK3X_UART0
1096	default 0xfeb26000 if DEBUG_RK3X_UART1
1097	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
1098	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
1099	default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
1100	default 0xfed60000 if DEBUG_RK29_UART0
1101	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1102	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1103	default 0xfec02000 if DEBUG_SOCFPGA_UART
1104	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
1105	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
1106	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
1107	default 0xfed12000 if ARCH_KIRKWOOD
1108	default 0xfedc0000 if ARCH_EP93XX
1109	default 0xfee003f8 if FOOTBRIDGE
1110	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1111	default 0xfef36000 if DEBUG_HIGHBANK_UART
1112	default 0xfee82340 if ARCH_IOP13XX
1113	default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1114	default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1115	default 0xfefff700 if ARCH_IOP33X
1116	default 0xff003000 if DEBUG_U300_UART
1117	default DEBUG_UART_PHYS if !MMU
1118	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1119		DEBUG_UART_8250 || DEBUG_UART_PL01X
1120
1121config DEBUG_UART_8250_SHIFT
1122	int "Register offset shift for the 8250 debug UART"
1123	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1124	default 0 if FOOTBRIDGE || ARCH_IOP32X
1125	default 2
1126
1127config DEBUG_UART_8250_WORD
1128	bool "Use 32-bit accesses for 8250 UART"
1129	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1130	depends on DEBUG_UART_8250_SHIFT >= 2
1131	default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
1132		ARCH_KEYSTONE || \
1133		DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
1134		DEBUG_DAVINCI_DA8XX_UART2 || \
1135		DEBUG_BCM_KONA_UART
1136
1137config DEBUG_UART_8250_FLOW_CONTROL
1138	bool "Enable flow control for 8250 UART"
1139	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1140	default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_GEMINI || ARCH_RPC
1141
1142config DEBUG_UNCOMPRESS
1143	bool
1144	depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG
1145	default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
1146		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM)
1147	help
1148	  This option influences the normal decompressor output for
1149	  multiplatform kernels.  Normally, multiplatform kernels disable
1150	  decompressor output because it is not possible to know where to
1151	  send the decompressor output.
1152
1153	  When this option is set, the selected DEBUG_LL output method
1154	  will be re-used for normal decompressor output on multiplatform
1155	  kernels.
1156
1157
1158config UNCOMPRESS_INCLUDE
1159	string
1160	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
1161					PLAT_SAMSUNG || ARCH_EFM32
1162	default "mach/uncompress.h"
1163
1164config EARLY_PRINTK
1165	bool "Early printk"
1166	depends on DEBUG_LL
1167	help
1168	  Say Y here if you want to have an early console using the
1169	  kernel low-level debugging functions. Add earlyprintk to your
1170	  kernel parameters to enable this console.
1171
1172config OC_ETM
1173	bool "On-chip ETM and ETB"
1174	depends on ARM_AMBA
1175	help
1176	  Enables the on-chip embedded trace macrocell and embedded trace
1177	  buffer driver that will allow you to collect traces of the
1178	  kernel code.
1179
1180config ARM_KPROBES_TEST
1181	tristate "Kprobes test module"
1182	depends on KPROBES && MODULES
1183	help
1184	  Perform tests of kprobes API and instruction set simulation.
1185
1186config PID_IN_CONTEXTIDR
1187	bool "Write the current PID to the CONTEXTIDR register"
1188	depends on CPU_COPY_V6
1189	help
1190	  Enabling this option causes the kernel to write the current PID to
1191	  the PROCID field of the CONTEXTIDR register, at the expense of some
1192	  additional instructions during context switch. Say Y here only if you
1193	  are planning to use hardware trace tools with this kernel.
1194
1195config DEBUG_SET_MODULE_RONX
1196	bool "Set loadable kernel module data as NX and text as RO"
1197	depends on MODULES
1198	---help---
1199	  This option helps catch unintended modifications to loadable
1200	  kernel module's text and read-only data. It also prevents execution
1201	  of module data. Such protection may interfere with run-time code
1202	  patching and dynamic kernel tracing - and they might also protect
1203	  against certain classes of kernel exploits.
1204	  If in doubt, say "N".
1205
1206endmenu
1207