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