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