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