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