xref: /openbmc/linux/arch/arm/Kconfig.debug (revision 31eeb6b0)
1# SPDX-License-Identifier: GPL-2.0
2
3config ARM_PTDUMP_CORE
4	def_bool n
5
6config ARM_PTDUMP_DEBUGFS
7	bool "Export kernel pagetable layout to userspace via debugfs"
8	depends on DEBUG_KERNEL
9	depends on MMU
10	select ARM_PTDUMP_CORE
11	select DEBUG_FS
12	help
13	  Say Y here if you want to show the kernel pagetable layout in a
14	  debugfs file. This information is only useful for kernel developers
15	  who are working in architecture specific areas of the kernel.
16	  It is probably not a good idea to enable this feature in a production
17	  kernel.
18	  If in doubt, say "N"
19
20config DEBUG_WX
21	bool "Warn on W+X mappings at boot"
22	depends on MMU
23	select ARM_PTDUMP_CORE
24	help
25		Generate a warning if any W+X mappings are found at boot.
26
27		This is useful for discovering cases where the kernel is leaving
28		W+X mappings after applying NX, as such mappings are a security risk.
29
30		Look for a message in dmesg output like this:
31
32			arm/mm: Checked W+X mappings: passed, no W+X pages found.
33
34		or like this, if the check failed:
35
36			arm/mm: Checked W+X mappings: FAILED, <N> W+X pages found.
37
38		Note that even if the check fails, your kernel is possibly
39		still fine, as W+X mappings are not a security hole in
40		themselves, what they do is that they make the exploitation
41		of other unfixed kernel bugs easier.
42
43		There is no runtime or memory usage effect of this option
44		once the kernel has booted up - it's a one time check.
45
46		If in doubt, say "Y".
47
48choice
49	prompt "Choose kernel unwinder"
50	default UNWINDER_ARM if AEABI
51	default UNWINDER_FRAME_POINTER if !AEABI
52	help
53	  This determines which method will be used for unwinding kernel stack
54	  traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack,
55	  livepatch, lockdep, and more.
56
57config UNWINDER_FRAME_POINTER
58	bool "Frame pointer unwinder"
59	depends on !THUMB2_KERNEL
60	select ARCH_WANT_FRAME_POINTERS
61	select FRAME_POINTER
62	help
63	  This option enables the frame pointer unwinder for unwinding
64	  kernel stack traces.
65
66config UNWINDER_ARM
67	bool "ARM EABI stack unwinder"
68	depends on AEABI && !FUNCTION_GRAPH_TRACER
69	select ARM_UNWIND
70	help
71	  This option enables stack unwinding support in the kernel
72	  using the information automatically generated by the
73	  compiler. The resulting kernel image is slightly bigger but
74	  the performance is not affected. Currently, this feature
75	  only works with EABI compilers.
76
77endchoice
78
79config ARM_UNWIND
80	bool
81
82config BACKTRACE_VERBOSE
83	bool "Verbose backtrace"
84	depends on EXPERT
85	help
86	  When the kernel produces a warning or oops, the kernel prints a
87	  trace of the call chain. This option controls whether we include
88	  the numeric addresses or only include the symbolic information.
89
90	  In most cases, say N here, unless you are intending to debug the
91	  kernel and have access to the kernel binary image.
92
93config FRAME_POINTER
94	bool
95
96config DEBUG_USER
97	bool "Verbose user fault messages"
98	help
99	  When a user program crashes due to an exception, the kernel can
100	  print a brief message explaining what the problem was. This is
101	  sometimes helpful for debugging but serves no purpose on a
102	  production system. Most people should say N here.
103
104	  In addition, you need to pass user_debug=N on the kernel command
105	  line to enable this feature.  N consists of the sum of:
106
107	      1 - undefined instruction events
108	      2 - system calls
109	      4 - invalid data aborts
110	      8 - SIGSEGV faults
111	     16 - SIGBUS faults
112
113# These options are only for real kernel hackers who want to get their hands dirty.
114config DEBUG_LL
115	bool "Kernel low-level debugging functions (read help!)"
116	depends on DEBUG_KERNEL
117	help
118	  Say Y here to include definitions of printascii, printch, printhex
119	  in the kernel.  This is helpful if you are debugging code that
120	  executes before the console is initialized.
121
122	  Note that selecting this option will limit the kernel to a single
123	  UART definition, as specified below. Attempting to boot the kernel
124	  image on a different platform *will not work*, so this option should
125	  not be enabled for kernels that are intended to be portable.
126
127choice
128	prompt "Kernel low-level debugging port"
129	depends on DEBUG_LL
130
131	config DEBUG_ALPINE_UART0
132		bool "Kernel low-level debugging messages via Alpine UART0"
133		depends on ARCH_ALPINE
134		select DEBUG_UART_8250
135		help
136		  Say Y here if you want kernel low-level debugging support
137		  on Alpine based platforms.
138
139	config DEBUG_ASM9260_UART
140		bool "Kernel low-level debugging via asm9260 UART"
141		depends on MACH_ASM9260
142		help
143		  Say Y here if you want the debug print routines to direct
144		  their output to an UART or USART port on asm9260 based
145		  machines.
146
147		    DEBUG_UART_PHYS | DEBUG_UART_VIRT
148
149		    0x80000000      | 0xf0000000     | UART0
150		    0x80004000      | 0xf0004000     | UART1
151		    0x80008000      | 0xf0008000     | UART2
152		    0x8000c000      | 0xf000c000     | UART3
153		    0x80010000      | 0xf0010000     | UART4
154		    0x80014000      | 0xf0014000     | UART5
155		    0x80018000      | 0xf0018000     | UART6
156		    0x8001c000      | 0xf001c000     | UART7
157		    0x80020000      | 0xf0020000     | UART8
158		    0x80024000      | 0xf0024000     | UART9
159
160	config DEBUG_AT91_RM9200_DBGU
161		bool "Kernel low-level debugging on AT91RM9200, AT91SAM9, SAM9X60 DBGU"
162		select DEBUG_AT91_UART
163		depends on SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60
164		help
165		  Say Y here if you want kernel low-level debugging support
166		  on the DBGU port of:
167		    at91rm9200, at91sam9260, at91sam9g20, at91sam9261,
168		    at91sam9g10, at91sam9n12, at91sam9rl64, at91sam9x5, sam9x60
169
170	config DEBUG_AT91_SAM9263_DBGU
171		bool "Kernel low-level debugging on AT91SAM{9263,9G45,A5D3} DBGU"
172		select DEBUG_AT91_UART
173		depends on SOC_AT91SAM9 || SOC_SAMA5D3
174		help
175		  Say Y here if you want kernel low-level debugging support
176		  on the DBGU port of:
177		    at91sam9263, at91sam9g45, at91sam9m10,
178		    sama5d3
179
180	config DEBUG_AT91_SAMA5D2_UART1
181		bool "Kernel low-level debugging on SAMA5D2 UART1"
182		select DEBUG_AT91_UART
183		depends on SOC_SAMA5D2
184		help
185		  Say Y here if you want kernel low-level debugging support
186		  on the UART1 port of sama5d2.
187
188	config DEBUG_AT91_SAMA5D4_USART3
189		bool "Kernel low-level debugging on SAMA5D4 USART3"
190		select DEBUG_AT91_UART
191		depends on SOC_SAMA5D4
192		help
193		  Say Y here if you want kernel low-level debugging support
194		  on the USART3 port of sama5d4.
195
196	config DEBUG_AT91_SAMV7_USART1
197		bool "Kernel low-level debugging via SAMV7 USART1"
198		select DEBUG_AT91_UART
199		depends on SOC_SAMV7
200		help
201		  Say Y here if you want the debug print routines to direct
202		  their output to the USART1 port on SAMV7 based
203		  machines.
204
205	config DEBUG_AT91_SAMA7G5_FLEXCOM3
206		bool "Kernel low-level debugging on SAMA7G5 FLEXCOM3"
207		select DEBUG_AT91_UART
208		depends on SOC_SAMA7G5
209		help
210		  Say Y here if you want kernel low-level debugging support
211		  on the FLEXCOM3 port of SAMA7G5.
212
213	config DEBUG_BCM2835
214		bool "Kernel low-level debugging on BCM2835 PL011 UART"
215		depends on ARCH_BCM2835 && ARCH_MULTI_V6
216		select DEBUG_UART_PL01X
217
218	config DEBUG_BCM2836
219		bool "Kernel low-level debugging on BCM2836 PL011 UART"
220		depends on ARCH_BCM2835 && ARCH_MULTI_V7
221		select DEBUG_UART_PL01X
222
223	config DEBUG_BCM_5301X
224		bool "Kernel low-level debugging on BCM5301X/NSP UART1"
225		depends on ARCH_BCM_5301X || ARCH_BCM_NSP
226		select DEBUG_UART_8250
227
228	config DEBUG_BCM_HR2
229		bool "Kernel low-level debugging on Hurricane 2 UART2"
230		depends on ARCH_BCM_HR2
231		select DEBUG_UART_8250
232
233	config DEBUG_BCM_IPROC_UART3
234		bool "Kernel low-level debugging on BCM IPROC UART3"
235		depends on ARCH_BCM_CYGNUS
236		select DEBUG_UART_8250
237		help
238		  Say Y here if you want the debug print routines to direct
239		  their output to the third serial port on these devices.
240
241	config DEBUG_BCM_KONA_UART
242		bool "Kernel low-level debugging messages via BCM KONA UART"
243		depends on ARCH_BCM_MOBILE
244		select DEBUG_UART_8250
245		help
246		  Say Y here if you want kernel low-level debugging support
247		  on Broadcom SoC platforms.
248		  This low level debug works for Broadcom
249		  mobile SoCs in the Kona family of chips (e.g. bcm28155,
250		  bcm11351, etc...)
251
252	config DEBUG_BCM63XX_UART
253		bool "Kernel low-level debugging on BCM63XX UART"
254		depends on ARCH_BCM_63XX
255
256	config DEBUG_BERLIN_UART
257		bool "Marvell Berlin SoC Debug UART"
258		depends on ARCH_BERLIN
259		select DEBUG_UART_8250
260		help
261		  Say Y here if you want kernel low-level debugging support
262		  on Marvell Berlin SoC based platforms.
263
264	config DEBUG_BRCMSTB_UART
265		bool "Use BRCMSTB UART for low-level debug"
266		depends on ARCH_BRCMSTB
267		help
268		  Say Y here if you want the debug print routines to direct
269		  their output to the first serial port on these devices. The
270		  UART physical and virtual address is automatically provided
271		  based on the chip identification register value.
272
273		  If you have a Broadcom STB chip and would like early print
274		  messages to appear over the UART, select this option.
275
276	config DEBUG_CLPS711X_UART1
277		bool "Kernel low-level debugging messages via UART1"
278		depends on ARCH_CLPS711X
279		help
280		  Say Y here if you want the debug print routines to direct
281		  their output to the first serial port on these devices.
282
283	config DEBUG_CLPS711X_UART2
284		bool "Kernel low-level debugging messages via UART2"
285		depends on ARCH_CLPS711X
286		help
287		  Say Y here if you want the debug print routines to direct
288		  their output to the second serial port on these devices.
289
290	config DEBUG_CNS3XXX
291		bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
292		depends on ARCH_CNS3XXX
293		select DEBUG_UART_8250
294		help
295		  Say Y here if you want the debug print routines to direct
296                  their output to the CNS3xxx UART0.
297
298	config DEBUG_DAVINCI_DA8XX_UART1
299		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
300		depends on ARCH_DAVINCI_DA8XX
301		select DEBUG_UART_8250
302		help
303		  Say Y here if you want the debug print routines to direct
304		  their output to UART1 serial port on DaVinci DA8XX devices.
305
306	config DEBUG_DAVINCI_DA8XX_UART2
307		bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
308		depends on ARCH_DAVINCI_DA8XX
309		select DEBUG_UART_8250
310		help
311		  Say Y here if you want the debug print routines to direct
312		  their output to UART2 serial port on DaVinci DA8XX devices.
313
314	config DEBUG_DAVINCI_DMx_UART0
315		bool "Kernel low-level debugging on DaVinci DMx using UART0"
316		depends on ARCH_DAVINCI_DMx
317		select DEBUG_UART_8250
318		help
319		  Say Y here if you want the debug print routines to direct
320		  their output to UART0 serial port on DaVinci DMx devices.
321
322	config DEBUG_DC21285_PORT
323		bool "Kernel low-level debugging messages via footbridge serial port"
324		depends on FOOTBRIDGE
325		help
326		  Say Y here if you want the debug print routines to direct
327		  their output to the serial port in the DC21285 (Footbridge).
328
329	config DEBUG_DIGICOLOR_UA0
330		bool "Kernel low-level debugging messages via Digicolor UA0"
331		depends on ARCH_DIGICOLOR
332		help
333		  Say Y here if you want the debug print routines to direct
334		  their output to the UA0 serial port in the CX92755.
335
336	config DEBUG_EP93XX
337		bool "Kernel low-level debugging messages via ep93xx UART"
338		depends on ARCH_EP93XX
339		select DEBUG_UART_PL01X
340		help
341		  Say Y here if you want kernel low-level debugging support
342		  on Cirrus Logic EP93xx based platforms.
343
344	config DEBUG_FOOTBRIDGE_COM1
345		bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
346		depends on FOOTBRIDGE
347		select DEBUG_UART_8250
348		help
349		  Say Y here if you want the debug print routines to direct
350		  their output to the 8250 at PCI COM1.
351
352	config DEBUG_GEMINI
353		bool "Kernel low-level debugging messages via Cortina Systems Gemini UART"
354		depends on ARCH_GEMINI
355		select DEBUG_UART_8250
356		help
357		  Say Y here if you want kernel low-level debugging support
358		  on Cortina Gemini based platforms.
359
360	config DEBUG_HI3620_UART
361		bool "Hisilicon HI3620 Debug UART"
362		depends on ARCH_HI3xxx
363		select DEBUG_UART_PL01X
364		help
365		  Say Y here if you want kernel low-level debugging support
366		  on HI3620 UART.
367
368	config DEBUG_HIGHBANK_UART
369		bool "Kernel low-level debugging messages via Highbank UART"
370		depends on ARCH_HIGHBANK
371		select DEBUG_UART_PL01X
372		help
373		  Say Y here if you want the debug print routines to direct
374		  their output to the UART on Highbank based devices.
375
376	config DEBUG_HIP01_UART
377		bool "Hisilicon Hip01 Debug UART"
378		depends on ARCH_HIP01
379		select DEBUG_UART_8250
380		help
381		  Say Y here if you want kernel low-level debugging support
382		  on HIP01 UART.
383
384	config DEBUG_HIP04_UART
385		bool "Hisilicon HiP04 Debug UART"
386		depends on ARCH_HIP04
387		select DEBUG_UART_8250
388		help
389		  Say Y here if you want kernel low-level debugging support
390		  on HIP04 UART.
391
392	config DEBUG_HIX5HD2_UART
393		bool "Hisilicon Hix5hd2 Debug UART"
394		depends on ARCH_HIX5HD2
395		select DEBUG_UART_PL01X
396		help
397		  Say Y here if you want kernel low-level debugging support
398		  on Hix5hd2 UART.
399
400	config DEBUG_IMX1_UART
401		bool "i.MX1 Debug UART"
402		depends on SOC_IMX1
403		help
404		  Say Y here if you want kernel low-level debugging support
405		  on i.MX1.
406
407	config DEBUG_IMX23_UART
408		bool "i.MX23 Debug UART"
409		depends on SOC_IMX23
410		select DEBUG_UART_PL01X
411		help
412		  Say Y here if you want kernel low-level debugging support
413		  on i.MX23.
414
415	config DEBUG_IMX25_UART
416		bool "i.MX25 Debug UART"
417		depends on SOC_IMX25
418		help
419		  Say Y here if you want kernel low-level debugging support
420		  on i.MX25.
421
422	config DEBUG_IMX27_UART
423		bool "i.MX27 Debug UART"
424		depends on SOC_IMX27
425		help
426		  Say Y here if you want kernel low-level debugging support
427		  on i.MX27.
428
429	config DEBUG_IMX28_UART
430		bool "i.MX28 Debug UART"
431		depends on SOC_IMX28
432		select DEBUG_UART_PL01X
433		help
434		  Say Y here if you want kernel low-level debugging support
435		  on i.MX28.
436
437	config DEBUG_IMX31_UART
438		bool "i.MX31 Debug UART"
439		depends on SOC_IMX31
440		help
441		  Say Y here if you want kernel low-level debugging support
442		  on i.MX31.
443
444	config DEBUG_IMX35_UART
445		bool "i.MX35 Debug UART"
446		depends on SOC_IMX35
447		help
448		  Say Y here if you want kernel low-level debugging support
449		  on i.MX35.
450
451	config DEBUG_IMX50_UART
452		bool "i.MX50 Debug UART"
453		depends on SOC_IMX50
454		help
455		  Say Y here if you want kernel low-level debugging support
456		  on i.MX50.
457
458	config DEBUG_IMX51_UART
459		bool "i.MX51 Debug UART"
460		depends on SOC_IMX51
461		help
462		  Say Y here if you want kernel low-level debugging support
463		  on i.MX51.
464
465	config DEBUG_IMX53_UART
466		bool "i.MX53 Debug UART"
467		depends on SOC_IMX53
468		help
469		  Say Y here if you want kernel low-level debugging support
470		  on i.MX53.
471
472	config DEBUG_IMX6Q_UART
473		bool "i.MX6Q/DL Debug UART"
474		depends on SOC_IMX6Q
475		help
476		  Say Y here if you want kernel low-level debugging support
477		  on i.MX6Q/DL.
478
479	config DEBUG_IMX6SL_UART
480		bool "i.MX6SL Debug UART"
481		depends on SOC_IMX6SL
482		help
483		  Say Y here if you want kernel low-level debugging support
484		  on i.MX6SL.
485
486	config DEBUG_IMX6SX_UART
487		bool "i.MX6SX Debug UART"
488		depends on SOC_IMX6SX
489		help
490		  Say Y here if you want kernel low-level debugging support
491		  on i.MX6SX.
492
493	config DEBUG_IMX6UL_UART
494		bool "i.MX6UL Debug UART"
495		depends on SOC_IMX6UL
496		help
497		  Say Y here if you want kernel low-level debugging support
498		  on i.MX6UL.
499
500	config DEBUG_IMX7D_UART
501		bool "i.MX7D Debug UART"
502		depends on SOC_IMX7D
503		help
504		  Say Y here if you want kernel low-level debugging support
505		  on i.MX7D.
506
507	config DEBUG_INTEGRATOR
508		bool "Kernel low-level debugging messages via ARM Integrator UART"
509		depends on ARCH_INTEGRATOR
510		select DEBUG_UART_PL01X
511		help
512		  Say Y here if you want kernel low-level debugging support
513		  on ARM Integrator platforms.
514
515	config DEBUG_KEYSTONE_UART0
516		bool "Kernel low-level debugging on KEYSTONE2 using UART0"
517		depends on ARCH_KEYSTONE
518		select DEBUG_UART_8250
519		help
520		  Say Y here if you want the debug print routines to direct
521		  their output to UART0 serial port on KEYSTONE2 devices.
522
523	config DEBUG_KEYSTONE_UART1
524		bool "Kernel low-level debugging on KEYSTONE2 using UART1"
525		depends on ARCH_KEYSTONE
526		select DEBUG_UART_8250
527		help
528		  Say Y here if you want the debug print routines to direct
529		  their output to UART1 serial port on KEYSTONE2 devices.
530
531	config DEBUG_LPC18XX_UART0
532		bool "Kernel low-level debugging via LPC18xx/43xx UART0"
533		depends on ARCH_LPC18XX
534		select DEBUG_UART_8250
535		help
536		  Say Y here if you want kernel low-level debugging support
537		  on NXP LPC18xx/43xx UART0.
538
539	config DEBUG_LPC32XX
540		bool "Kernel low-level debugging messages via NXP LPC32xx UART"
541		depends on ARCH_LPC32XX
542		select DEBUG_UART_8250
543		help
544		  Say Y here if you want kernel low-level debugging support
545		  on NXP LPC32xx based platforms.
546
547	config DEBUG_MESON_UARTAO
548		bool "Kernel low-level debugging via Meson6 UARTAO"
549		depends on ARCH_MESON
550		help
551		  Say Y here if you want kernel low-lever debugging support
552		  on Amlogic Meson6 based platforms on the UARTAO.
553
554	config DEBUG_MMP_UART2
555		bool "Kernel low-level debugging message via MMP UART2"
556		depends on ARCH_MMP
557		select DEBUG_UART_8250
558		help
559		  Say Y here if you want kernel low-level debugging support
560		  on MMP UART2.
561
562	config DEBUG_MMP_UART3
563		bool "Kernel low-level debugging message via MMP UART3"
564		depends on ARCH_MMP
565		select DEBUG_UART_8250
566		help
567		  Say Y here if you want kernel low-level debugging support
568		  on MMP UART3.
569
570	config DEBUG_MVEBU_UART0
571		bool "Kernel low-level debugging messages via MVEBU UART0 (old bootloaders)"
572		depends on ARCH_MVEBU
573		depends on ARCH_MVEBU && CPU_V7
574		select DEBUG_UART_8250
575		help
576		  Say Y here if you want kernel low-level debugging support
577		  on MVEBU based platforms on UART0.
578
579		  This option should be used with the old bootloaders
580		  that left the internal registers mapped at
581		  0xd0000000. As of today, this is the case on
582		  platforms such as the Globalscale Mirabox or the
583		  Plathome OpenBlocks AX3, when using the original
584		  bootloader.
585
586		  This option will not work on older Marvell platforms
587		  (Kirkwood, Dove, MV78xx0, Orion5x), which should pick
588		  the "new bootloader" variant.
589
590		  If the wrong DEBUG_MVEBU_UART* option is selected,
591		  when u-boot hands over to the kernel, the system
592		  silently crashes, with no serial output at all.
593
594	config DEBUG_MVEBU_UART0_ALTERNATE
595		bool "Kernel low-level debugging messages via MVEBU UART0 (new bootloaders)"
596		depends on ARCH_MVEBU || ARCH_DOVE || ARCH_MV78XX0 || ARCH_ORION5X
597		select DEBUG_UART_8250
598		help
599		  Say Y here if you want kernel low-level debugging support
600		  on MVEBU based platforms on UART0. (Armada XP, Armada 3xx,
601		  Kirkwood, Dove, MV78xx0, Orion5x).
602
603
604		  This option should be used with the new bootloaders
605		  that remap the internal registers at 0xf1000000.
606
607		  If the wrong DEBUG_MVEBU_UART* option is selected,
608		  when u-boot hands over to the kernel, the system
609		  silently crashes, with no serial output at all.
610
611	config DEBUG_MVEBU_UART1_ALTERNATE
612		bool "Kernel low-level debugging messages via MVEBU UART1 (new bootloaders)"
613		depends on ARCH_MVEBU
614		select DEBUG_UART_8250
615		help
616		  Say Y here if you want kernel low-level debugging support
617		  on MVEBU based platforms on UART1. (Armada XP, Armada 3xx,
618		  Kirkwood, Dove, MV78xx0, Orion5x).
619
620		  This option should be used with the new bootloaders
621		  that remap the internal registers at 0xf1000000.
622		  All of the older (pre Armada XP/370) platforms also use
623		  this address, regardless of the boot loader version.
624
625		  If the wrong DEBUG_MVEBU_UART* option is selected,
626		  when u-boot hands over to the kernel, the system
627		  silently crashes, with no serial output at all.
628
629	config DEBUG_MSTARV7_PMUART
630		bool "Kernel low-level debugging messages via MSTARV7 PM UART"
631		depends on ARCH_MSTARV7
632		select DEBUG_UART_8250
633		help
634		  Say Y here if you want kernel low-level debugging support
635		  for MSTAR ARMv7-based platforms on PM UART.
636
637	config DEBUG_MT6589_UART0
638		bool "Mediatek mt6589 UART0"
639		depends on ARCH_MEDIATEK
640		select DEBUG_UART_8250
641		help
642		  Say Y here if you want kernel low-level debugging support
643		  for Mediatek mt6589 based platforms on UART0.
644
645	config DEBUG_MT8127_UART0
646		bool "Mediatek mt8127/mt6592 UART0"
647		depends on ARCH_MEDIATEK
648		select DEBUG_UART_8250
649		help
650		  Say Y here if you want kernel low-level debugging support
651		  for Mediatek mt8127 based platforms on UART0.
652
653	config DEBUG_MT8135_UART3
654		bool "Mediatek mt8135 UART3"
655		depends on ARCH_MEDIATEK
656		select DEBUG_UART_8250
657		help
658		  Say Y here if you want kernel low-level debugging support
659		  for Mediatek mt8135 based platforms on UART3.
660
661	config DEBUG_NOMADIK_UART
662		bool "Kernel low-level debugging messages via NOMADIK UART"
663		depends on ARCH_NOMADIK
664		select DEBUG_UART_PL01X
665		help
666		  Say Y here if you want kernel low-level debugging support
667		  on NOMADIK based platforms.
668
669	config DEBUG_NSPIRE_CLASSIC_UART
670		bool "Kernel low-level debugging via TI-NSPIRE 8250 UART"
671		depends on ARCH_NSPIRE
672		select DEBUG_UART_8250
673		help
674		  Say Y here if you want kernel low-level debugging support
675		  on TI-NSPIRE classic models.
676
677	config DEBUG_NSPIRE_CX_UART
678		bool "Kernel low-level debugging via TI-NSPIRE PL011 UART"
679		depends on ARCH_NSPIRE
680		select DEBUG_UART_PL01X
681		help
682		  Say Y here if you want kernel low-level debugging support
683		  on TI-NSPIRE CX models.
684
685	config DEBUG_OMAP1UART1
686		bool "Kernel low-level debugging via OMAP1 UART1"
687		depends on ARCH_OMAP1
688		select DEBUG_UART_8250
689		help
690		  Say Y here if you want kernel low-level debugging support
691		  on OMAP1 based platforms (except OMAP730) on the UART1.
692
693	config DEBUG_OMAP1UART2
694		bool "Kernel low-level debugging via OMAP1 UART2"
695		depends on ARCH_OMAP1
696		select DEBUG_UART_8250
697		help
698		  Say Y here if you want kernel low-level debugging support
699		  on OMAP1 based platforms (except OMAP730) on the UART2.
700
701	config DEBUG_OMAP1UART3
702		bool "Kernel low-level debugging via OMAP1 UART3"
703		depends on ARCH_OMAP1
704		select DEBUG_UART_8250
705		help
706		  Say Y here if you want kernel low-level debugging support
707		  on OMAP1 based platforms (except OMAP730) on the UART3.
708
709	config DEBUG_OMAP2UART1
710		bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
711		depends on ARCH_OMAP2PLUS
712		select DEBUG_UART_8250
713		help
714		  This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
715		  omap3 torpedo and 3530 lv som.
716
717	config DEBUG_OMAP2UART2
718		bool "Kernel low-level debugging messages via OMAP2/3/4 UART2"
719		depends on ARCH_OMAP2PLUS
720		select DEBUG_UART_8250
721
722	config DEBUG_OMAP2UART3
723		bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)"
724		depends on ARCH_OMAP2PLUS
725		select DEBUG_UART_8250
726
727	config DEBUG_OMAP3UART3
728		bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)"
729		depends on ARCH_OMAP2PLUS
730		select DEBUG_UART_8250
731		help
732		  This covers at least cm_t3x, beagle, crane, devkit8000,
733		  igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
734		  and 3517evm.
735
736	config DEBUG_OMAP4UART3
737		bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
738		depends on ARCH_OMAP2PLUS
739		select DEBUG_UART_8250
740
741	config DEBUG_OMAP3UART4
742		bool "Kernel low-level debugging messages via OMAP36XX UART4"
743		depends on ARCH_OMAP2PLUS
744		select DEBUG_UART_8250
745
746	config DEBUG_OMAP4UART4
747		bool "Kernel low-level debugging messages via OMAP4/5 UART4"
748		depends on ARCH_OMAP2PLUS
749		select DEBUG_UART_8250
750
751	config DEBUG_OMAP7XXUART1
752		bool "Kernel low-level debugging via OMAP730 UART1"
753		depends on ARCH_OMAP730
754		select DEBUG_UART_8250
755		help
756		  Say Y here if you want kernel low-level debugging support
757		  on OMAP730 based platforms on the UART1.
758
759	config DEBUG_OMAP7XXUART2
760		bool "Kernel low-level debugging via OMAP730 UART2"
761		depends on ARCH_OMAP730
762		select DEBUG_UART_8250
763		help
764		  Say Y here if you want kernel low-level debugging support
765		  on OMAP730 based platforms on the UART2.
766
767	config DEBUG_OMAP7XXUART3
768		bool "Kernel low-level debugging via OMAP730 UART3"
769		depends on ARCH_OMAP730
770		select DEBUG_UART_8250
771		help
772		  Say Y here if you want kernel low-level debugging support
773		  on OMAP730 based platforms on the UART3.
774
775	config DEBUG_TI81XXUART1
776		bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
777		depends on ARCH_OMAP2PLUS
778		select DEBUG_UART_8250
779
780	config DEBUG_TI81XXUART2
781		bool "Kernel low-level debugging messages via TI81XX UART2"
782		depends on ARCH_OMAP2PLUS
783		select DEBUG_UART_8250
784
785	config DEBUG_TI81XXUART3
786		bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)"
787		depends on ARCH_OMAP2PLUS
788		select DEBUG_UART_8250
789
790	config DEBUG_AM33XXUART1
791		bool "Kernel low-level debugging messages via AM33XX UART1"
792		depends on ARCH_OMAP2PLUS
793		select DEBUG_UART_8250
794
795	config DEBUG_ZOOM_UART
796		bool "Kernel low-level debugging messages via Zoom2/3 UART"
797		depends on ARCH_OMAP2PLUS
798		select DEBUG_OMAP2PLUS_UART
799
800	config DEBUG_PXA_UART1
801		depends on ARCH_PXA
802		bool "Use PXA UART1 for low-level debug"
803		select DEBUG_UART_8250
804		help
805		  Say Y here if you want kernel low-level debugging support
806		  on PXA UART1.
807
808	config DEBUG_QCOM_UARTDM
809		bool "Kernel low-level debugging messages via QCOM UARTDM"
810		depends on ARCH_QCOM
811		help
812		  Say Y here if you want the debug print routines to direct
813		  their output to the serial port on Qualcomm devices.
814
815		  ARCH      DEBUG_UART_PHYS   DEBUG_UART_VIRT
816		  APQ8064   0x16640000        0xf0040000
817		  APQ8084   0xf995e000        0xfa75e000
818		  IPQ4019   0x078af000        0xf78af000
819		  MSM8X60   0x19c40000        0xf0040000
820		  MSM8960   0x16440000        0xf0040000
821		  MSM8974   0xf991e000        0xfa71e000
822
823		  Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
824		  options based on your needs.
825
826	config DEBUG_REALVIEW_STD_PORT
827		bool "RealView Default UART"
828		depends on ARCH_REALVIEW
829		select DEBUG_UART_PL01X
830		help
831		  Say Y here if you want the debug print routines to direct
832		  their output to the serial port on RealView EB, PB11MP, PBA8
833		  and PBX platforms.
834
835	config DEBUG_REALVIEW_PB1176_PORT
836		bool "RealView PB1176 UART"
837		depends on MACH_REALVIEW_PB1176
838		select DEBUG_UART_PL01X
839		help
840		  Say Y here if you want the debug print routines to direct
841		  their output to the standard serial port on the RealView
842		  PB1176 platform.
843
844	config DEBUG_RV1108_UART0
845		bool "Kernel low-level debugging messages via Rockchip RV1108 UART0"
846		depends on ARCH_ROCKCHIP
847		select DEBUG_UART_8250
848		help
849		  Say Y here if you want kernel low-level debugging support
850                  on Rockchip RV1108 based platforms.
851
852	config DEBUG_RV1108_UART1
853		bool "Kernel low-level debugging messages via Rockchip RV1108 UART1"
854		depends on ARCH_ROCKCHIP
855		select DEBUG_UART_8250
856		help
857		  Say Y here if you want kernel low-level debugging support
858		  on Rockchip RV1108 based platforms.
859
860	config DEBUG_RV1108_UART2
861		bool "Kernel low-level debugging messages via Rockchip RV1108 UART2"
862		depends on ARCH_ROCKCHIP
863		select DEBUG_UART_8250
864		help
865		  Say Y here if you want kernel low-level debugging support
866		  on Rockchip RV1108 based platforms.
867
868	config DEBUG_RK29_UART0
869		bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
870		depends on ARCH_ROCKCHIP
871		select DEBUG_UART_8250
872		help
873		  Say Y here if you want kernel low-level debugging support
874		  on Rockchip based platforms.
875
876	config DEBUG_RK29_UART1
877		bool "Kernel low-level debugging messages via Rockchip RK29 UART1"
878		depends on ARCH_ROCKCHIP
879		select DEBUG_UART_8250
880		help
881		  Say Y here if you want kernel low-level debugging support
882		  on Rockchip based platforms.
883
884	config DEBUG_RK29_UART2
885		bool "Kernel low-level debugging messages via Rockchip RK29 UART2"
886		depends on ARCH_ROCKCHIP
887		select DEBUG_UART_8250
888		help
889		  Say Y here if you want kernel low-level debugging support
890		  on Rockchip based platforms.
891
892	config DEBUG_RK3X_UART0
893		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART0"
894		depends on ARCH_ROCKCHIP
895		select DEBUG_UART_8250
896		help
897		  Say Y here if you want kernel low-level debugging support
898		  on Rockchip based platforms.
899
900	config DEBUG_RK3X_UART1
901		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART1"
902		depends on ARCH_ROCKCHIP
903		select DEBUG_UART_8250
904		help
905		  Say Y here if you want kernel low-level debugging support
906		  on Rockchip based platforms.
907
908	config DEBUG_RK3X_UART2
909		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART2"
910		depends on ARCH_ROCKCHIP
911		select DEBUG_UART_8250
912		help
913		  Say Y here if you want kernel low-level debugging support
914		  on Rockchip based platforms.
915
916	config DEBUG_RK3X_UART3
917		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART3"
918		depends on ARCH_ROCKCHIP
919		select DEBUG_UART_8250
920		help
921		  Say Y here if you want kernel low-level debugging support
922		  on Rockchip based platforms.
923
924	config DEBUG_RK32_UART2
925		bool "Kernel low-level debugging messages via Rockchip RK32 UART2"
926		depends on ARCH_ROCKCHIP
927		select DEBUG_UART_8250
928		help
929		  Say Y here if you want kernel low-level debugging support
930		  on Rockchip RK32xx based platforms.
931
932	config DEBUG_R7S72100_SCIF2
933		bool "Kernel low-level debugging messages via SCIF2 on R7S72100"
934		depends on ARCH_R7S72100
935		help
936		  Say Y here if you want kernel low-level debugging support
937		  via SCIF2 on Renesas RZ/A1H (R7S72100).
938
939	config DEBUG_R7S9210_SCIF2
940		bool "Kernel low-level debugging messages via SCIF2 on R7S9210"
941		depends on ARCH_R7S9210
942		help
943		  Say Y here if you want kernel low-level debugging support
944		  via SCIF2 on Renesas RZ/A2M (R7S9210).
945
946	config DEBUG_R7S9210_SCIF4
947		bool "Kernel low-level debugging messages via SCIF4 on R7S9210"
948		depends on ARCH_R7S9210
949		help
950		  Say Y here if you want kernel low-level debugging support
951		  via SCIF4 on Renesas RZ/A2M (R7S9210).
952
953	config DEBUG_RCAR_GEN1_SCIF0
954		bool "Kernel low-level debugging messages via SCIF0 on R8A7778"
955		depends on ARCH_R8A7778
956		help
957		  Say Y here if you want kernel low-level debugging support
958		  via SCIF0 on Renesas R-Car M1A (R8A7778).
959
960	config DEBUG_RCAR_GEN1_SCIF2
961		bool "Kernel low-level debugging messages via SCIF2 on R8A7779"
962		depends on ARCH_R8A7779
963		help
964		  Say Y here if you want kernel low-level debugging support
965		  via SCIF2 on Renesas R-Car H1 (R8A7779).
966
967	config DEBUG_RCAR_GEN2_SCIF0
968		bool "Kernel low-level debugging messages via SCIF0 on R-Car Gen2 and RZ/G1"
969		depends on ARCH_R8A7743 || ARCH_R8A7744 || ARCH_R8A7790 || \
970			ARCH_R8A7791 || ARCH_R8A7792 || ARCH_R8A7793
971		help
972		  Say Y here if you want kernel low-level debugging support
973		  via SCIF0 on Renesas RZ/G1M (R8A7743), RZ/G1N (R8A7744),
974		  R-Car H2 (R8A7790), M2-W (R8A7791), V2H (R8A7792), or
975		  M2-N (R8A7793).
976
977	config DEBUG_RCAR_GEN2_SCIF1
978		bool "Kernel low-level debugging messages via SCIF1 on R8A77470"
979		depends on ARCH_R8A77470
980		help
981		  Say Y here if you want kernel low-level debugging support
982		  via SCIF1 on Renesas RZ/G1C (R8A77470).
983
984	config DEBUG_RCAR_GEN2_SCIF2
985		bool "Kernel low-level debugging messages via SCIF2 on R8A7794"
986		depends on ARCH_R8A7794
987		help
988		  Say Y here if you want kernel low-level debugging support
989		  via SCIF2 on Renesas R-Car E2 (R8A7794).
990
991	config DEBUG_RCAR_GEN2_SCIF4
992		bool "Kernel low-level debugging messages via SCIF4 on R8A7745"
993		depends on ARCH_R8A7745
994		help
995		  Say Y here if you want kernel low-level debugging support
996		  via SCIF4 on Renesas RZ/G1E (R8A7745).
997
998	config DEBUG_RCAR_GEN2_SCIFA2
999		bool "Kernel low-level debugging messages via SCIFA2 on R8A7742"
1000		depends on ARCH_R8A7742
1001		help
1002		  Say Y here if you want kernel low-level debugging support
1003		  via SCIFA2 on Renesas RZ/G1H (R8A7742).
1004
1005	config DEBUG_RMOBILE_SCIFA0
1006		bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4"
1007		depends on ARCH_R8A73A4
1008		help
1009		  Say Y here if you want kernel low-level debugging support
1010		  via SCIFA0 on Renesas R-Mobile APE6 (R8A73A4).
1011
1012	config DEBUG_RMOBILE_SCIFA1
1013		bool "Kernel low-level debugging messages via SCIFA1 on R8A7740"
1014		depends on ARCH_R8A7740
1015		help
1016		  Say Y here if you want kernel low-level debugging support
1017		  via SCIFA1 on Renesas R-Mobile A1 (R8A7740).
1018
1019	config DEBUG_RMOBILE_SCIFA4
1020		bool "Kernel low-level debugging messages via SCIFA4 on SH73A0"
1021		depends on ARCH_SH73A0
1022		help
1023		  Say Y here if you want kernel low-level debugging support
1024		  via SCIFA4 on Renesas SH-Mobile AG5 (SH73A0).
1025
1026	config DEBUG_S3C_UART0
1027		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1028		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1029		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1030		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1031		select DEBUG_S5PV210_UART if ARCH_S5PV210
1032		bool "Use Samsung S3C UART 0 for low-level debug"
1033		help
1034		  Say Y here if you want the debug print routines to direct
1035		  their output to UART 0. The port must have been initialised
1036		  by the boot-loader before use.
1037
1038	config DEBUG_S3C_UART1
1039		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1040		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1041		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1042		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1043		select DEBUG_S5PV210_UART if ARCH_S5PV210
1044		bool "Use Samsung S3C UART 1 for low-level debug"
1045		help
1046		  Say Y here if you want the debug print routines to direct
1047		  their output to UART 1. The port must have been initialised
1048		  by the boot-loader before use.
1049
1050	config DEBUG_S3C_UART2
1051		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1052		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1053		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1054		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1055		select DEBUG_S5PV210_UART if ARCH_S5PV210
1056		bool "Use Samsung S3C UART 2 for low-level debug"
1057		help
1058		  Say Y here if you want the debug print routines to direct
1059		  their output to UART 2. The port must have been initialised
1060		  by the boot-loader before use.
1061
1062	config DEBUG_S3C_UART3
1063		depends on ARCH_EXYNOS || ARCH_S5PV210
1064		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1065		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1066		select DEBUG_S5PV210_UART if ARCH_S5PV210
1067		bool "Use Samsung S3C UART 3 for low-level debug"
1068		help
1069		  Say Y here if you want the debug print routines to direct
1070		  their output to UART 3. The port must have been initialised
1071		  by the boot-loader before use.
1072
1073	config DEBUG_S3C2410_UART0
1074		depends on ARCH_S3C24XX
1075		select DEBUG_S3C2410_UART
1076		bool "Use S3C2410/S3C2412 UART 0 for low-level debug"
1077		help
1078		  Say Y here if you want the debug print routines to direct
1079		  their output to UART 0. The port must have been initialised
1080		  by the boot-loader before use.
1081
1082	config DEBUG_S3C2410_UART1
1083		depends on ARCH_S3C24XX
1084		select DEBUG_S3C2410_UART
1085		bool "Use S3C2410/S3C2412 UART 1 for low-level debug"
1086		help
1087		  Say Y here if you want the debug print routines to direct
1088		  their output to UART 1. The port must have been initialised
1089		  by the boot-loader before use.
1090
1091	config DEBUG_S3C2410_UART2
1092		depends on ARCH_S3C24XX
1093		select DEBUG_S3C2410_UART
1094		bool "Use S3C2410/S3C2412 UART 2 for low-level debug"
1095		help
1096		  Say Y here if you want the debug print routines to direct
1097		  their output to UART 2. The port must have been initialised
1098		  by the boot-loader before use.
1099
1100	config DEBUG_SA1100
1101		depends on ARCH_SA1100
1102		bool "Use SA1100 UARTs for low-level debug"
1103		help
1104		  Say Y here if you want kernel low-level debugging support
1105		  on SA-11x0 UART ports. The kernel will check for the first
1106		  enabled UART in a sequence 3-1-2.
1107
1108	config DEBUG_SD5203_UART
1109		bool "Hisilicon SD5203 Debug UART"
1110		depends on ARCH_SD5203
1111		select DEBUG_UART_8250
1112		help
1113		  Say Y here if you want kernel low-level debugging support
1114		  on SD5203 UART.
1115
1116	config DEBUG_SOCFPGA_UART0
1117		depends on ARCH_INTEL_SOCFPGA
1118		bool "Use SOCFPGA UART0 for low-level debug"
1119		select DEBUG_UART_8250
1120		help
1121		  Say Y here if you want kernel low-level debugging support
1122		  on SOCFPGA(Cyclone 5 and Arria 5) based platforms.
1123
1124	config DEBUG_SOCFPGA_ARRIA10_UART1
1125		depends on ARCH_INTEL_SOCFPGA
1126		bool "Use SOCFPGA Arria10 UART1 for low-level debug"
1127		select DEBUG_UART_8250
1128		help
1129		  Say Y here if you want kernel low-level debugging support
1130		  on SOCFPGA(Arria 10) based platforms.
1131
1132	config DEBUG_SOCFPGA_CYCLONE5_UART1
1133		depends on ARCH_INTEL_SOCFPGA
1134		bool "Use SOCFPGA Cyclone 5 UART1 for low-level debug"
1135		select DEBUG_UART_8250
1136		help
1137		  Say Y here if you want kernel low-level debugging support
1138		  on SOCFPGA(Cyclone 5 and Arria 5) based platforms.
1139
1140	config DEBUG_SUN9I_UART0
1141		bool "Kernel low-level debugging messages via sun9i UART0"
1142		depends on MACH_SUN9I
1143		select DEBUG_UART_8250
1144		help
1145		  Say Y here if you want kernel low-level debugging support
1146		  on Allwinner A80 based platforms on the UART0.
1147
1148	config DEBUG_SUNXI_UART0
1149		bool "Kernel low-level debugging messages via sunXi UART0"
1150		depends on ARCH_SUNXI
1151		select DEBUG_UART_8250
1152		help
1153		  Say Y here if you want kernel low-level debugging support
1154		  on Allwinner A1X based platforms on the UART0.
1155
1156	config DEBUG_SUNXI_UART1
1157		bool "Kernel low-level debugging messages via sunXi UART1"
1158		depends on ARCH_SUNXI
1159		select DEBUG_UART_8250
1160		help
1161		  Say Y here if you want kernel low-level debugging support
1162		  on Allwinner A1X based platforms on the UART1.
1163
1164	config DEBUG_SUNXI_R_UART
1165		bool "Kernel low-level debugging messages via sunXi R_UART"
1166		depends on MACH_SUN6I || MACH_SUN8I
1167		select DEBUG_UART_8250
1168		help
1169		  Say Y here if you want kernel low-level debugging support
1170		  on Allwinner A31/A23 based platforms on the R_UART.
1171
1172	config DEBUG_SPEAR3XX
1173		bool "Kernel low-level debugging messages via ST SPEAr 3xx/6xx UART"
1174		depends on ARCH_SPEAR3XX || ARCH_SPEAR6XX
1175		select DEBUG_UART_PL01X
1176		help
1177		  Say Y here if you want kernel low-level debugging support
1178		  on ST SPEAr based platforms.
1179
1180	config DEBUG_SPEAR13XX
1181		bool "Kernel low-level debugging messages via ST SPEAr 13xx UART"
1182		depends on ARCH_SPEAR13XX
1183		select DEBUG_UART_PL01X
1184		help
1185		  Say Y here if you want kernel low-level debugging support
1186		  on ST SPEAr13xx based platforms.
1187
1188	config DEBUG_STIH41X_ASC2
1189		bool "Use StiH415/416 ASC2 UART for low-level debug"
1190		depends on ARCH_STI
1191		help
1192		  Say Y here if you want kernel low-level debugging support
1193		  on STiH415/416 based platforms like b2000, which has
1194		  default UART wired up to ASC2.
1195
1196		  If unsure, say N.
1197
1198	config DEBUG_STIH41X_SBC_ASC1
1199		bool "Use StiH415/416 SBC ASC1 UART for low-level debug"
1200		depends on ARCH_STI
1201		help
1202		  Say Y here if you want kernel low-level debugging support
1203		  on STiH415/416 based platforms like b2020. which has
1204		  default UART wired up to SBC ASC1.
1205
1206		  If unsure, say N.
1207
1208	config DEBUG_STIH418_SBC_ASC0
1209		bool "Use StiH418 SBC ASC0 UART for low-level debug"
1210		depends on ARCH_STI
1211		help
1212		  Say Y here if you want kernel low-level debugging support
1213		  on STiH418 based platforms which has default UART wired
1214		  up to SBC ASC0.
1215
1216		  If unsure, say N.
1217
1218	config STM32F4_DEBUG_UART
1219		bool "Use STM32F4 UART for low-level debug"
1220		depends on MACH_STM32F429 || MACH_STM32F469
1221		select DEBUG_STM32_UART
1222		help
1223		  Say Y here if you want kernel low-level debugging support
1224		  on STM32F4 based platforms, which default UART is wired on
1225		  USART1, but another UART instance can be selected by modifying
1226		  CONFIG_DEBUG_UART_PHYS.
1227
1228		  If unsure, say N.
1229
1230	config STM32F7_DEBUG_UART
1231		bool "Use STM32F7 UART for low-level debug"
1232		depends on MACH_STM32F746 || MACH_STM32F769
1233		select DEBUG_STM32_UART
1234		help
1235		  Say Y here if you want kernel low-level debugging support
1236		  on STM32F7 based platforms, which default UART is wired on
1237		  USART1, but another UART instance can be selected by modifying
1238		  CONFIG_DEBUG_UART_PHYS.
1239
1240		  If unsure, say N.
1241
1242	config STM32H7_DEBUG_UART
1243		bool "Use STM32H7 UART for low-level debug"
1244		depends on MACH_STM32H743
1245		select DEBUG_STM32_UART
1246		help
1247		  Say Y here if you want kernel low-level debugging support
1248		  on STM32H7 based platforms, which default UART is wired on
1249		  USART1, but another UART instance can be selected by modifying
1250		  CONFIG_DEBUG_UART_PHYS.
1251
1252		  If unsure, say N.
1253
1254	config STM32MP1_DEBUG_UART
1255		bool "Use STM32MP1 UART for low-level debug"
1256		depends on MACH_STM32MP157
1257		select DEBUG_STM32_UART
1258		help
1259		  Say Y here if you want kernel low-level debugging support
1260		  on STM32MP1 based platforms, wich default UART is wired on
1261		  UART4, but another UART instance can be selected by modifying
1262		  CONFIG_DEBUG_UART_PHYS and CONFIG_DEBUG_UART_VIRT.
1263
1264		  If unsure, say N.
1265
1266	config TEGRA_DEBUG_UART_AUTO_ODMDATA
1267		bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
1268		depends on ARCH_TEGRA
1269		select DEBUG_TEGRA_UART
1270		help
1271		  Automatically determines which UART to use for low-level
1272		  debug based on the ODMDATA value. This value is part of
1273		  the BCT, and is written to the boot memory device using
1274		  nvflash, or other flashing tool.  When bits 19:18 are 3,
1275		  then bits 17:15 indicate which UART to use; 0/1/2/3/4
1276		  are UART A/B/C/D/E.
1277
1278	config TEGRA_DEBUG_UARTA
1279		bool "Kernel low-level debugging messages via Tegra UART A"
1280		depends on ARCH_TEGRA
1281		select DEBUG_TEGRA_UART
1282		help
1283		  Say Y here if you want kernel low-level debugging support
1284		  on Tegra based platforms.
1285
1286	config TEGRA_DEBUG_UARTB
1287		bool "Kernel low-level debugging messages via Tegra UART B"
1288		depends on ARCH_TEGRA
1289		select DEBUG_TEGRA_UART
1290		help
1291		  Say Y here if you want kernel low-level debugging support
1292		  on Tegra based platforms.
1293
1294	config TEGRA_DEBUG_UARTC
1295		bool "Kernel low-level debugging messages via Tegra UART C"
1296		depends on ARCH_TEGRA
1297		select DEBUG_TEGRA_UART
1298		help
1299		  Say Y here if you want kernel low-level debugging support
1300		  on Tegra based platforms.
1301
1302	config TEGRA_DEBUG_UARTD
1303		bool "Kernel low-level debugging messages via Tegra UART D"
1304		depends on ARCH_TEGRA
1305		select DEBUG_TEGRA_UART
1306		help
1307		  Say Y here if you want kernel low-level debugging support
1308		  on Tegra based platforms.
1309
1310	config TEGRA_DEBUG_UARTE
1311		bool "Kernel low-level debugging messages via Tegra UART E"
1312		depends on ARCH_TEGRA
1313		select DEBUG_TEGRA_UART
1314		help
1315		  Say Y here if you want kernel low-level debugging support
1316		  on Tegra based platforms.
1317
1318	config DEBUG_UX500_UART
1319		depends on ARCH_U8500
1320		bool "Use Ux500 UART for low-level debug"
1321		help
1322		  Say Y here if you want kernel low-level debugging support
1323		  on Ux500 based platforms.
1324
1325	config DEBUG_VERSATILE
1326		bool "Kernel low-level debugging messages via ARM Versatile UART"
1327		depends on ARCH_VERSATILE
1328		select DEBUG_UART_PL01X
1329		help
1330		  Say Y here if you want kernel low-level debugging support
1331		  on ARM Versatile platforms.
1332
1333	config DEBUG_VEXPRESS_UART0_DETECT
1334		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
1335		depends on ARCH_VEXPRESS && CPU_CP15_MMU
1336		help
1337		  This option enables a simple heuristic which tries to determine
1338		  the motherboard's memory map variant (original or RS1) and then
1339		  choose the relevant UART0 base address.
1340
1341		  Note that this will only work with standard A-class core tiles,
1342		  and may fail with non-standard SMM or custom software models.
1343
1344	config DEBUG_VEXPRESS_UART0_CA9
1345		bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)"
1346		depends on ARCH_VEXPRESS
1347		select DEBUG_UART_PL01X
1348		help
1349		  This option selects UART0 at 0x10009000. Except for custom models,
1350		  this applies only to the V2P-CA9 tile.
1351
1352	config DEBUG_VEXPRESS_UART0_RS1
1353		bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)"
1354		depends on ARCH_VEXPRESS
1355		select DEBUG_UART_PL01X
1356		help
1357		  This option selects UART0 at 0x1c090000. This applies to most
1358		  of the tiles using the RS1 memory map, including all new A-class
1359		  core tiles, FPGA-based SMMs and software models.
1360
1361	config DEBUG_VEXPRESS_UART0_CRX
1362		bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)"
1363		depends on ARCH_VEXPRESS && !MMU
1364		select DEBUG_UART_PL01X
1365		help
1366		  This option selects UART0 at 0xb0090000. This is appropriate for
1367		  Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7
1368
1369	config DEBUG_VF_UART
1370		bool "Vybrid UART"
1371		depends on SOC_VF610
1372		help
1373		  Say Y here if you want kernel low-level debugging support
1374		  on Vybrid based platforms.
1375
1376	config DEBUG_VT8500_UART0
1377		bool "Use UART0 on VIA/Wondermedia SoCs"
1378		depends on ARCH_VT8500
1379		help
1380		  This option selects UART0 on VIA/Wondermedia System-on-a-chip
1381		  devices, including VT8500, WM8505, WM8650 and WM8850.
1382
1383	config DEBUG_ZYNQ_UART0
1384		bool "Kernel low-level debugging on Xilinx Zynq using UART0"
1385		depends on ARCH_ZYNQ
1386		help
1387		  Say Y here if you want the debug print routines to direct
1388		  their output to UART0 on the Zynq platform.
1389
1390	config DEBUG_ZYNQ_UART1
1391		bool "Kernel low-level debugging on Xilinx Zynq using UART1"
1392		depends on ARCH_ZYNQ
1393		help
1394		  Say Y here if you want the debug print routines to direct
1395		  their output to UART1 on the Zynq platform.
1396
1397		  If you have a ZC702 board and want early boot messages to
1398		  appear on the USB serial adaptor, select this option.
1399
1400	config DEBUG_ICEDCC
1401		bool "Kernel low-level debugging via EmbeddedICE DCC channel"
1402		help
1403		  Say Y here if you want the debug print routines to direct
1404		  their output to the EmbeddedICE macrocell's DCC channel using
1405		  co-processor 14. This is known to work on the ARM9 style ICE
1406		  channel and on the XScale with the PEEDI.
1407
1408		  Note that the system will appear to hang during boot if there
1409		  is nothing connected to read from the DCC.
1410
1411	config DEBUG_SEMIHOSTING
1412		bool "Kernel low-level debug output via semihosting I/O"
1413		help
1414		  Semihosting enables code running on an ARM target to use
1415		  the I/O facilities on a host debugger/emulator through a
1416		  simple SVC call. The host debugger or emulator must have
1417		  semihosting enabled for the special svc call to be trapped
1418		  otherwise the kernel will crash.
1419
1420		  This is known to work with OpenOCD, as well as
1421		  ARM's Fast Models, or any other controlling environment
1422		  that implements semihosting.
1423
1424		  For more details about semihosting, please see
1425		  chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
1426
1427	config DEBUG_LL_UART_8250
1428		bool "Kernel low-level debugging via 8250 UART"
1429		help
1430		  Say Y here if you wish the debug print routes to direct
1431		  their output to an 8250 UART.  You can use this option
1432		  to provide the parameters for the 8250 UART rather than
1433		  selecting one of the platform specific options above if
1434		  you know the parameters for the port.
1435
1436		  This option is preferred over the platform specific
1437		  options; the platform specific options are deprecated
1438		  and will be soon removed.
1439
1440	config DEBUG_LL_UART_PL01X
1441		bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
1442		help
1443		  Say Y here if you wish the debug print routes to direct
1444		  their output to a PL01x Primecell UART.  You can use
1445		  this option to provide the parameters for the UART
1446		  rather than selecting one of the platform specific
1447		  options above if you know the parameters for the port.
1448
1449		  This option is preferred over the platform specific
1450		  options; the platform specific options are deprecated
1451		  and will be soon removed.
1452
1453endchoice
1454
1455config DEBUG_AT91_UART
1456	bool
1457	depends on ARCH_AT91
1458
1459config DEBUG_EXYNOS_UART
1460	bool
1461
1462config DEBUG_S3C2410_UART
1463	bool
1464	select DEBUG_S3C24XX_UART
1465
1466config DEBUG_S3C24XX_UART
1467	bool
1468
1469config DEBUG_S3C64XX_UART
1470	bool
1471
1472config DEBUG_S5PV210_UART
1473	bool
1474
1475config DEBUG_S3C_UART
1476	depends on DEBUG_S3C2410_UART || DEBUG_S3C24XX_UART || \
1477		   DEBUG_S3C64XX_UART ||  DEBUG_S5PV210_UART || \
1478		   DEBUG_EXYNOS_UART
1479	int
1480	default "0" if DEBUG_S3C_UART0
1481	default "1" if DEBUG_S3C_UART1
1482	default "2" if DEBUG_S3C_UART2
1483	default "3" if DEBUG_S3C_UART3
1484
1485config DEBUG_OMAP2PLUS_UART
1486	bool
1487	depends on ARCH_OMAP2PLUS
1488
1489config DEBUG_IMX_UART_PORT
1490	int "i.MX Debug UART Port Selection"
1491	depends on DEBUG_IMX1_UART || \
1492		   DEBUG_IMX25_UART || \
1493		   DEBUG_IMX27_UART || \
1494		   DEBUG_IMX31_UART || \
1495		   DEBUG_IMX35_UART || \
1496		   DEBUG_IMX50_UART || \
1497		   DEBUG_IMX51_UART || \
1498		   DEBUG_IMX53_UART || \
1499		   DEBUG_IMX6Q_UART || \
1500		   DEBUG_IMX6SL_UART || \
1501		   DEBUG_IMX6SX_UART || \
1502		   DEBUG_IMX6UL_UART || \
1503		   DEBUG_IMX7D_UART
1504	default 1
1505	help
1506	  Choose UART port on which kernel low-level debug messages
1507	  should be output.
1508
1509config DEBUG_VF_UART_PORT
1510	int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART
1511	default 1
1512	range 0 3
1513	depends on SOC_VF610
1514	help
1515	  Choose UART port on which kernel low-level debug messages
1516	  should be output.
1517
1518config DEBUG_TEGRA_UART
1519	bool
1520	depends on ARCH_TEGRA
1521
1522config DEBUG_STM32_UART
1523	bool
1524	depends on ARCH_STM32
1525
1526config DEBUG_UART_FLOW_CONTROL
1527	bool "Enable flow control (CTS) for the debug UART"
1528	depends on DEBUG_LL
1529	default y if DEBUG_FOOTBRIDGE_COM1 || DEBUG_GEMINI || ARCH_RPC
1530	help
1531	  Some UART ports are connected to terminals that will use modem
1532	  control signals to indicate whether they are ready to receive text.
1533	  In practice this means that the terminal is asserting the special
1534	  control signal CTS (Clear To Send). If your debug UART supports
1535	  this and your debug terminal will require it, enable this option.
1536
1537config DEBUG_LL_INCLUDE
1538	string
1539	default "debug/sa1100.S" if DEBUG_SA1100
1540	default "debug/palmchip.S" if DEBUG_UART_8250_PALMCHIP
1541	default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
1542	default "debug/at91.S" if DEBUG_AT91_UART
1543	default "debug/asm9260.S" if DEBUG_ASM9260_UART
1544	default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2
1545	default "debug/dc21285.S" if DEBUG_DC21285_PORT
1546	default "debug/meson.S" if DEBUG_MESON_UARTAO
1547	default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
1548	default "debug/exynos.S" if DEBUG_EXYNOS_UART
1549	default "debug/icedcc.S" if DEBUG_ICEDCC
1550	default "debug/imx.S" if DEBUG_IMX1_UART || \
1551				 DEBUG_IMX25_UART || \
1552				 DEBUG_IMX27_UART || \
1553				 DEBUG_IMX31_UART || \
1554				 DEBUG_IMX35_UART || \
1555				 DEBUG_IMX50_UART || \
1556				 DEBUG_IMX51_UART || \
1557				 DEBUG_IMX53_UART || \
1558				 DEBUG_IMX6Q_UART || \
1559				 DEBUG_IMX6SL_UART || \
1560				 DEBUG_IMX6SX_UART || \
1561				 DEBUG_IMX6UL_UART || \
1562				 DEBUG_IMX7D_UART
1563	default "debug/msm.S" if DEBUG_QCOM_UARTDM
1564	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
1565	default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2
1566	default "debug/renesas-scif.S" if DEBUG_R7S9210_SCIF2
1567	default "debug/renesas-scif.S" if DEBUG_R7S9210_SCIF4
1568	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0
1569	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2
1570	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0
1571	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF1
1572	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2
1573	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF4
1574	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIFA2
1575	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0
1576	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1
1577	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4
1578	default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART || DEBUG_S3C64XX_UART
1579	default "debug/s5pv210.S" if DEBUG_S5PV210_UART
1580	default "debug/sti.S" if DEBUG_STIH41X_ASC2
1581	default "debug/sti.S" if DEBUG_STIH41X_SBC_ASC1
1582	default "debug/sti.S" if DEBUG_STIH418_SBC_ASC0
1583	default "debug/stm32.S" if DEBUG_STM32_UART
1584	default "debug/tegra.S" if DEBUG_TEGRA_UART
1585	default "debug/ux500.S" if DEBUG_UX500_UART
1586	default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
1587	default "debug/vf.S" if DEBUG_VF_UART
1588	default "debug/vt8500.S" if DEBUG_VT8500_UART0
1589	default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
1590	default "debug/bcm63xx.S" if DEBUG_BCM63XX_UART
1591	default "debug/digicolor.S" if DEBUG_DIGICOLOR_UA0
1592	default "debug/brcmstb.S" if DEBUG_BRCMSTB_UART
1593	default "mach/debug-macro.S"
1594
1595# Compatibility options for PL01x
1596config DEBUG_UART_PL01X
1597	bool
1598
1599# Compatibility options for 8250
1600config DEBUG_UART_8250
1601	def_bool ARCH_IOP32X || ARCH_IXP4XX || ARCH_RPC
1602
1603config DEBUG_UART_PHYS
1604	hex "Physical base address of debug UART"
1605	default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0
1606	default 0x01c28000 if DEBUG_SUNXI_UART0
1607	default 0x01c28400 if DEBUG_SUNXI_UART1
1608	default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
1609	default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
1610	default 0x01f02800 if DEBUG_SUNXI_R_UART
1611	default 0x02530c00 if DEBUG_KEYSTONE_UART0
1612	default 0x02531000 if DEBUG_KEYSTONE_UART1
1613	default 0x03010fe0 if ARCH_RPC
1614	default 0x07000000 if DEBUG_SUN9I_UART0
1615	default 0x09530000 if DEBUG_STIH418_SBC_ASC0
1616	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || \
1617				DEBUG_VEXPRESS_UART0_CA9
1618	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
1619	default 0x10124000 if DEBUG_RK3X_UART0
1620	default 0x10126000 if DEBUG_RK3X_UART1
1621	default 0x101f1000 if DEBUG_VERSATILE
1622	default 0x101fb000 if DEBUG_NOMADIK_UART
1623	default 0x10210000 if DEBUG_RV1108_UART2
1624	default 0x10220000 if DEBUG_RV1108_UART1
1625	default 0x10230000 if DEBUG_RV1108_UART0
1626	default 0x11002000 if DEBUG_MT8127_UART0
1627	default 0x11006000 if DEBUG_MT6589_UART0
1628	default 0x11009000 if DEBUG_MT8135_UART3
1629	default 0x16000000 if DEBUG_INTEGRATOR
1630	default 0x1600d000 if DEBUG_SD5203_UART
1631	default 0x18000300 if DEBUG_BCM_5301X
1632	default 0x18000400 if DEBUG_BCM_HR2
1633	default 0x18023000 if DEBUG_BCM_IPROC_UART3
1634	default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
1635	default 0x1f221000 if DEBUG_MSTARV7_PMUART
1636	default 0x20001000 if DEBUG_HIP01_UART
1637	default 0x20060000 if DEBUG_RK29_UART0
1638	default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1639	default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1640	default 0x20201000 if DEBUG_BCM2835
1641	default 0x3e000000 if DEBUG_BCM_KONA_UART
1642	default 0x3f201000 if DEBUG_BCM2836
1643	default 0x40010000 if STM32MP1_DEBUG_UART
1644	default 0x40011000 if STM32F4_DEBUG_UART || STM32F7_DEBUG_UART || \
1645				STM32H7_DEBUG_UART
1646	default 0x40028000 if DEBUG_AT91_SAMV7_USART1
1647	default 0x40081000 if DEBUG_LPC18XX_UART0
1648	default 0x40090000 if DEBUG_LPC32XX
1649	default 0x40100000 if DEBUG_PXA_UART1
1650	default 0x42000000 if DEBUG_GEMINI
1651	default 0x44e09000 if DEBUG_AM33XXUART1
1652	default 0x48020000 if DEBUG_OMAP4UART3 || DEBUG_TI81XXUART1
1653	default 0x48022000 if DEBUG_TI81XXUART2
1654	default 0x48024000 if DEBUG_TI81XXUART3
1655	default 0x4806a000 if DEBUG_OMAP2UART1 || DEBUG_OMAP3UART1 || \
1656				DEBUG_OMAP4UART1 || DEBUG_OMAP5UART1
1657	default 0x4806c000 if DEBUG_OMAP2UART2 || DEBUG_OMAP3UART2 || \
1658				DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
1659	default 0x4806e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
1660	default 0x49020000 if DEBUG_OMAP3UART3
1661	default 0x49042000 if DEBUG_OMAP3UART4
1662	default 0x50000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
1663				DEBUG_S3C2410_UART0)
1664	default 0x50004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
1665				DEBUG_S3C2410_UART1)
1666	default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1667				DEBUG_S3C2410_UART2)
1668	default 0x78000000 if DEBUG_CNS3XXX
1669	default 0x7c0003f8 if DEBUG_FOOTBRIDGE_COM1
1670	default 0x7f005000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
1671	default 0x7f005400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
1672	default 0x7f005800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
1673	default 0x7f005c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
1674	default 0x80010000 if DEBUG_ASM9260_UART
1675	default 0x80070000 if DEBUG_IMX23_UART
1676	default 0x80074000 if DEBUG_IMX28_UART
1677	default 0x808c0000 if DEBUG_EP93XX || ARCH_EP93XX
1678	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1679	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
1680	default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1681	default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1682	default 0xd0000000 if DEBUG_SPEAR3XX
1683	default 0xd0012000 if DEBUG_MVEBU_UART0
1684	default 0xc81004c0 if DEBUG_MESON_UARTAO
1685	default 0xd4017000 if DEBUG_MMP_UART2
1686	default 0xd4018000 if DEBUG_MMP_UART3
1687	default 0xe0000000 if DEBUG_SPEAR13XX
1688	default 0xe1824200 if DEBUG_AT91_SAMA7G5_FLEXCOM3
1689	default 0xe4007000 if DEBUG_HIP04_UART
1690	default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0
1691	default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1
1692	default 0xe6c60000 if DEBUG_RCAR_GEN2_SCIFA2
1693	default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4
1694	default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2
1695	default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0
1696	default 0xe6e68000 if DEBUG_RCAR_GEN2_SCIF1
1697	default 0xe6ee0000 if DEBUG_RCAR_GEN2_SCIF4
1698	default 0xe8008000 if DEBUG_R7S72100_SCIF2 || DEBUG_R7S9210_SCIF2
1699	default 0xe8009000 if DEBUG_R7S9210_SCIF4
1700	default 0xf0000000 if DEBUG_DIGICOLOR_UA0
1701	default 0xf1012000 if DEBUG_MVEBU_UART0_ALTERNATE
1702	default 0xf1012100 if DEBUG_MVEBU_UART1_ALTERNATE
1703	default 0xf7fc9000 if DEBUG_BERLIN_UART
1704	default 0xf8020000 if DEBUG_AT91_SAMA5D2_UART1
1705	default 0xf8b00000 if DEBUG_HIX5HD2_UART
1706	default 0xf991e000 if DEBUG_QCOM_UARTDM
1707	default 0xfc00c000 if DEBUG_AT91_SAMA5D4_USART3
1708	default 0xfcb00000 if DEBUG_HI3620_UART
1709	default 0xfd883000 if DEBUG_ALPINE_UART0
1710	default 0xfe531000 if DEBUG_STIH41X_SBC_ASC1
1711	default 0xfe800000 if ARCH_IOP32X
1712	default 0xfed32000 if DEBUG_STIH41X_ASC2
1713	default 0xff690000 if DEBUG_RK32_UART2
1714	default 0xffc02000 if DEBUG_SOCFPGA_UART0
1715	default 0xffc02100 if DEBUG_SOCFPGA_ARRIA10_UART1
1716	default 0xffc03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
1717	default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0
1718	default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2
1719	default 0xfff36000 if DEBUG_HIGHBANK_UART
1720	default 0xfffb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
1721	default 0xfffb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
1722	default 0xfffb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
1723	default 0xfffe8600 if DEBUG_BCM63XX_UART
1724	default 0xffffee00 if DEBUG_AT91_SAM9263_DBGU
1725	default 0xfffff200 if DEBUG_AT91_RM9200_DBGU
1726	depends on ARCH_EP93XX || \
1727	        DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1728		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1729		DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \
1730		DEBUG_R7S9210_SCIF2 || DEBUG_R7S9210_SCIF4 || \
1731		DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \
1732		DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF1 || \
1733		DEBUG_RCAR_GEN2_SCIF2 || DEBUG_RCAR_GEN2_SCIF4 || \
1734		DEBUG_RCAR_GEN2_SCIFA2 || \
1735		DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
1736		DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
1737		DEBUG_S3C64XX_UART || \
1738		DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
1739		DEBUG_DIGICOLOR_UA0 || \
1740		DEBUG_AT91_UART || DEBUG_STM32_UART || \
1741		DEBUG_STIH41X_ASC2 || DEBUG_STIH41X_SBC_ASC1 || \
1742		DEBUG_STIH418_SBC_ASC0
1743
1744config DEBUG_UART_VIRT
1745	hex "Virtual base address of debug UART"
1746	default 0xc881f000 if DEBUG_RV1108_UART2
1747	default 0xc8821000 if DEBUG_RV1108_UART1
1748	default 0xc8912000 if DEBUG_RV1108_UART0
1749	default 0xe0010fe0 if ARCH_RPC
1750	default 0xe0824200 if DEBUG_AT91_SAMA7G5_FLEXCOM3
1751	default 0xf0010000 if DEBUG_ASM9260_UART
1752	default 0xf0100000 if DEBUG_DIGICOLOR_UA0
1753	default 0xf01fb000 if DEBUG_NOMADIK_UART
1754	default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836
1755	default 0xf0221000 if DEBUG_MSTARV7_PMUART
1756	default 0xf1000300 if DEBUG_BCM_5301X
1757	default 0xf1000400 if DEBUG_BCM_HR2
1758	default 0xf1002000 if DEBUG_MT8127_UART0
1759	default 0xf1006000 if DEBUG_MT6589_UART0
1760	default 0xf1009000 if DEBUG_MT8135_UART3
1761	default 0xf1023000 if DEBUG_BCM_IPROC_UART3
1762	default 0xf11f1000 if DEBUG_VERSATILE
1763	default 0xf1600000 if DEBUG_INTEGRATOR
1764	default 0xf1c28000 if DEBUG_SUNXI_UART0
1765	default 0xf1c28400 if DEBUG_SUNXI_UART1
1766	default 0xf1f02800 if DEBUG_SUNXI_R_UART
1767	default 0xf31004c0 if DEBUG_MESON_UARTAO
1768	default 0xf4090000 if DEBUG_LPC32XX
1769	default 0xf4200000 if DEBUG_GEMINI
1770	default 0xf6200000 if DEBUG_PXA_UART1
1771	default 0xf7000000 if DEBUG_SUN9I_UART0
1772	default 0xf7000000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
1773	default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
1774				DEBUG_S3C2410_UART0)
1775	default 0xf7000400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
1776	default 0xf7000800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
1777	default 0xf7000c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
1778	default 0xf7004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
1779				DEBUG_S3C2410_UART1)
1780	default 0xf7008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1781				DEBUG_S3C2410_UART2)
1782	default 0xf7020000 if DEBUG_AT91_SAMA5D2_UART1
1783	default 0xf7fc9000 if DEBUG_BERLIN_UART
1784	default 0xf8007000 if DEBUG_HIP04_UART
1785	default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
1786	default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
1787	default 0xf8ffee00 if DEBUG_AT91_SAM9263_DBGU
1788	default 0xf8fff200 if DEBUG_AT91_RM9200_DBGU
1789	default 0xf9530000 if DEBUG_STIH418_SBC_ASC0
1790	default 0xf9e09000 if DEBUG_AM33XXUART1
1791	default 0xfa020000 if DEBUG_OMAP4UART3 || DEBUG_TI81XXUART1
1792	default 0xfa022000 if DEBUG_TI81XXUART2
1793	default 0xfa024000 if DEBUG_TI81XXUART3
1794	default 0xfa06a000 if DEBUG_OMAP2UART1 || DEBUG_OMAP3UART1 || \
1795				DEBUG_OMAP4UART1 || DEBUG_OMAP5UART1
1796	default 0xfa06c000 if DEBUG_OMAP2UART2 || DEBUG_OMAP3UART2 || \
1797				DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
1798	default 0xfa06e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
1799	default 0xfa71e000 if DEBUG_QCOM_UARTDM
1800	default 0xfb002000 if DEBUG_CNS3XXX
1801	default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
1802	default 0xfb00c000 if DEBUG_AT91_SAMA5D4_USART3
1803	default 0xfb020000 if DEBUG_OMAP3UART3
1804	default 0xfb042000 if DEBUG_OMAP3UART4
1805	default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
1806	default 0xfcfe8600 if DEBUG_BCM63XX_UART
1807	default 0xfd000000 if DEBUG_SPEAR3XX || DEBUG_SPEAR13XX
1808	default 0xfd531000 if DEBUG_STIH41X_SBC_ASC1
1809	default 0xfd883000 if DEBUG_ALPINE_UART0
1810	default 0xfdd32000 if DEBUG_STIH41X_ASC2
1811	default 0xfe010000 if STM32MP1_DEBUG_UART
1812	default 0xfe017000 if DEBUG_MMP_UART2
1813	default 0xfe018000 if DEBUG_MMP_UART3
1814	default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
1815	default 0xfe300000 if DEBUG_BCM_KONA_UART
1816	default 0xfe800000 if ARCH_IOP32X
1817	default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HIX5HD2_UART
1818	default 0xfeb24000 if DEBUG_RK3X_UART0
1819	default 0xfeb26000 if DEBUG_RK3X_UART1
1820	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
1821	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
1822	default 0xfec02000 if DEBUG_SOCFPGA_UART0
1823	default 0xfec02100 if DEBUG_SOCFPGA_ARRIA10_UART1
1824	default 0xfec03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
1825	default 0xfec12000 if DEBUG_MVEBU_UART0 || DEBUG_MVEBU_UART0_ALTERNATE
1826	default 0xfec12100 if DEBUG_MVEBU_UART1_ALTERNATE
1827	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
1828	default 0xfec90000 if DEBUG_RK32_UART2
1829	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
1830	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_SD5203_UART
1831	default 0xfed60000 if DEBUG_RK29_UART0
1832	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1833	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1834	default 0xfedc0000 if DEBUG_EP93XX
1835	default 0xfee003f8 if DEBUG_FOOTBRIDGE_COM1
1836	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1837	default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1838	default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1839	default 0xfef36000 if DEBUG_HIGHBANK_UART
1840	default 0xfefb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
1841	default 0xfefb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
1842	default 0xfefb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
1843	default 0xffd01000 if DEBUG_HIP01_UART
1844	default DEBUG_UART_PHYS if !MMU
1845	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1846		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1847		DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
1848		DEBUG_S3C64XX_UART || \
1849		DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
1850		DEBUG_DIGICOLOR_UA0 || \
1851		DEBUG_AT91_UART || DEBUG_STM32_UART || \
1852		DEBUG_STIH41X_ASC2 || DEBUG_STIH41X_SBC_ASC1 || \
1853		DEBUG_STIH418_SBC_ASC0
1854
1855config DEBUG_UART_8250_SHIFT
1856	int "Register offset shift for the 8250 debug UART"
1857	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1858	default 0 if DEBUG_FOOTBRIDGE_COM1 || ARCH_IOP32X || DEBUG_BCM_5301X || \
1859		DEBUG_BCM_HR2 || DEBUG_OMAP7XXUART1 || DEBUG_OMAP7XXUART2 || \
1860		DEBUG_OMAP7XXUART3
1861	default 3 if DEBUG_MSTARV7_PMUART
1862	default 2
1863
1864config DEBUG_UART_8250_WORD
1865	bool "Use 32-bit accesses for 8250 UART"
1866	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1867	depends on DEBUG_UART_8250_SHIFT >= 2
1868	default y if DEBUG_SOCFPGA_UART0 || DEBUG_SOCFPGA_ARRIA10_UART1 || \
1869		DEBUG_SOCFPGA_CYCLONE5_UART1 || DEBUG_KEYSTONE_UART0 || \
1870		DEBUG_KEYSTONE_UART1 || DEBUG_ALPINE_UART0 || \
1871		DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
1872		DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_BCM_IPROC_UART3 || \
1873		DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2
1874
1875config DEBUG_UART_8250_PALMCHIP
1876	bool "8250 UART is Palmchip BK-310x"
1877	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1878	help
1879	  Palmchip provides a UART implementation compatible with 16550
1880	  except for having a different register layout.  Say Y here if
1881	  the debug UART is of this type.
1882
1883config DEBUG_UNCOMPRESS
1884	bool "Enable decompressor debugging via DEBUG_LL output"
1885	depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
1886	depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
1887		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
1888		     !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
1889	help
1890	  This option influences the normal decompressor output for
1891	  multiplatform kernels.  Normally, multiplatform kernels disable
1892	  decompressor output because it is not possible to know where to
1893	  send the decompressor output.
1894
1895	  When this option is set, the selected DEBUG_LL output method
1896	  will be re-used for normal decompressor output on multiplatform
1897	  kernels.
1898
1899
1900config UNCOMPRESS_INCLUDE
1901	string
1902	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
1903					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
1904	default "mach/uncompress.h"
1905
1906config EARLY_PRINTK
1907	bool "Early printk"
1908	depends on DEBUG_LL
1909	help
1910	  Say Y here if you want to have an early console using the
1911	  kernel low-level debugging functions. Add earlyprintk to your
1912	  kernel parameters to enable this console.
1913
1914config ARM_KPROBES_TEST
1915	tristate "Kprobes test module"
1916	depends on KPROBES && MODULES
1917	help
1918	  Perform tests of kprobes API and instruction set simulation.
1919
1920config PID_IN_CONTEXTIDR
1921	bool "Write the current PID to the CONTEXTIDR register"
1922	depends on CPU_COPY_V6
1923	help
1924	  Enabling this option causes the kernel to write the current PID to
1925	  the PROCID field of the CONTEXTIDR register, at the expense of some
1926	  additional instructions during context switch. Say Y here only if you
1927	  are planning to use hardware trace tools with this kernel.
1928
1929source "drivers/hwtracing/coresight/Kconfig"
1930